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: [email protected]
For additional commands, e-mail: [email protected]