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()); }