Author: markt
Date: Tue Sep 20 08:33:44 2011
New Revision: 1173020

URL: http://svn.apache.org/viewvc?rev=1173020&view=rev
Log:
Better detection of thread termination at end of test
Better failure messages so it is easier to see the cause of any failure 
immediately 

Modified:
    tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java

Modified: tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java?rev=1173020&r1=1173019&r2=1173020&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java Tue Sep 
20 08:33:44 2011
@@ -154,14 +154,27 @@ public class TestCometProcessor extends 
         tomcat.getConnector().stop();
         tomcat.getConnector().destroy();
 
-        // Sleep for a couple of seconds to give enough time for the connector
-        // stop message to be processed
-        Thread.sleep(2000);
+        // Wait for the write thread to stop
+        int count = 0;
+        while (writeThread.isAlive() && count < 100) {
+            Thread.sleep(100);
+            count ++;
+        }
+
+        // Wait for the read thread to stop
+        count = 0;
+        while (readThread.isAlive() && count < 100) {
+            Thread.sleep(100);
+            count ++;
+        }
 
         // Write should trigger an exception once the connector stops since the
         // socket should be closed
-        assertNotNull(writeThread.getException());
-        assertNull(readThread.getException());
+        assertNotNull("No exception in writing thread",
+                writeThread.getException());
+        // Read should terminate gracefully with an EOF
+        assertNull("Read thread terminated with an exception",
+                readThread.getException());
     }
 
     private boolean isCometSupported() {
@@ -217,7 +230,7 @@ public class TestCometProcessor extends 
         
         private int pingCount;
         private OutputStream os;
-        private Exception e = null;
+        private volatile Exception e = null;
 
         public PingWriterThread(int pingCount, OutputStream os) {
             this.pingCount = pingCount;
@@ -271,6 +284,7 @@ public class TestCometProcessor extends 
                     response.append((char) c);
                     c = is.read();
                 }
+                System.out.println("EOF");
             } catch (Exception e) {
                 this.e = e;
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to