Home / Class/ QuicStreamChannelCloseTest Class — netty Architecture

QuicStreamChannelCloseTest Class — netty Architecture

Architecture documentation for the QuicStreamChannelCloseTest class in QuicStreamChannelCloseTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  f6302430_ab38_2061_da3d_4d6633f03714["QuicStreamChannelCloseTest"]
  1a4414cc_c51a_0f28_9c01_05308a452f26["QuicStreamChannelCloseTest.java"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|defined in| 1a4414cc_c51a_0f28_9c01_05308a452f26
  563b5edc_ef0f_68a7_c184_01892e48e86c["testCloseFromServerWhileInActiveUnidirectional()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 563b5edc_ef0f_68a7_c184_01892e48e86c
  aca16394_7ad4_6eb8_419d_da46091a2aad["testCloseFromServerWhileInActiveBidirectional()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| aca16394_7ad4_6eb8_419d_da46091a2aad
  407eef2e_d300_52c7_5b63_66b3b874e4f3["testHalfCloseFromServerWhileInActiveUnidirectional()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 407eef2e_d300_52c7_5b63_66b3b874e4f3
  682516e1_dcf4_cbf0_73a3_c1f5773863c7["testHalfCloseFromServerWhileInActiveBidirectional()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 682516e1_dcf4_cbf0_73a3_c1f5773863c7
  21aaebfa_63dc_f13f_d3ab_fa9bb659e578["testCloseFromServerWhileInActive()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 21aaebfa_63dc_f13f_d3ab_fa9bb659e578
  96feb991_3c6a_01d9_060e_25a24b3ebf12["testCloseFromClientWhileInActiveUnidirectional()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 96feb991_3c6a_01d9_060e_25a24b3ebf12
  b07825f6_829c_54a9_8c76_c2fe915b1d5d["testCloseFromClientWhileInActiveBidirectional()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| b07825f6_829c_54a9_8c76_c2fe915b1d5d
  43a2bbed_91ff_667a_166e_262167cae00c["testHalfCloseFromClientWhileInActiveUnidirectional()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 43a2bbed_91ff_667a_166e_262167cae00c
  36b01605_bb7f_b70d_09f2_11c89843eab2["testHalfCloseFromClientWhileInActiveBidirectional()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 36b01605_bb7f_b70d_09f2_11c89843eab2
  31478937_9683_64c2_3ddf_507bb9334135["testCloseFromClientWhileInActive()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 31478937_9683_64c2_3ddf_507bb9334135
  aca22f89_a2c6_f37f_4a41_97337ecc5ed2["testWriteToUnidirectionalAfterShutdownOutput()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| aca22f89_a2c6_f37f_4a41_97337ecc5ed2
  6a829470_2880_5d08_ab8f_98a14e85a510["testWriteToBidirectionalAfterShutdownOutput()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 6a829470_2880_5d08_ab8f_98a14e85a510
  5972d216_48de_8798_863d_d7a060c7d3d6["testWriteToUnidirectionalAfterClose()"]
  f6302430_ab38_2061_da3d_4d6633f03714 -->|method| 5972d216_48de_8798_863d_d7a060c7d3d6

Relationship Graph

Source Code

codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamChannelCloseTest.java lines 39–306

public class QuicStreamChannelCloseTest extends AbstractQuicTest {

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testCloseFromServerWhileInActiveUnidirectional(Executor executor) throws Throwable {
        testCloseFromServerWhileInActive(executor, QuicStreamType.UNIDIRECTIONAL, false);
    }

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testCloseFromServerWhileInActiveBidirectional(Executor executor) throws Throwable {
        testCloseFromServerWhileInActive(executor, QuicStreamType.BIDIRECTIONAL, false);
    }

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testHalfCloseFromServerWhileInActiveUnidirectional(Executor executor) throws Throwable {
        testCloseFromServerWhileInActive(executor, QuicStreamType.UNIDIRECTIONAL, true);
    }

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testHalfCloseFromServerWhileInActiveBidirectional(Executor executor) throws Throwable {
        testCloseFromServerWhileInActive(executor, QuicStreamType.BIDIRECTIONAL, true);
    }

    private static void testCloseFromServerWhileInActive(Executor executor, QuicStreamType type,
                                                         boolean halfClose) throws Throwable {
        Channel server = null;
        Channel channel = null;
        try {
            final Promise<Channel> streamPromise = ImmediateEventExecutor.INSTANCE.newPromise();
            QuicChannelValidationHandler serverHandler = new StreamCreationHandler(type, halfClose, streamPromise);
            server = QuicTestUtils.newServer(executor, serverHandler,
                    new ChannelInboundHandlerAdapter());
            channel = QuicTestUtils.newClient(executor);

            QuicChannelValidationHandler clientHandler = new QuicChannelValidationHandler();

            QuicChannel quicChannel = QuicTestUtils.newQuicChannelBootstrap(channel)
                    .handler(clientHandler)
                    .streamHandler(new StreamHandler())
                    .remoteAddress(server.localAddress())
                    .connect()
                    .get();

            Channel streamChannel = streamPromise.get();

            // Wait for the steam to close. It needs to happen before the 5-second connection idle timeout.
            streamChannel.closeFuture().get(3000, TimeUnit.MILLISECONDS);

            streamChannel.parent().close();

            // Wait till the client was closed
            quicChannel.closeFuture().sync();

            serverHandler.assertState();
            clientHandler.assertState();
        } finally {
            QuicTestUtils.closeIfNotNull(channel);
            QuicTestUtils.closeIfNotNull(server);

            shutdown(executor);
        }
    }

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testCloseFromClientWhileInActiveUnidirectional(Executor executor) throws Throwable {
        testCloseFromClientWhileInActive(executor, QuicStreamType.UNIDIRECTIONAL, false);
    }

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testCloseFromClientWhileInActiveBidirectional(Executor executor) throws Throwable {
        testCloseFromClientWhileInActive(executor, QuicStreamType.BIDIRECTIONAL, false);
    }

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    public void testHalfCloseFromClientWhileInActiveUnidirectional(Executor executor) throws Throwable {

Frequently Asked Questions

What is the QuicStreamChannelCloseTest class?
QuicStreamChannelCloseTest is a class in the netty codebase, defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamChannelCloseTest.java.
Where is QuicStreamChannelCloseTest defined?
QuicStreamChannelCloseTest is defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamChannelCloseTest.java at line 39.

Analyze Your Own Codebase

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

Try Supermodel Free