You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

3 faulty tests

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

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
  • No labels