MCPcopy Index your code
hub / github.com/apache/tomcat / TestFlowControl

Class TestFlowControl

test/org/apache/coyote/http2/TestFlowControl.java:31–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29import org.apache.tomcat.util.res.StringManager;
30
31public class TestFlowControl extends Http2TestBase {
32
33 private static final StringManager sm = StringManager.getManager(TestFlowControl.class);
34
35 /*
36 * https://tomcat.markmail.org/thread/lijsebphms7hr3zj
37 */
38 @Test
39 public void testNotFound() throws Exception {
40
41 Logger.getLogger("org.apache.coyote.http2").setLevel(Level.ALL);
42 try {
43 http2Connect();
44
45 // Connection and per-stream flow control default to 64k-1 bytes
46
47 // Set up a POST request to a non-existent end-point
48 // Generate headers
49 byte[] headersFrameHeader = new byte[9];
50 ByteBuffer headersPayload = ByteBuffer.allocate(128);
51
52 MimeHeaders headers = new MimeHeaders();
53 headers.addValue(":method").setString(Method.POST);
54 headers.addValue(":scheme").setString("http");
55 headers.addValue(":path").setString("/path-does-not-exist");
56 headers.addValue(":authority").setString("localhost:" + getPort());
57 headers.addValue("content-length").setLong(65536);
58 hpackEncoder.encode(headers, headersPayload);
59
60 headersPayload.flip();
61
62 ByteUtil.setThreeBytes(headersFrameHeader, 0, headersPayload.limit());
63 headersFrameHeader[3] = FrameType.HEADERS.getIdByte();
64 // Flags. end of headers (0x04)
65 headersFrameHeader[4] = 0x04;
66 // Stream id
67 ByteUtil.set31Bits(headersFrameHeader, 5, 3);
68
69 writeFrame(headersFrameHeader, headersPayload);
70
71 // Generate body
72 // Max data payload is 16k
73 byte[] dataFrameHeader = new byte[9];
74 ByteBuffer dataPayload = ByteBuffer.allocate(16 * 1024);
75
76 while (dataPayload.hasRemaining()) {
77 dataPayload.put((byte) 'x');
78 }
79 dataPayload.flip();
80
81 // Size
82 ByteUtil.setThreeBytes(dataFrameHeader, 0, dataPayload.limit());
83 ByteUtil.set31Bits(dataFrameHeader, 5, 3);
84
85 // Read the 404 error page
86 // headers
87 parser.readFrame();
88 // body

Callers

nothing calls this directly

Calls 1

getManagerMethod · 0.95

Tested by

no test coverage detected