You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2021/10/13 08:32:19 UTC

[tomcat] branch main updated: Add some debug logging as there are still some unexplained CI failures

This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/main by this push:
     new afa370c  Add some debug logging as there are still some unexplained CI failures
afa370c is described below

commit afa370c47dd0642ea41151e7499e2195fcf111c9
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Oct 13 09:32:04 2021 +0100

    Add some debug logging as there are still some unexplained CI failures
---
 .../servlet/http/TestHttpServletDoHead.java        | 84 ++++++++++++----------
 1 file changed, 47 insertions(+), 37 deletions(-)

diff --git a/test/jakarta/servlet/http/TestHttpServletDoHead.java b/test/jakarta/servlet/http/TestHttpServletDoHead.java
index 811ee8e..90fc2cf 100644
--- a/test/jakarta/servlet/http/TestHttpServletDoHead.java
+++ b/test/jakarta/servlet/http/TestHttpServletDoHead.java
@@ -135,50 +135,60 @@ public class TestHttpServletDoHead extends Http2TestBase {
 
     @Test
     public void testDoHeadHttp2() throws Exception {
-        http2Connect();
+        StringBuilder debug = new StringBuilder();
+        try {
+            http2Connect();
 
-        // Get request
-        byte[] frameHeaderGet = new byte[9];
-        ByteBuffer headersPayloadGet = ByteBuffer.allocate(128);
-        buildGetRequest(frameHeaderGet, headersPayloadGet, null, 3, "/test");
-        writeFrame(frameHeaderGet, headersPayloadGet);
+            // Get request
+            byte[] frameHeaderGet = new byte[9];
+            ByteBuffer headersPayloadGet = ByteBuffer.allocate(128);
+            buildGetRequest(frameHeaderGet, headersPayloadGet, null, 3, "/test");
+            writeFrame(frameHeaderGet, headersPayloadGet);
 
-        // Want the headers frame for stream 3
-        parser.readFrame(true);
-        while (!output.getTrace().startsWith("3-HeadersStart\n")) {
-            output.clearTrace();
+            // Want the headers frame for stream 3
             parser.readFrame(true);
-        }
-        String traceGet = output.getTrace();
-        output.clearTrace();
-
-        // Head request
-        byte[] frameHeaderHead = new byte[9];
-        ByteBuffer headersPayloadHead = ByteBuffer.allocate(128);
-        buildHeadRequest(frameHeaderHead, headersPayloadHead, 5, "/test");
-        writeFrame(frameHeaderHead, headersPayloadHead);
-
-        // Want the headers frame for stream 5
-        parser.readFrame(true);
-        while (!output.getTrace().startsWith("5-HeadersStart\n")) {
+            while (!output.getTrace().startsWith("3-HeadersStart\n")) {
+                debug.append(output.getTrace());
+                output.clearTrace();
+                parser.readFrame(true);
+            }
+            String traceGet = output.getTrace();
+            debug.append(output.getTrace());
             output.clearTrace();
-            parser.readFrame(true);
-        }
-        String traceHead = output.getTrace();
 
-        String[] getHeaders = traceGet.split("\n");
-        String[] headHeaders = traceHead.split("\n");
+            // Head request
+            byte[] frameHeaderHead = new byte[9];
+            ByteBuffer headersPayloadHead = ByteBuffer.allocate(128);
+            buildHeadRequest(frameHeaderHead, headersPayloadHead, 5, "/test");
+            writeFrame(frameHeaderHead, headersPayloadHead);
 
-        int i = 0;
-        for (; i < getHeaders.length; i++) {
-            // Headers should be the same, ignoring the first character which is the steam ID
-            Assert.assertEquals(getHeaders[i] + "\n" + traceGet + traceHead, '3', getHeaders[i].charAt(0));
-            Assert.assertEquals(headHeaders[i] + "\n" + traceGet + traceHead, '5', headHeaders[i].charAt(0));
-            Assert.assertEquals(traceGet + traceHead, getHeaders[i].substring(1), headHeaders[i].substring(1));
-        }
+            // Want the headers frame for stream 5
+            parser.readFrame(true);
+            while (!output.getTrace().startsWith("5-HeadersStart\n")) {
+                debug.append(output.getTrace());
+                output.clearTrace();
+                parser.readFrame(true);
+            }
+            String traceHead = output.getTrace();
+            debug.append(output.getTrace());
+
+            String[] getHeaders = traceGet.split("\n");
+            String[] headHeaders = traceHead.split("\n");
+
+            int i = 0;
+            for (; i < getHeaders.length; i++) {
+                // Headers should be the same, ignoring the first character which is the steam ID
+                Assert.assertEquals(getHeaders[i] + "\n" + traceGet + traceHead, '3', getHeaders[i].charAt(0));
+                Assert.assertEquals(headHeaders[i] + "\n" + traceGet + traceHead, '5', headHeaders[i].charAt(0));
+                Assert.assertEquals(traceGet + traceHead, getHeaders[i].substring(1), headHeaders[i].substring(1));
+            }
 
-        // Stream 5 should have one more trace entry
-        Assert.assertEquals("5-EndOfStream", headHeaders[i]);
+            // Stream 5 should have one more trace entry
+            Assert.assertEquals("5-EndOfStream", headHeaders[i]);
+        } catch (Exception t) {
+            System.out.println(debug.toString());
+            throw t;
+        }
     }
 
 

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