Author: markt Date: Fri Feb 20 21:00:04 2015 New Revision: 1661222 URL: http://svn.apache.org/r1661222 Log: Close the client and server sessions after each test to ensure that the background process stops and reduce the chances of one test interfering with an other. This also simplifies debugging should a test fail.
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java?rev=1661222&r1=1661221&r2=1661222&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java Fri Feb 20 21:00:04 2015 @@ -98,6 +98,16 @@ public class BackgroundProcessManager { } + /* + * For unit testing. + */ + int getProcessCount() { + synchronized (processesLock) { + return processes.size(); + } + } + + private static class WsBackgroundThread extends Thread { private final BackgroundProcessManager manager; Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java?rev=1661222&r1=1661221&r2=1661222&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java (original) +++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java Fri Feb 20 21:00:04 2015 @@ -900,7 +900,7 @@ public class TestWsWebSocketContainer ex s.getBasicRemote().sendText(msg.toString()); - // Wait for up to 5 seconds for session to close + // Wait for up to 5 seconds for the client session to close boolean open = s.isOpen(); int count = 0; while (open != expectOpen && count < 50) { @@ -911,6 +911,23 @@ public class TestWsWebSocketContainer ex Assert.assertEquals(Boolean.valueOf(expectOpen), Boolean.valueOf(s.isOpen())); + + // Close the session if it is expected to be open + if (expectOpen) { + s.close(); + } + + // Wait for up to 5 seconds for the server session to close and the + // background process to stop + count = 0; + while (count < 50) { + if (BackgroundProcessManager.getInstance().getProcessCount() == 0) { + break; + } + Thread.sleep(100); + } + + Assert.assertEquals(0, BackgroundProcessManager.getInstance().getProcessCount()); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org