Return-Path: Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: (qmail 32984 invoked from network); 27 Apr 2010 22:34:45 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 27 Apr 2010 22:34:45 -0000 Received: (qmail 87678 invoked by uid 500); 27 Apr 2010 22:34:45 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 87653 invoked by uid 500); 27 Apr 2010 22:34:45 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 87646 invoked by uid 99); 27 Apr 2010 22:34:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Apr 2010 22:34:45 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Apr 2010 22:34:42 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D35B7238899B; Tue, 27 Apr 2010 22:33:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r938707 - in /activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net: SocketTest.cpp SocketTest.h Date: Tue, 27 Apr 2010 22:33:59 -0000 To: commits@activemq.apache.org From: tabish@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100427223359.D35B7238899B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tabish Date: Tue Apr 27 22:33:59 2010 New Revision: 938707 URL: http://svn.apache.org/viewvc?rev=938707&view=rev Log: Add some more Socket Tests, no issues found. Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.cpp activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.h Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.cpp URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.cpp?rev=938707&r1=938706&r2=938707&view=diff ============================================================================== --- activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.cpp (original) +++ activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.cpp Tue Apr 27 22:33:59 2010 @@ -181,6 +181,121 @@ void SocketTest::testGetTcpNoDelay() { false, client.getTcpNoDelay() ); } +//////////////////////////////////////////////////////////////////////////////// +void SocketTest::testIsConnected() { + + ServerSocket server(0); + Socket client( "localhost", server.getLocalPort() ); + + std::auto_ptr worker( server.accept() ); + + CPPUNIT_ASSERT_MESSAGE( "Socket indicated not connected when it should be", + client.isConnected() ); + + client.close(); + worker->close(); + server.close(); +} + +//////////////////////////////////////////////////////////////////////////////// +void SocketTest::testIsClosed() { + + ServerSocket server(0); + Socket client( "localhost", server.getLocalPort() ); + + std::auto_ptr worker( server.accept() ); + + // validate isClosed returns expected values + CPPUNIT_ASSERT_MESSAGE( "Socket should indicate it is not closed(1):", + !client.isClosed() ); + client.close(); + CPPUNIT_ASSERT_MESSAGE( "Socket should indicate it is closed(1):", + client.isClosed() ); + + // validate that isClosed works ok for sockets returned from + // ServerSocket.accept() + CPPUNIT_ASSERT_MESSAGE( "Accepted Socket should indicate it is not closed:", + !worker->isClosed() ); + worker->close(); + CPPUNIT_ASSERT_MESSAGE( "Accepted Socket should indicate it is closed:", + worker->isClosed() ); + + // and finally for the server socket + CPPUNIT_ASSERT_MESSAGE( "Server Socket should indicate it is not closed:", + !server.isClosed() ); + server.close(); + CPPUNIT_ASSERT_MESSAGE( "Server Socket should indicate it is closed:", + server.isClosed() ); +} + +//////////////////////////////////////////////////////////////////////////////// +void SocketTest::testIsInputShutdown() { + + ServerSocket server(0); + Socket client( "localhost", server.getLocalPort() ); + + std::auto_ptr worker( server.accept() ); + + InputStream* theInput = client.getInputStream(); + OutputStream* theOutput = worker->getOutputStream(); + + // make sure we get the right answer with newly connected socket + CPPUNIT_ASSERT_MESSAGE( "Socket indicated input shutdown when it should not have", + !client.isInputShutdown() ); + + // shutdown the output + client.shutdownInput(); + + // make sure we get the right answer once it is shut down + CPPUNIT_ASSERT_MESSAGE( "Socket indicated input was NOT shutdown when it should have been", + client.isInputShutdown() ); + + client.close(); + worker->close(); + server.close(); + + // make sure we get the right answer for closed sockets + CPPUNIT_ASSERT_MESSAGE( "Socket indicated input was shutdown when socket was closed", + !worker->isInputShutdown() ); + + theInput->close(); + theOutput->close(); +} + +//////////////////////////////////////////////////////////////////////////////// +void SocketTest::testIsOutputShutdown() { + + ServerSocket server(0); + Socket client( "localhost", server.getLocalPort() ); + + std::auto_ptr worker( server.accept() ); + + InputStream* theInput = client.getInputStream(); + OutputStream* theOutput = worker->getOutputStream(); + + // make sure we get the right answer with newly connected socket + CPPUNIT_ASSERT_MESSAGE( "Socket indicated output shutdown when it should not have", + !worker->isOutputShutdown() ); + + // shutdown the output + worker->shutdownOutput(); + + // make sure we get the right answer once it is shut down + CPPUNIT_ASSERT_MESSAGE( "Socket indicated output was NOT shutdown when it should have been", + worker->isOutputShutdown() ); + + client.close(); + worker->close(); + server.close(); + + // make sure we get the right answer for closed sockets + CPPUNIT_ASSERT_MESSAGE( "Socket indicated output was output shutdown when the socket was closed", + !client.isOutputShutdown() ); + + theInput->close(); + theOutput->close(); +} + // TODO - Remove or replace old tests //////////////////////////////////////////////////////////////////////////////// Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.h URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.h?rev=938707&r1=938706&r2=938707&view=diff ============================================================================== --- activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.h (original) +++ activemq/activemq-cpp/trunk/activemq-cpp/src/test/decaf/net/SocketTest.h Tue Apr 27 22:33:59 2010 @@ -37,6 +37,10 @@ namespace net{ CPPUNIT_TEST( testGetSoLinger ); CPPUNIT_TEST( testGetSoTimeout ); CPPUNIT_TEST( testGetTcpNoDelay ); + CPPUNIT_TEST( testIsConnected ); + CPPUNIT_TEST( testIsClosed ); + CPPUNIT_TEST( testIsInputShutdown ); + CPPUNIT_TEST( testIsOutputShutdown ); CPPUNIT_TEST( testTx ); CPPUNIT_TEST( testTrx ); @@ -62,6 +66,10 @@ namespace net{ void testGetSoLinger(); void testGetSoTimeout(); void testGetTcpNoDelay(); + void testIsConnected(); + void testIsClosed(); + void testIsInputShutdown(); + void testIsOutputShutdown(); // Old Tests void testConnect();