EpollDomainSocketFdTest Class — netty Architecture
Architecture documentation for the EpollDomainSocketFdTest class in EpollDomainSocketFdTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD bc37b1b6_756d_8e84_002e_3eac4254daff["EpollDomainSocketFdTest"] 7d8b92e4_a8da_e088_bfb8_5e007bad184b["EpollDomainSocketFdTest.java"] bc37b1b6_756d_8e84_002e_3eac4254daff -->|defined in| 7d8b92e4_a8da_e088_bfb8_5e007bad184b f1a1825d_c46f_b8c1_4576_10f1df22fc9b["SocketAddress()"] bc37b1b6_756d_8e84_002e_3eac4254daff -->|method| f1a1825d_c46f_b8c1_4576_10f1df22fc9b 3c3fce5c_d721_0a6e_d39b_23e6bd96157d["newFactories()"] bc37b1b6_756d_8e84_002e_3eac4254daff -->|method| 3c3fce5c_d721_0a6e_d39b_23e6bd96157d 169ef119_faae_cf92_466a_d873ca1bf824["testSendRecvFd()"] bc37b1b6_756d_8e84_002e_3eac4254daff -->|method| 169ef119_faae_cf92_466a_d873ca1bf824
Relationship Graph
Source Code
transport-native-epoll/src/test/java/io/netty/channel/epoll/EpollDomainSocketFdTest.java lines 41–111
public class EpollDomainSocketFdTest extends AbstractSocketTest {
@Override
protected SocketAddress newSocketAddress() {
return EpollSocketTestPermutation.newDomainSocketAddress();
}
@Override
protected List<TestsuitePermutation.BootstrapComboFactory<ServerBootstrap, Bootstrap>> newFactories() {
return EpollSocketTestPermutation.INSTANCE.domainSocket();
}
@Test
@Timeout(value = 30000, unit = TimeUnit.MILLISECONDS)
public void testSendRecvFd(TestInfo testInfo) throws Throwable {
run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
@Override
public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
testSendRecvFd(serverBootstrap, bootstrap);
}
});
}
public void testSendRecvFd(ServerBootstrap sb, Bootstrap cb) throws Throwable {
final BlockingQueue<Object> queue = new LinkedBlockingQueue<Object>(1);
sb.childHandler(new ChannelInboundHandlerAdapter() {
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
// Create new channel and obtain a file descriptor from it.
final EpollDomainSocketChannel ch = new EpollDomainSocketChannel();
ctx.writeAndFlush(ch.fd()).addListener(future -> {
if (!future.isSuccess()) {
Throwable cause = future.cause();
queue.offer(cause);
}
});
}
});
cb.handler(new ChannelInboundHandlerAdapter() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
FileDescriptor fd = (FileDescriptor) msg;
queue.offer(fd);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
queue.add(cause);
ctx.close();
}
});
cb.option(EpollChannelOption.DOMAIN_SOCKET_READ_MODE,
DomainSocketReadMode.FILE_DESCRIPTORS);
Channel sc = sb.bind().sync().channel();
Channel cc = cb.connect(sc.localAddress()).sync().channel();
Object received = queue.take();
cc.close().sync();
sc.close().sync();
if (received instanceof FileDescriptor) {
FileDescriptor fd = (FileDescriptor) received;
assertTrue(fd.isOpen());
fd.close();
assertFalse(fd.isOpen());
assertNull(queue.poll());
} else {
throw (Throwable) received;
}
}
}
Source
Frequently Asked Questions
What is the EpollDomainSocketFdTest class?
EpollDomainSocketFdTest is a class in the netty codebase, defined in transport-native-epoll/src/test/java/io/netty/channel/epoll/EpollDomainSocketFdTest.java.
Where is EpollDomainSocketFdTest defined?
EpollDomainSocketFdTest is defined in transport-native-epoll/src/test/java/io/netty/channel/epoll/EpollDomainSocketFdTest.java at line 41.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free