testWriteInWritePromiseCompletePreservesOrder() — netty Function Reference
Architecture documentation for the testWriteInWritePromiseCompletePreservesOrder() function in LocalChannelTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 2253f4d1_60c4_c68f_5e74_52790064aace["testWriteInWritePromiseCompletePreservesOrder()"] d7e5442a_9b99_814d_2bd6_0be57237db65["LocalChannelTest"] 2253f4d1_60c4_c68f_5e74_52790064aace -->|defined in| d7e5442a_9b99_814d_2bd6_0be57237db65 d3c8aa54_ac5d_6944_e789_c2c22ce16089["closeChannel()"] 2253f4d1_60c4_c68f_5e74_52790064aace -->|calls| d3c8aa54_ac5d_6944_e789_c2c22ce16089 c89c9d89_4030_c998_7504_cb2fa2ef2bc8["channelRead()"] 2253f4d1_60c4_c68f_5e74_52790064aace -->|calls| c89c9d89_4030_c998_7504_cb2fa2ef2bc8 style 2253f4d1_60c4_c68f_5e74_52790064aace fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/local/LocalChannelTest.java lines 461–531
@Test
public void testWriteInWritePromiseCompletePreservesOrder() throws InterruptedException {
Bootstrap cb = new Bootstrap();
ServerBootstrap sb = new ServerBootstrap();
final CountDownLatch messageLatch = new CountDownLatch(2);
final ByteBuf data = Unpooled.buffer();
final ByteBuf data2 = Unpooled.buffer();
data.writeInt(Integer.BYTES).writeInt(2);
data2.writeInt(Integer.BYTES).writeInt(1);
try {
cb.group(group1)
.channel(LocalChannel.class)
.handler(new TestHandler());
sb.group(group2)
.channel(LocalServerChannel.class)
.childHandler(new ChannelInboundHandlerAdapter() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
if (msg instanceof ByteBuf) {
ByteBuf buf = (ByteBuf) msg;
while (buf.isReadable()) {
int size = buf.readInt();
ByteBuf slice = buf.readRetainedSlice(size);
try {
if (slice.readInt() == messageLatch.getCount()) {
messageLatch.countDown();
}
} finally {
slice.release();
}
}
buf.release();
} else {
super.channelRead(ctx, msg);
}
}
});
Channel sc = null;
Channel cc = null;
try {
// Start server
sc = sb.bind(TEST_ADDRESS).syncUninterruptibly().channel();
// Connect to the server
cc = cb.connect(sc.localAddress()).syncUninterruptibly().channel();
final Channel ccCpy = cc;
// Make sure a write operation is executed in the eventloop
cc.pipeline().lastContext().executor().execute(new Runnable() {
@Override
public void run() {
ChannelPromise promise = ccCpy.newPromise();
promise.addListener(future ->
ccCpy.writeAndFlush(data2.retainedDuplicate(), ccCpy.newPromise()));
ccCpy.writeAndFlush(data.retainedDuplicate(), promise);
}
});
assertTrue(messageLatch.await(5, SECONDS));
} finally {
closeChannel(cc);
closeChannel(sc);
}
} finally {
data.release();
data2.release();
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does testWriteInWritePromiseCompletePreservesOrder() do?
testWriteInWritePromiseCompletePreservesOrder() is a function in the netty codebase, defined in transport/src/test/java/io/netty/channel/local/LocalChannelTest.java.
Where is testWriteInWritePromiseCompletePreservesOrder() defined?
testWriteInWritePromiseCompletePreservesOrder() is defined in transport/src/test/java/io/netty/channel/local/LocalChannelTest.java at line 461.
What does testWriteInWritePromiseCompletePreservesOrder() call?
testWriteInWritePromiseCompletePreservesOrder() calls 2 function(s): channelRead, closeChannel.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free