Closed MMatten closed 9 years ago
Thanks for reporting.
I am not able to reproduce this issue here. I should probably note that I'm using openJDK8 on Ubuntu, but I've successfully built FitNesse locally a couple of times today.
The continuous integration build seems to work fine as well (https://cleancoder.ci.cloudbees.com/job/fitnesse/), though I don't know the details on what it builds with.
Could you attach a larger part of the build output? Are there specific tests failing, or do you see random failures?
It's bombing at this point: -
[junit] Testcase: setSymbolUTF8 took 0 sec
[junit] FAILED
[junit] expected:<[{id='scriptTable_id_0', instruction='callAndAssign', symbolName='├å├ÿ├à',instanceName='scriptTableActor', methodName='function', args=[arg]}]> but was:<[{id='scriptTable_id_0', instruction='call', instanceName='scriptTableActor', methodName='├├├Arg', args=[function]}]>
[junit] junit.framework.AssertionFailedError: expected:<[{id='scriptTable_id_0', instruction='callAndAssign', symbolName='├å├ÿ├à', instanceName='scriptTableActor', methodName='function', args=[arg]}]> but was:<[{id='scriptTable_id_0', instruction='call', instanceName='scriptTableActor', methodName='├├├Arg', args=[function]}]>
[junit] at fitnesse.testsystems.slim.tables.ScriptTableTest.setSymbolUTF8(ScriptTableTest.java:425)
Any ideas from that?
After a safe-mode (with network support) boot I've tried again.
The acceptance_tests
target builds OK.
The unit_tests
target fails, although it's not obvious why. I can see some stack traces in the output and some stderr messages captured and included in the output. E.g.
[junit] ------------- Standard Error -----------------
[junit] Can not bind to port 10258. Aborting.
[junit] java.net.BindException: Address already in use: JVM_Bind
[junit] at java.net.DualStackPlainSocketImpl.bind0(Native Method)
But I can't see any Failures or Errors in the summary lines.
Hi Mark
Another application is blocking/using the port 10258. Thats why you see the error "can not bind" in the slim client. The Test system can connect to the port. But talks there to the other application. And this other application obviously never sends a slim header. That explains the error in the test system.
Check what is using this port and kill it then rerun the build.
Oh, just seeing this error.
I had this problem as well under windows. the utf8 characters in this test (symbolName='ÆØÅ' )are wrong under windows. This test was introduced by #791. You can see there how it should look. PR #779 works again under windows and should fix this.
Either merge #779 or delete this test to finish your build.
@six42 - thanks for the replies. I did look for something using 10258 (netstat -ano) but could find nothing.
But the test exec summaries don't show any failure or error count > 0. Does the presence of any stderr output also mean the build will fail?
@hansjoachim made a few remarks on #779. I can merge the PR and the issues can be fixed later. At least that fixes the windows build...
I check #779 on my Mac, but it does not compile (encoding issue). I think this issue might be fixed by tells the java compiler that all files are encoded as UTF-8.
Hi Arjan, Can you delete the junit test 'setSymbolUTF8' and confirm that afterwards the build is working on Mac.
I propose to delete this junit test in this case. The same utf8 functionality is tested also in: FitNesse/SuiteAcceptanceTests/SuiteSlimTests/SlimSymbols/NamingConvention
if you want to keep the junit then I assume you are right and we have to tell the java compiler that all files are utf8. But I don't know how this is done. And I would assume also my editor must know this.
I did just merge #779. I removed the test case as you proposed. The code is indeed well tested via acceptance tests. Now it builds on my Windows VM at least.
Thanks
Did the above commit fix the build?
Apologies. I'll give it a go this weekend and report back.
Apologies for the delay. I've had a chance to look again:
[junit] ------------- Standard Error -----------------
[junit] Nov 08, 2015 7:24:21 PM fitnesse.FitNesse start
[junit] SEVERE: FitNesse cannot be started...
[junit] Nov 08, 2015 7:24:21 PM fitnesse.FitNesse start
[junit] SEVERE: Port 80 is already in use.
[junit] Nov 08, 2015 7:24:21 PM fitnesse.FitNesse start
[junit] SEVERE: Use the -p <port#> command line argument to use a different port.
[junit] root page: fitnesse.wiki.fs.FileSystemPage at .\testFitnesseRoot#latest
[junit] logger: none
[junit] authenticator: fitnesse.authentication.PromiscuousAuthenticator
[junit] page factory: fitnesse.html.template.PageFactory
[junit] page theme: bootstrap
[junit] Starting FitNesse on port: 80
[junit] Executing command: command
[junit] root page: fitnesse.wiki.fs.FileSystemPage at .\FitNesseRoot#latest
[junit] logger: none
[junit] authenticator: fitnesse.authentication.OneUserAuthenticator
[junit] page factory: fitnesse.html.template.PageFactory
[junit] page theme: bootstrap
[junit] Starting FitNesse on port: 9123
[junit] Executing command: user:pwd:/FitNesse.NonExistentTestCase?test
[junit] root page: fitnesse.wiki.fs.FileSystemPage at .\testFitnesseRoot#latest
[junit] logger: none
[junit] authenticator: fitnesse.authentication.PromiscuousAuthenticator
[junit] page factory: fitnesse.html.template.PageFactory
[junit] page theme: bootstrap
[junit] Starting FitNesse on port: 80
[junit] ------------- ---------------- ---------------
[junit]
[junit] Testcase: testDirCreations took 0.014 sec
[junit] Testcase: commandArgCallsExecuteSingleCommand took 0.282 sec
[junit] Testcase: canRunSingleCommandWithAuthentication took 0.134 sec
[junit] Testcase: canRunSingleCommand took 0.227 sec
[junit] FAILED
[junit]
[junit] Expected: a string containing "Command Output"
[junit] but: was "root page: fitnesse.wiki.fs.FileSystemPage at .\FitNesseRoot#latest
[junit] logger: none
[junit] authenticator: fitnesse.authentication.PromiscuousAuthenticator
[junit] page factory: fitnesse.html.template.PageFactory
[junit] page theme: bootstrap
[junit] Starting FitNesse on port: 9123
[junit] Executing command: /root
[junit] "
[junit] junit.framework.AssertionFailedError:
[junit] Expected: a string containing "Command Output"
[junit] but: was "root page: fitnesse.wiki.fs.FileSystemPage at .\FitNesseRoot#latest
[junit] logger: none
[junit] authenticator: fitnesse.authentication.PromiscuousAuthenticator
[junit] page factory: fitnesse.html.template.PageFactory
[junit] page theme: bootstrap
[junit] Starting FitNesse on port: 9123
[junit] Executing command: /root
[junit] "
[junit] at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
[junit] at fitnesseMain.FitNesseMainTest.canRunSingleCommand(FitNesseMainTest.java:106)
[junit]
[junit] Testcase: systemPropertiesTakePrecedenceOverConfiguredProperties took 0.065 sec
[junit] Testcase: runningCommandWithNonExistentAddressResultsInError took 0.031 sec
[junit] Testcase: testInstallOnly took 0.01 sec
[junit] Testcase: testIsRunning took 0.695 sec
BUILD FAILED
For the life of me, I can't work out what's using port 80. Is there a way of telling the unit tests to start FitNesse on a different port?
The problem is not with the port (this is a bit of excessive logging).
I left in a unit test eror in my latest change, which I fixed now.
Awesome. All working now.
Thanks guys.
(What are the formalities here? Who closes the issue?!)
No formalities here. First to hit the close button wins :)
Cloning the repo, checkint out
master
, and runningant
produces a failed build.I'm running Oracle JDK 8, ant 1.9.4, on Windows 7 (ultimate).
From experience, is this likely to be environmental?
I can see a few errors in the test outputs such as: -
[junit] <span class="error">Could not complete testing: fitnesse.slim.SlimError: Got invalid slim header from client. Read the following: </span>
junit.framework.AssertionFailedError: The regexp <<td><span class="pass">wow</span></td>> was not found in: HTTP/1.1 200