Home / Function/ testTimedOut() — netty Function Reference

testTimedOut() — netty Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  aa78f6e3_e2d3_6321_9ed6_74d292472e23["testTimedOut()"]
  1e1bc485_1969_4537_ef9b_f28971b2f663["QuicChannelConnectTest"]
  aa78f6e3_e2d3_6321_9ed6_74d292472e23 -->|defined in| 1e1bc485_1969_4537_ef9b_f28971b2f663
  98eb9acc_3a7c_151d_faf3_46f710fbdd4f["channelRead()"]
  aa78f6e3_e2d3_6321_9ed6_74d292472e23 -->|calls| 98eb9acc_3a7c_151d_faf3_46f710fbdd4f
  5f0fc68a_3438_a865_1307_d0a3144b2c00["assertState()"]
  aa78f6e3_e2d3_6321_9ed6_74d292472e23 -->|calls| 5f0fc68a_3438_a865_1307_d0a3144b2c00
  f4776383_2a2c_409c_80cc_6e7b63f7a62f["channelActive()"]
  aa78f6e3_e2d3_6321_9ed6_74d292472e23 -->|calls| f4776383_2a2c_409c_80cc_6e7b63f7a62f
  style aa78f6e3_e2d3_6321_9ed6_74d292472e23 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicChannelConnectTest.java lines 413–503

    @ParameterizedTest
    @MethodSource("newSslTaskExecutors")
    @Timeout(5)
    public void testTimedOut(Executor executor) throws Throwable {
        final AtomicBoolean dropPackets = new AtomicBoolean();
        final BlockingQueue<QuicStreamChannel> acceptedStreams = new LinkedBlockingQueue<>();
        Channel server = QuicTestUtils.newServer(
                QuicTestUtils.newQuicServerBuilder(executor).maxIdleTimeout(1, TimeUnit.MILLISECONDS),
                NoQuicTokenHandler.INSTANCE,
                new ChannelInboundHandlerAdapter() {
                    @Override
                    public boolean isSharable() {
                        return true;
                    }
                },
                new ChannelInboundHandlerAdapter() {
                    @Override
                    public boolean isSharable() {
                        return true;
                    }

                    @Override
                    public void channelActive(ChannelHandlerContext ctx) {
                        acceptedStreams.add((QuicStreamChannel) ctx.channel());
                        dropPackets.set(true);
                        ctx.fireChannelActive();
                    }

                    @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 packets once we tell it to do so.
        server.pipeline().addFirst(
                new ChannelDuplexHandler() {
                    @Override
                    public void channelRead(ChannelHandlerContext ctx, Object msg) {
                        if (dropPackets.get()) {
                            ReferenceCountUtil.release(msg);
                        } else {
                            ctx.fireChannelRead(msg);
                        }
                    }

                    @Override
                    public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {
                        if (dropPackets.get()) {
                            ReferenceCountUtil.release(msg);
                            promise.setSuccess();
                        } else {
                            ctx.write(msg, promise);
                        }
                    }
                });

        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();
            assertTrue(quicStream.closeFuture().await().isSuccess());

            QuicStreamChannel accepted = acceptedStreams.take();
            accepted.closeFuture().sync();
            assertTrue(accepted.parent().isTimedOut());

Domain

Subdomains

Frequently Asked Questions

What does testTimedOut() do?
testTimedOut() is a function in the netty codebase, defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicChannelConnectTest.java.
Where is testTimedOut() defined?
testTimedOut() is defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicChannelConnectTest.java at line 413.
What does testTimedOut() call?
testTimedOut() calls 3 function(s): assertState, channelActive, channelRead.

Analyze Your Own Codebase

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

Try Supermodel Free