Home / Function/ testPipelineKeepAlive() — netty Function Reference

testPipelineKeepAlive() — netty Function Reference

Architecture documentation for the testPipelineKeepAlive() function in HttpServerKeepAliveHandlerTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  cbd740eb_89cf_330a_c97a_53914a54e207["testPipelineKeepAlive()"]
  be1dd72c_0689_de7f_2cae_50d18d342f5c["HttpServerKeepAliveHandlerTest"]
  cbd740eb_89cf_330a_c97a_53914a54e207 -->|defined in| be1dd72c_0689_de7f_2cae_50d18d342f5c
  4a65f9df_769d_214b_e196_3b450aa1375b["setupMessageLength()"]
  cbd740eb_89cf_330a_c97a_53914a54e207 -->|calls| 4a65f9df_769d_214b_e196_3b450aa1375b
  style cbd740eb_89cf_330a_c97a_53914a54e207 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/HttpServerKeepAliveHandlerTest.java lines 149–213

    @ParameterizedTest
    @MethodSource("keepAliveProvider")
    public void testPipelineKeepAlive(boolean isKeepAliveResponseExpected, HttpVersion httpVersion,
                                       HttpResponseStatus responseStatus,
                                       String sendKeepAlive, int setSelfDefinedMessageLength,
                                       AsciiString setResponseConnection) {
        FullHttpRequest firstRequest = new DefaultFullHttpRequest(httpVersion, HttpMethod.GET, "/v1/foo/bar");
        setKeepAlive(firstRequest, true);
        FullHttpRequest secondRequest = new DefaultFullHttpRequest(httpVersion, HttpMethod.GET, "/v1/foo/bar");
        setKeepAlive(secondRequest, REQUEST_KEEP_ALIVE.equals(sendKeepAlive));
        FullHttpRequest finalRequest = new DefaultFullHttpRequest(httpVersion, HttpMethod.GET, "/v1/foo/bar");
        setKeepAlive(finalRequest, false);
        FullHttpResponse response = new DefaultFullHttpResponse(httpVersion, responseStatus);
        FullHttpResponse informationalResp = new DefaultFullHttpResponse(httpVersion, HttpResponseStatus.PROCESSING);
        setKeepAlive(response, true);
        setContentLength(response, 0);
        setKeepAlive(informationalResp, true);

        assertTrue(channel.writeInbound(firstRequest, secondRequest, finalRequest));

        Object requestForwarded = channel.readInbound();
        assertEquals(firstRequest, requestForwarded);
        ReferenceCountUtil.release(requestForwarded);

        channel.writeAndFlush(response.retainedDuplicate());
        HttpResponse firstResponse = channel.readOutbound();
        assertTrue(channel.isOpen(), "channel.isOpen");
        assertTrue(isKeepAlive(firstResponse), "response keep-alive");
        ReferenceCountUtil.release(firstResponse);

        requestForwarded = channel.readInbound();
        assertEquals(secondRequest, requestForwarded);
        ReferenceCountUtil.release(requestForwarded);

        channel.writeAndFlush(informationalResp);
        HttpResponse writtenInfoResp = channel.readOutbound();
        assertTrue(channel.isOpen(), "channel.isOpen");
        assertTrue(isKeepAlive(writtenInfoResp), "response keep-alive");
        ReferenceCountUtil.release(writtenInfoResp);

        if (setResponseConnection != null) {
            response.headers().set(HttpHeaderNames.CONNECTION, setResponseConnection);
        } else {
            response.headers().remove(HttpHeaderNames.CONNECTION);
        }
        setupMessageLength(response, setSelfDefinedMessageLength);
        channel.writeAndFlush(response.retainedDuplicate());
        HttpResponse secondResponse = channel.readOutbound();
        assertEquals(isKeepAliveResponseExpected, channel.isOpen(), "channel.isOpen");
        assertEquals(isKeepAliveResponseExpected, isKeepAlive(secondResponse), "response keep-alive");
        ReferenceCountUtil.release(secondResponse);

        requestForwarded = channel.readInbound();
        assertEquals(finalRequest, requestForwarded);
        ReferenceCountUtil.release(requestForwarded);

        if (isKeepAliveResponseExpected) {
            channel.writeAndFlush(response);
            HttpResponse finalResponse = channel.readOutbound();
            assertFalse(channel.isOpen(), "channel.isOpen");
            assertFalse(isKeepAlive(finalResponse), "response keep-alive");
        }
        ReferenceCountUtil.release(response);
        assertFalse(channel.finishAndReleaseAll());
    }

Domain

Subdomains

Frequently Asked Questions

What does testPipelineKeepAlive() do?
testPipelineKeepAlive() is a function in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpServerKeepAliveHandlerTest.java.
Where is testPipelineKeepAlive() defined?
testPipelineKeepAlive() is defined in codec-http/src/test/java/io/netty/handler/codec/http/HttpServerKeepAliveHandlerTest.java at line 149.
What does testPipelineKeepAlive() call?
testPipelineKeepAlive() calls 1 function(s): setupMessageLength.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free