QuicStreamShutdownTest Class — netty Architecture
Architecture documentation for the QuicStreamShutdownTest class in QuicStreamShutdownTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 8f0deefd_ac73_09cd_1ee0_413b4ec84595["QuicStreamShutdownTest"] f6ba3c9a_4f61_b9b2_34f6_3ed84e617993["QuicStreamShutdownTest.java"] 8f0deefd_ac73_09cd_1ee0_413b4ec84595 -->|defined in| f6ba3c9a_4f61_b9b2_34f6_3ed84e617993 dcf12060_a684_6392_e406_d316f98f13cc["testShutdownInputClosureCausesStreamStopped()"] 8f0deefd_ac73_09cd_1ee0_413b4ec84595 -->|method| dcf12060_a684_6392_e406_d316f98f13cc 87b6acf8_1a82_813a_0a39_1298befea5f9["testShutdownInputClosureByServerCausesStreamStopped()"] 8f0deefd_ac73_09cd_1ee0_413b4ec84595 -->|method| 87b6acf8_1a82_813a_0a39_1298befea5f9 55d4b288_c1b1_40e0_6744_84b389a552a5["testShutdownOutputClosureByServerCausesStreamReset()"] 8f0deefd_ac73_09cd_1ee0_413b4ec84595 -->|method| 55d4b288_c1b1_40e0_6744_84b389a552a5
Relationship Graph
Source Code
codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamShutdownTest.java lines 40–220
public class QuicStreamShutdownTest extends AbstractQuicTest {
@ParameterizedTest
@MethodSource("newSslTaskExecutors")
public void testShutdownInputClosureCausesStreamStopped(Executor executor) throws Throwable {
Channel server = null;
Channel channel = null;
CountDownLatch latch = new CountDownLatch(2);
try {
server = QuicTestUtils.newServer(executor, new ChannelInboundHandlerAdapter(),
new ChannelInboundHandlerAdapter() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
ChannelFutureListener futureListener = channelFuture -> {
Throwable cause = channelFuture.cause();
if (cause instanceof ChannelOutputShutdownException) {
latch.countDown();
}
};
ByteBuf buffer = (ByteBuf) msg;
ctx.write(buffer.retainedDuplicate()).addListener(futureListener);
ctx.writeAndFlush(buffer).addListener(futureListener);
}
});
channel = QuicTestUtils.newClient(executor);
QuicChannel quicChannel = QuicTestUtils.newQuicChannelBootstrap(channel)
.handler(new ChannelInboundHandlerAdapter())
.streamHandler(new ChannelInboundHandlerAdapter())
.remoteAddress(server.localAddress())
.connect()
.get();
QuicStreamChannel streamChannel = quicChannel.createStream(QuicStreamType.BIDIRECTIONAL,
new ChannelInboundHandlerAdapter()).sync().getNow();
streamChannel.shutdownInput().sync();
assertTrue(streamChannel.isInputShutdown());
streamChannel.writeAndFlush(Unpooled.buffer().writeLong(8)).sync();
latch.await();
} finally {
QuicTestUtils.closeIfNotNull(channel);
QuicTestUtils.closeIfNotNull(server);
shutdown(executor);
}
}
@ParameterizedTest
@MethodSource("newSslTaskExecutors")
public void testShutdownInputClosureByServerCausesStreamStopped(Executor executor) throws Throwable {
Channel server = null;
Channel channel = null;
CountDownLatch latch = new CountDownLatch(2);
AtomicReference<Throwable> errorRef = new AtomicReference<>();
try {
server = QuicTestUtils.newServer(executor, new ChannelInboundHandlerAdapter(),
new ChannelInboundHandlerAdapter() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
QuicStreamChannel streamChannel = (QuicStreamChannel) ctx.channel();
streamChannel.shutdownInput()
.addListener(f -> {
ByteBuf buffer = (ByteBuf) msg;
if (!f.isSuccess()) {
errorRef.compareAndSet(null, f.cause());
latch.countDown();
buffer.release();
} else {
ctx.writeAndFlush(buffer).addListener(channelFuture -> {
if (!channelFuture.isSuccess()) {
errorRef.compareAndSet(null, channelFuture.cause());
}
latch.countDown();
});
}
});
}
});
channel = QuicTestUtils.newClient(executor);
QuicChannel quicChannel = QuicTestUtils.newQuicChannelBootstrap(channel)
Source
Frequently Asked Questions
What is the QuicStreamShutdownTest class?
QuicStreamShutdownTest is a class in the netty codebase, defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamShutdownTest.java.
Where is QuicStreamShutdownTest defined?
QuicStreamShutdownTest is defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicStreamShutdownTest.java at line 40.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free