Author: markt
Date: Mon Sep 21 16:03:19 2015
New Revision: 1704341

URL: http://svn.apache.org/viewvc?rev=1704341&view=rev
Log:
Fix possible incorrect test failure that depends on the ordering of server side 
threads.

Modified:
    tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java

Modified: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java?rev=1704341&r1=1704340&r2=1704341&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java 
(original)
+++ tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java Mon Sep 
21 16:03:19 2015
@@ -243,17 +243,27 @@ public class TestHttp2Section_6_9 extend
         // Now use a settings frame to restore the size of the flow control
         // window.
         sendSettings(0, false, new SettingValue(4, 64 * 1024 - 1));
-        // Ack
-        parser.readFrame(true);
-        Assert.assertEquals("0-Settings-Ack\n", output.getTrace());
-        output.clearTrace();
 
-        // Stream remainder of stream 3 body
+        // Settings ack and stream 3 body are written from different threads.
+        // Order depends on server side timing. Handle both possibilities.
         parser.readFrame(true);
-        Assert.assertEquals(
-                "3-Body-4096\n" +
-                "3-EndOfStream\n", output.getTrace());
-                output.clearTrace();
+        String trace = output.getTrace();
+        String settingsAck = "0-Settings-Ack\n";
+        String endOfStreamThree = "3-Body-4096\n3-EndOfStream\n";
+
+        if (settingsAck.equals(trace)) {
+            // Ack the end of stream 3
+            output.clearTrace();
+            parser.readFrame(true);
+            Assert.assertEquals(endOfStreamThree, output.getTrace());
+        } else {
+            // End of stream 3 thenack
+            Assert.assertEquals(endOfStreamThree, output.getTrace());
+            output.clearTrace();
+            parser.readFrame(true);
+            Assert.assertEquals(settingsAck, output.getTrace());
+        }
+        output.clearTrace();
     }
 
 



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

Reply via email to