Running
Tomcat
Set the following system properties
- org.apache.tomcat.websocket.DISABLE_BUILTIN_EXTENSIONS=true
- org.apache.tomcat.websocket.ALLOW_UNSUPPORTED_EXTENSIONS=true
- org.apache.tomcat.websocket.DEFAULT_PROCESS_PERIOD=0
Make the following changes to server.xml
- add backgroundProcessorDelay="1" to the <Engine ... > element
Test Suite
Download latest nightly build
https://download.eclipse.org/ee4j/jakartaee-tck/8.0.1/nightly/websockettck-1.1_latest.zip
Extract to WEBSOCKET_TCK_HOME
Edit $WEBSOCKET_TCK_HOME/bin/ts.jte
You'll need to set the following properties (adjust the paths and values for your environment)
webServerHost=localhost
webServerPort=8080
securedWebServicePort=8443
websocket.api=/home/mark/repos/asf-public/tomcat/trunk/output/build/lib/websocket-api.jar
websocket.classes=/home/mark/repos/asf-public/tomcat/trunk/output/build/lib/tomcat-websocket.jar:/home/mark/repos/asf-public/tomcat/trunk/output/build/lib/servlet-api.jar:/home/mark/repos/asf-public/tomcat/trunk/output/build/lib/tomcat-util.jar:/home/mark/repos/asf-public/tomcat/trunk/output/build/lib/tomcat-api.jar:/home/mark/repos/asf-public/tomcat/trunk/output/build/bin/tomcat-juli.jar
Add the following to the command.testExecute property (to prevent entropy issues slowing the tests down)
-Djava.security.egd=file:/dev/./urandom
Do not reduce ws_wait below the default of 5s as it is likely to trigger test failures.
set JAVA_HOME
Run ant gui
Accept the defaults and then run the tests
Expected results (Jakarta EE 9)
A default 10.0.x build running with the nightly TCK build (as of 2020-05-13) triggers 10 test failures
2 unclear specification
- 2 x URI https://github.com/eclipse-ee4j/websocket-api/issues/228
PR to exclude https://github.com/eclipse-ee4j/jakartaee-tck/pull/263
3 faulty tests
- 1 x signature tests
PR to update signatures in TCK https://github.com/eclipse-ee4j/jakartaee-tck/pull/256 - 2 x faulty timeout tests https://github.com/eclipse-ee4j/jakartaee-tck/issues/260
PR to fix the tests https://github.com/eclipse-ee4j/jakartaee-tck/pull/261
5 Tests 'fixed' by appropriate system property configuration (see above). No need for the server.xml changes.
- 4 x extensions (TCK assumes invalid extensions are ignored)
Consider making TCK smarter so it ignores other extensions the server may advertise. Better still, detect them first and then exclude them from this test.
Need to discuss expected behaviour if an unknown extension is specified. Are these required or optional? - 1 x timeout related test expects more frequent expiration checks
Expected results (Java EE 8)
A default 9.0.x build without any configuration triggers 20 test failures
2 unclear specification
11 Faulty tests
- 1 x https://github.com/eclipse-ee4j/jakartaee-tck/issues/33 (batching)
- 2 x https://github.com/eclipse-ee4j/jakartaee-tck/issues/35 (batching)
- 8 x https://github.com/eclipse-ee4j/jakartaee-tck/issues/37 (async concurrency)
5 Tests 'fixed' by appropriate system property configuration (see above)
- 4 x extensions (TCK assumes invalid extensions are ignored)
- 1 x timeout related test expects more frequent expiration checks
2 Tests 'fixed' by appropriate server.xml configuration
- 2 x timeout related tests requiring even more frequent expiration checks
- Still see intermittent failures on these
A further 19 test failures caused by Tomcat bugs have been fixed
- 4 x Deployment failure didn't undeploy all WebSockets
- 4 x @PathParam not validated for correct type
- 6 x Throw DeploymentException rather than IAE
- 1 x Improve checking of multiple @OnMessage for the same type
- 4 x exception in encoder leading (incorrectly) to empty message