Home / Function/ testConnectWithDroppedPackets() — netty Function Reference

testConnectWithDroppedPackets() — netty Function Reference

Architecture documentation for the testConnectWithDroppedPackets() function in QuicChannelConnectTest.java from the netty codebase.

Function java Buffer Allocators calls 2 called by 4

Entity Profile

Dependency Diagram

graph TD
  4a44b4cc_9598_a77c_5e89_b75da8fb4fcd["testConnectWithDroppedPackets()"]
  1e1bc485_1969_4537_ef9b_f28971b2f663["QuicChannelConnectTest"]
  4a44b4cc_9598_a77c_5e89_b75da8fb4fcd -->|defined in| 1e1bc485_1969_4537_ef9b_f28971b2f663
  4e96f5cd_d213_a781_87d5_e5c9e72fcdc5["testConnectWithNoDroppedPacketsAndRandomConnectionIdGenerator()"]
  4e96f5cd_d213_a781_87d5_e5c9e72fcdc5 -->|calls| 4a44b4cc_9598_a77c_5e89_b75da8fb4fcd
  d849f0f1_d890_5d28_3925_d8c10965156b["testConnectWithDroppedPacketsAndRandomConnectionIdGenerator()"]
  d849f0f1_d890_5d28_3925_d8c10965156b -->|calls| 4a44b4cc_9598_a77c_5e89_b75da8fb4fcd
  ccd73ced_e268_741e_dddf_ce533bd72090["testConnectWithNoDroppedPacketsAndSignConnectionIdGenerator()"]
  ccd73ced_e268_741e_dddf_ce533bd72090 -->|calls| 4a44b4cc_9598_a77c_5e89_b75da8fb4fcd
  4418e011_0420_d7e4_40e5_4947eec62206["testConnectWithDroppedPacketsAndSignConnectionIdGenerator()"]
  4418e011_0420_d7e4_40e5_4947eec62206 -->|calls| 4a44b4cc_9598_a77c_5e89_b75da8fb4fcd
  98eb9acc_3a7c_151d_faf3_46f710fbdd4f["channelRead()"]
  4a44b4cc_9598_a77c_5e89_b75da8fb4fcd -->|calls| 98eb9acc_3a7c_151d_faf3_46f710fbdd4f
  5f0fc68a_3438_a865_1307_d0a3144b2c00["assertState()"]
  4a44b4cc_9598_a77c_5e89_b75da8fb4fcd -->|calls| 5f0fc68a_3438_a865_1307_d0a3144b2c00
  style 4a44b4cc_9598_a77c_5e89_b75da8fb4fcd fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicChannelConnectTest.java lines 315–383

    private void testConnectWithDroppedPackets(Executor executor, int numDroppedPackets,
                                               QuicConnectionIdGenerator connectionIdGenerator) throws Throwable {
        Channel server = QuicTestUtils.newServer(QuicTestUtils.newQuicServerBuilder(executor)
                        .connectionIdAddressGenerator(connectionIdGenerator),
                NoQuicTokenHandler.INSTANCE,
                new ChannelInboundHandlerAdapter() {
                    @Override
                    public boolean isSharable() {
                        return true;
                    }
                },
                new ChannelInboundHandlerAdapter() {
                    @Override
                    public boolean isSharable() {
                        return true;
                    }

                    @Override
                    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
                        // Server closes the stream whenever the client sends a FIN.
                        if (evt instanceof ChannelInputShutdownEvent) {
                            ctx.close();
                        }
                        ctx.fireUserEventTriggered(evt);
                    }
                });

        // Have the server drop the few first numDroppedPackets incoming packets.
        server.pipeline().addFirst(
                new ChannelInboundHandlerAdapter() {
                    private int counter;

                    public void channelRead(ChannelHandlerContext ctx, Object msg) {
                        if (counter++ < numDroppedPackets) {
                            System.out.println("Server dropping incoming packet #" + counter);
                            ReferenceCountUtil.release(msg);
                        } else {
                            ctx.fireChannelRead(msg);
                        }
                    }
                });

        InetSocketAddress address = (InetSocketAddress) server.localAddress();
        Channel channel = QuicTestUtils.newClient(QuicTestUtils.newQuicClientBuilder(executor));
        ChannelActiveVerifyHandler clientQuicChannelHandler = new ChannelActiveVerifyHandler();
        try {
            QuicChannel quicChannel = QuicTestUtils.newQuicChannelBootstrap(channel)
                    .handler(clientQuicChannelHandler)
                    .remoteAddress(address)
                    .connect()
                    .get();

            QuicStreamChannel quicStream = quicChannel.createStream(QuicStreamType.BIDIRECTIONAL,
                    new ChannelInboundHandlerAdapter()).get();

            ByteBuf payload = Unpooled.wrappedBuffer("HELLO!".getBytes(StandardCharsets.US_ASCII));
            quicStream.writeAndFlush(payload).sync();
            quicStream.shutdownOutput().sync();
            assertTrue(quicStream.closeFuture().await().isSuccess());

            ChannelFuture closeFuture = channel.close().await();
            assertTrue(closeFuture.isSuccess());
        } finally {
            clientQuicChannelHandler.assertState();
            channel.close().sync();
            server.close().sync();
            shutdown(executor);
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does testConnectWithDroppedPackets() do?
testConnectWithDroppedPackets() is a function in the netty codebase, defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicChannelConnectTest.java.
Where is testConnectWithDroppedPackets() defined?
testConnectWithDroppedPackets() is defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicChannelConnectTest.java at line 315.
What does testConnectWithDroppedPackets() call?
testConnectWithDroppedPackets() calls 2 function(s): assertState, channelRead.
What calls testConnectWithDroppedPackets()?
testConnectWithDroppedPackets() is called by 4 function(s): testConnectWithDroppedPacketsAndRandomConnectionIdGenerator, testConnectWithDroppedPacketsAndSignConnectionIdGenerator, testConnectWithNoDroppedPacketsAndRandomConnectionIdGenerator, testConnectWithNoDroppedPacketsAndSignConnectionIdGenerator.

Analyze Your Own Codebase

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

Try Supermodel Free