protected void tearDown() throws Exception { log.info("CHAN MGR STOP"); chanMgr.stop(); chanMgr = null; log.info("MOCK SERVER STOP"); mockServer.stop(); log.info("check for warns"); HandlerForTests.checkForWarnings(); log.info("done"); }
/** * Test closing socket before ChannelManager shutdown works. * * @throws Exception */ public void testCloseSvrSocketBeforeChannelMgrShutdown() throws Exception { Class c = Class.forName(getChannelImplName()); client1.bind(loopBackAnyPort); client1.oldConnect(svrAddr); boolean isConnected = client1.isConnected(); assertTrue("Client should be connected", isConnected); TCPChannel svrChan = ZNioFailureSuperclass.expectServerChannel(mockServer, c); client1.registerForReads((DataListener) mockHandler); verifyDataPassing(svrChan); svrChan.oldClose(); // shutdown channel manager first mockServer.stop(); mockHandler.expect(MockNIOServer.FAR_END_CLOSED); }
/** * There was a bug where calling ChannelManager.shutdown before closing any sockets registered * with that ChannelManager cannot be closed...well, at least this test proves when we close the * test, the other side should receive that -1 indicating the far end closed the socket. * * @throws Exception */ public void testCloseSocketAfterChannelMgrShutdown() throws Exception { Class c = Class.forName(getChannelImplName()); client1.bind(loopBackAnyPort); client1.oldConnect(svrAddr); TCPChannel svrChan = ZNioFailureSuperclass.expectServerChannel(mockServer, c); client1.registerForReads((DataListener) mockHandler); verifyDataPassing(svrChan); // shutdown channel manager first....should all sockets be closed? Right now // someone has to manually close all accepted sockets...ie. client responsibility. svrChan.oldClose(); mockServer.stop(); // notice the Channelmanager on the client side has not shut down so we should // see a close event.... mockHandler.expect(MockNIOServer.FAR_END_CLOSED); }