SocketFixedLengthEchoTest Class — netty Architecture
Architecture documentation for the SocketFixedLengthEchoTest class in SocketFixedLengthEchoTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 7531b4be_9752_efc3_be5e_e3f144817b9b["SocketFixedLengthEchoTest"] 09f682ec_9784_e533_2448_adc18a769695["SocketFixedLengthEchoTest.java"] 7531b4be_9752_efc3_be5e_e3f144817b9b -->|defined in| 09f682ec_9784_e533_2448_adc18a769695 a9c74c52_1e51_df07_fa54_a8311adda392["testFixedLengthEcho()"] 7531b4be_9752_efc3_be5e_e3f144817b9b -->|method| a9c74c52_1e51_df07_fa54_a8311adda392 fceb1368_fa17_a6a0_fc49_2489b8f4289f["testFixedLengthEchoNotAutoRead()"] 7531b4be_9752_efc3_be5e_e3f144817b9b -->|method| fceb1368_fa17_a6a0_fc49_2489b8f4289f
Relationship Graph
Source Code
testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketFixedLengthEchoTest.java lines 37–201
public class SocketFixedLengthEchoTest extends AbstractSocketTest {
private static final Random random = new Random();
static final byte[] data = new byte[1048576];
static {
random.nextBytes(data);
}
@Test
public void testFixedLengthEcho(TestInfo testInfo) throws Throwable {
run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
@Override
public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
testFixedLengthEcho(serverBootstrap, bootstrap);
}
});
}
@Test
public void testFixedLengthEchoNotAutoRead(TestInfo testInfo) throws Throwable {
run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
@Override
public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
testFixedLengthEchoNotAutoRead(serverBootstrap, bootstrap);
}
});
}
public void testFixedLengthEcho(ServerBootstrap sb, Bootstrap cb) throws Throwable {
testFixedLengthEcho(sb, cb, true);
}
public void testFixedLengthEchoNotAutoRead(ServerBootstrap sb, Bootstrap cb) throws Throwable {
testFixedLengthEcho(sb, cb, false);
}
private static void testFixedLengthEcho(ServerBootstrap sb, Bootstrap cb, boolean autoRead) throws Throwable {
final EchoHandler sh = new EchoHandler(autoRead);
final EchoHandler ch = new EchoHandler(autoRead);
sb.childOption(ChannelOption.AUTO_READ, autoRead);
sb.childHandler(new ChannelInitializer<Channel>() {
@Override
public void initChannel(Channel sch) throws Exception {
sch.pipeline().addLast("decoder", new FixedLengthFrameDecoder(1024));
sch.pipeline().addAfter("decoder", "handler", sh);
}
});
cb.option(ChannelOption.AUTO_READ, autoRead);
cb.handler(new ChannelInitializer<Channel>() {
@Override
public void initChannel(Channel sch) throws Exception {
sch.pipeline().addLast("decoder", new FixedLengthFrameDecoder(1024));
sch.pipeline().addAfter("decoder", "handler", ch);
}
});
Channel sc = sb.bind().sync().channel();
Channel cc = cb.connect(sc.localAddress()).sync().channel();
for (int i = 0; i < data.length;) {
int length = Math.min(random.nextInt(1024 * 3), data.length - i);
cc.writeAndFlush(randomBufferType(cc.alloc(), data, i, length));
i += length;
}
while (ch.counter < data.length) {
if (sh.exception.get() != null) {
break;
}
if (ch.exception.get() != null) {
break;
}
Thread.sleep(50);
}
while (sh.counter < data.length) {
if (sh.exception.get() != null) {
break;
Defined In
Source
Frequently Asked Questions
What is the SocketFixedLengthEchoTest class?
SocketFixedLengthEchoTest is a class in the netty codebase, defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketFixedLengthEchoTest.java.
Where is SocketFixedLengthEchoTest defined?
SocketFixedLengthEchoTest is defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketFixedLengthEchoTest.java at line 37.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free