Java 类io.netty.channel.kqueue.KQueue 实例源码

项目:qpid-jms    文件:NettyTcpTransportTest.java   
private void doTestKQueueSupport(boolean useKQueue) throws Exception {
    assumeTrue(KQueue.isAvailable());

    try (NettyEchoServer server = createEchoServer(createServerOptions())) {
        server.start();

        int port = server.getServerPort();
        URI serverLocation = new URI("tcp://localhost:" + port);

        TransportOptions options = createClientOptions();
        options.setUseKQueue(useKQueue);
        options.setUseEpoll(false);
        Transport transport = createTransport(serverLocation, testListener, options);
        try {
            transport.connect(null);
            LOG.info("Connected to server:{} as expected.", serverLocation);
        } catch (Exception e) {
            fail("Should have connected to the server at " + serverLocation + " but got exception: " + e);
        }

        assertTrue(transport.isConnected());
        assertEquals(serverLocation, transport.getRemoteLocation());
        assertKQueue("Transport should be using Kqueue", useKQueue, transport);

        transport.close();

        // Additional close should not fail or cause other problems.
        transport.close();
    }

    assertTrue(!transportClosed);  // Normal shutdown does not trigger the event.
    assertTrue(exceptions.isEmpty());
    assertTrue(data.isEmpty());
}