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

Compare with Current View Page History

« Previous Version 18 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.STREAMS_DROP_EMPTY_MESSAGES=true
  • org.apache.tomcat.websocket.DEFAULT_PROCESS_PERIOD=0

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

set JAVA_HOME
Run ant gui

Accept the defaults and then run the tests

Expected results

A default 9.0.x build without any configuration triggers 24 test failures

2 unclear specification (URI)

3 Faulty tests (batching)

9 Tests 'fixed' by appropriate system property configuration (see above)

  • 4 x extensions (TCK assumes invalid extensions are ignored)
  • 4 x exception in encoder leading (incorrectly?) to empty message
  • 1 x timeout related test expects more frequent expiration checks

8 failures due to concurrent messages

  • com/sun/ts/tests/websocket/ee/javax/websocket/remoteendpoint/async/*
  • Need to raise a spec issue

2 intermittent failures (cause unknown)

  • com/sun/ts/tests/websocket/ee/javax/websocket/session/WSClient.java#setTimeout1Test
  • com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSClient.java#setTimeout1Test
    • This looks caused by the client side and a race condition of some sort on the session open state, if I add debug information in WsFrameClient.processSocketRead, the issue becomes very hard to reproduce. I propose adding if (wsSession.isOpen()) around the processInputBuffer(); in WsFrameClient.processSocketRead, this explicitly avoids writing any new input data after the session timeout.

A further 15 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
  • No labels