curl/curl-7.19.7.patch | 47 libtextcat/libtextcat-2.2.patch | 39 redland/raptor/raptor-1.4.18.patch.autotools | 173 + redland/rasqal/rasqal-0.9.16.patch.autotools | 173 + redland/redland/redland-1.0.8.patch.autotools | 173 + sal/qa/osl/socket/makefile.mk | 143 - sal/qa/osl/socket/osl_AcceptorSocket.cxx | 185 - sal/qa/osl/socket/osl_ConnectorSocket.cxx | 206 - sal/qa/osl/socket/osl_DatagramSocket.cxx | 187 - sal/qa/osl/socket/osl_Socket.cxx | 3370 +++++++++++--------------- sal/qa/osl/socket/osl_Socket2.cxx | 1405 ++++------ sal/qa/osl/socket/osl_SocketAddr.cxx | 995 +++---- sal/qa/osl/socket/osl_Socket_Const.h | 4 sal/qa/osl/socket/osl_Socket_Const_orig.h | 4 sal/qa/osl/socket/osl_Socket_tests.cxx | 30 sal/qa/osl/socket/osl_StreamSocket.cxx | 763 ++--- sal/qa/osl/socket/sockethelper.cxx | 47 sal/qa/osl/socket/sockethelper.hxx | 4 18 files changed, 3806 insertions(+), 4142 deletions(-)
New commits: commit 00e029ee91f750f7bf7ed141f80ab7bceac7b252 Author: Damjan Jovanovic <dam...@apache.org> Date: Sat Sep 5 07:59:22 2015 +0000 #i125003# migrate main/sal/qa/osl/socket from cppunit to Google Test, get tests to compile and not to SIGSEGV or die from EPIPE, and get as many tests to pass as possible. diff --git a/sal/qa/osl/socket/makefile.mk b/sal/qa/osl/socket/makefile.mk index d8d7816..bbdf013 100644 --- a/sal/qa/osl/socket/makefile.mk +++ b/sal/qa/osl/socket/makefile.mk @@ -32,180 +32,174 @@ ENABLE_EXCEPTIONS=TRUE .INCLUDE : settings.mk +.IF "$(ENABLE_UNIT_TESTS)" != "YES" +all: + @echo unit tests are disabled. Nothing to do. + +.ELSE + CFLAGS+= $(LFS_CFLAGS) CXXFLAGS+= $(LFS_CFLAGS) # BEGIN ---------------------------------------------------------------- # auto generated Target:Socket by codegen.pl -SHL1OBJS= \ +APP1OBJS= \ $(SLO)$/osl_Socket.obj -SHL1TARGET=osl_SocketOld -SHL1STDLIBS= $(SALLIB) $CPPUNITLIB) $(TESTSHL2LIB) +APP1TARGET=osl_SocketOld +APP1STDLIBS= $(SALLIB) $(GTESTLIB) $(TESTSHL2LIB) .IF "$(GUI)" == "WNT" -SHL1STDLIBS+= $(WS2_32LIB) +APP1STDLIBS+= $(WS2_32LIB) .ENDIF -.IF "$(GUI)" == "UNX" -SHL1STDLIBS+= -ldl -lnsl +.IF ""$(OS)"=="SOLARIS" +APP1STDLIBS+= -ldl -lnsl .ENDIF -SHL1IMPLIB= i$(SHL1TARGET) -# SHL1DEF= $(MISC)$/$(SHL1TARGET).def -DEF1NAME=$(SHL1TARGET) -# DEF1EXPORTFILE= export.exp -SHL1VERSIONMAP = $(PRJ)$/qa$/export.map +APP1RPATH = NONE +APP1TEST = enabled # auto generated Target:Socket # END ------------------------------------------------------------------ # --- BEGIN -------------------------------------------------------- -SHL2OBJS= \ +APP2OBJS= \ $(SLO)$/osl_Socket_tests.obj -SHL2TARGET= osl_Socket_tests -SHL2STDLIBS= $(SALLIB) $CPPUNITLIB) $(TESTSHL2LIB) - -SHL2IMPLIB= i$(SHL2TARGET) -DEF2NAME= $(SHL2TARGET) -SHL2VERSIONMAP = $(PRJ)$/qa$/export.map - +APP2TARGET= osl_Socket_tests +APP2STDLIBS= $(SALLIB) $(GTESTLIB) $(TESTSHL2LIB) +APP2RPATH = NONE +APP2TEST = enabled # END -------------------------------------------------------------- # BEGIN ---------------------------------------------------------------- # auto generated Target:Socket by codegen.pl -SHL3OBJS= \ +APP3OBJS= \ $(SLO)$/sockethelper.obj \ $(SLO)$/osl_StreamSocket.obj -SHL3TARGET= osl_StreamSocket -SHL3STDLIBS= $(SALLIB) $CPPUNITLIB) $(TESTSHL2LIB) +APP3TARGET= osl_StreamSocket +APP3STDLIBS= $(SALLIB) $(GTESTLIB) $(TESTSHL2LIB) .IF "$(GUI)" == "WNT" -SHL3STDLIBS += $(WS2_32LIB) +APP3STDLIBS += $(WS2_32LIB) .ENDIF -.IF "$(GUI)" == "UNX" -SHL3STDLIBS += -ldl -lnsl +.IF "$(OS)"=="SOLARIS" +APP3STDLIBS += -ldl -lnsl .ENDIF -SHL3IMPLIB= i$(SHL3TARGET) -DEF3NAME= $(SHL3TARGET) -SHL3VERSIONMAP = $(PRJ)$/qa$/export.map +APP3RPATH = NONE +APP3TEST = enabled # auto generated Target:Socket # END ------------------------------------------------------------------ # BEGIN ---------------------------------------------------------------- # auto generated Target:Socket by codegen.pl -SHL4OBJS= \ +APP4OBJS= \ $(SLO)$/sockethelper.obj \ $(SLO)$/osl_DatagramSocket.obj -SHL4TARGET= osl_DatagramSocket -SHL4STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB) +APP4TARGET= osl_DatagramSocket +APP4STDLIBS= $(SALLIB) $(GTESTLIB) $(TESTSHL2LIB) .IF "$(GUI)" == "WNT" -SHL4STDLIBS += $(WS2_32LIB) +APP4STDLIBS += $(WS2_32LIB) .ENDIF -.IF "$(GUI)" == "UNX" -SHL4STDLIBS += -ldl -lnsl +.IF "$(OS)"=="SOLARIS" +APP4STDLIBS += -ldl -lnsl .ENDIF -SHL4IMPLIB= i$(SHL4TARGET) -DEF4NAME= $(SHL4TARGET) -SHL4VERSIONMAP = $(PRJ)$/qa$/export.map +APP4RPATH = NONE +APP4TEST = enabled # auto generated Target:Socket # END ------------------------------------------------------------------ # BEGIN ---------------------------------------------------------------- # auto generated Target:Socket by codegen.pl -SHL5OBJS= \ +APP5OBJS= \ $(SLO)$/sockethelper.obj \ $(SLO)$/osl_SocketAddr.obj -SHL5TARGET= osl_SocketAddr -SHL5STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB) +APP5TARGET= osl_SocketAddr +APP5STDLIBS= $(SALLIB) $(GTESTLIB) $(TESTSHL2LIB) .IF "$(GUI)" == "WNT" -SHL5STDLIBS += $(WS2_32LIB) +APP5STDLIBS += $(WS2_32LIB) .ENDIF -.IF "$(GUI)" == "UNX" -SHL5STDLIBS += -ldl -lnsl +.IF "$(OS)"=="SOLARIS" +APP5STDLIBS += -ldl -lnsl .ENDIF -SHL5IMPLIB= i$(SHL5TARGET) -DEF5NAME= $(SHL5TARGET) -SHL5VERSIONMAP = $(PRJ)$/qa$/export.map +APP5RPATH = NONE +APP5TEST = enabled # auto generated Target:Socket # END ------------------------------------------------------------------ # BEGIN ---------------------------------------------------------------- # auto generated Target:Socket by codegen.pl -SHL6OBJS= \ +APP6OBJS= \ $(SLO)$/sockethelper.obj \ $(SLO)$/osl_Socket2.obj -SHL6TARGET= osl_Socket2 -SHL6STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB) +APP6TARGET= osl_Socket2 +APP6STDLIBS= $(SALLIB) $(GTESTLIB) $(TESTSHL2LIB) .IF "$(GUI)" == "WNT" -SHL6STDLIBS += $(WS2_32LIB) +APP6STDLIBS += $(WS2_32LIB) .ENDIF -.IF "$(GUI)" == "UNX" -SHL6STDLIBS += -ldl -lnsl +.IF "$(OS)"=="SOLARIS" +APP6STDLIBS += -ldl -lnsl .ENDIF -SHL6IMPLIB= i$(SHL6TARGET) -DEF6NAME= $(SHL6TARGET) -SHL6VERSIONMAP = $(PRJ)$/qa$/export.map +APP6RPATH = NONE +APP6TEST = enabled # auto generated Target:Socket # END ------------------------------------------------------------------ # BEGIN ---------------------------------------------------------------- # auto generated Target:Socket by codegen.pl -SHL7OBJS= \ +APP7OBJS= \ $(SLO)$/sockethelper.obj \ $(SLO)$/osl_ConnectorSocket.obj -SHL7TARGET= osl_ConnectorSocket -SHL7STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB) +APP7TARGET= osl_ConnectorSocket +APP7STDLIBS= $(SALLIB) $(GTESTLIB) $(TESTSHL2LIB) .IF "$(GUI)" == "WNT" -SHL7STDLIBS += $(WS2_32LIB) +APP7STDLIBS += $(WS2_32LIB) .ENDIF -.IF "$(GUI)" == "UNX" -SHL7STDLIBS += -ldl -lnsl +.IF "$(OS)"=="SOLARIS" +APP7STDLIBS += -ldl -lnsl .ENDIF -SHL7IMPLIB= i$(SHL7TARGET) -DEF7NAME= $(SHL7TARGET) -SHL7VERSIONMAP = $(PRJ)$/qa$/export.map +APP7RPATH = NONE +APP7TEST = enabled # auto generated Target:Socket # END ------------------------------------------------------------------ # BEGIN ---------------------------------------------------------------- # auto generated Target:Socket by codegen.pl -SHL8OBJS= \ +APP8OBJS= \ $(SLO)$/sockethelper.obj \ $(SLO)$/osl_AcceptorSocket.obj -SHL8TARGET= osl_AcceptorSocket -SHL8STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB) +APP8TARGET= osl_AcceptorSocket +APP8STDLIBS= $(SALLIB) $(GTESTLIB) $(TESTSHL2LIB) .IF "$(GUI)" == "WNT" -SHL8STDLIBS += $(WS2_32LIB) +APP8STDLIBS += $(WS2_32LIB) .ENDIF -.IF "$(GUI)" == "UNX" -SHL8STDLIBS += -ldl -lnsl +.IF "$(OS)"=="SOLARIS" +APP8STDLIBS += -ldl -lnsl .ENDIF -SHL8IMPLIB= i$(SHL8TARGET) -DEF8NAME= $(SHL8TARGET) -SHL8VERSIONMAP = $(PRJ)$/qa$/export.map +APP8PATH = NONE +APP8TEST = enabled # auto generated Target:Socket # END ------------------------------------------------------------------ @@ -216,4 +210,5 @@ SHL8VERSIONMAP = $(PRJ)$/qa$/export.map # --- Targets ------------------------------------------------------ .INCLUDE : target.mk -.INCLUDE : _cppunit.mk + +.ENDIF # "$(ENABLE_UNIT_TESTS)" != "YES" \ No newline at end of file diff --git a/sal/qa/osl/socket/osl_AcceptorSocket.cxx b/sal/qa/osl/socket/osl_AcceptorSocket.cxx index 7134410..1481d42 100644 --- a/sal/qa/osl/socket/osl_AcceptorSocket.cxx +++ b/sal/qa/osl/socket/osl_AcceptorSocket.cxx @@ -54,7 +54,7 @@ // include files //------------------------------------------------------------------------ -#include <testshl/simpleheader.hxx> +#include "gtest/gtest.h" #include "osl_Socket_Const.h" #include "sockethelper.hxx" @@ -87,13 +87,13 @@ protected: sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); if ( sal_True != bOK1 ) { - t_print("# AcceptorSocket bind address failed.\n" ) ; + printf("# AcceptorSocket bind address failed.\n" ) ; return; } sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); if ( sal_True != bOK2 ) { - t_print("# AcceptorSocket listen address failed.\n" ) ; + printf("# AcceptorSocket listen address failed.\n" ) ; return; } @@ -103,7 +103,7 @@ protected: if (eResult != osl_Socket_Ok ) { bOK = sal_True; - t_print("AcceptorThread: acceptConnection failed! \n"); + printf("AcceptorThread: acceptConnection failed! \n"); } } public: @@ -120,7 +120,7 @@ public: if ( isRunning( ) ) { asAcceptorSocket.shutdown(); - t_print("# error: Acceptor thread not terminated.\n" ); + printf("# error: Acceptor thread not terminated.\n" ); } } }; @@ -134,64 +134,51 @@ namespace osl_AcceptorSocket oslSocketType Type = osl_Socket_TypeStream); */ - class ctors : public CppUnit::TestFixture + class ctors : public ::testing::Test { public: + }; // class ctors - void ctors_001() - { - /// Socket constructor. - ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream ); - - CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the acceptor socket was created successfully.", - osl_Socket_TypeStream == asSocket.getType( ) ); - } - - CPPUNIT_TEST_SUITE( ctors ); - CPPUNIT_TEST( ctors_001 ); - CPPUNIT_TEST_SUITE_END(); + TEST_F(ctors, ctors_001) + { + /// Socket constructor. + ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream ); - }; // class ctors + ASSERT_TRUE(osl_Socket_TypeStream == asSocket.getType( )) << "test for ctors_001 constructor function: check if the acceptor socket was created successfully."; + } #if 0 /* OBSOLETE */ - class operator_assign : public CppUnit::TestFixture + class operator_assign : public ::testing::Test { public: + }; // class operator_assign - void assign_001() - { + TEST_F(assign, assign_001) + { #if defined(LINUX) - ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream ); - ::osl::AcceptorSocket asSocketAssign( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream ); - asSocket.setOption( osl_Socket_OptionReuseAddr, 1); - ::osl::SocketAddr saSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT4 ); - asSocket.bind( saSocketAddr ); + ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream ); + ::osl::AcceptorSocket asSocketAssign( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream ); + asSocket.setOption( osl_Socket_OptionReuseAddr, 1); + ::osl::SocketAddr saSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT4 ); + asSocket.bind( saSocketAddr ); - AcceptorThread myAcceptorThread( asSocketAssign, rtl::OUString::createFromAscii("127.0.0.1") ); - myAcceptorThread.create(); + AcceptorThread myAcceptorThread( asSocketAssign, rtl::OUString::createFromAscii("127.0.0.1") ); + myAcceptorThread.create(); - thread_sleep( 1 ); - //when accepting, assign another socket to the socket, the thread will not be closed, so is blocking - asSocketAssign = asSocket; + thread_sleep( 1 ); + //when accepting, assign another socket to the socket, the thread will not be closed, so is blocking + asSocketAssign = asSocket; - t_print("#asSocketAssign port number is %d\n", asSocketAssign.getLocalPort() ); + printf("#asSocketAssign port number is %d\n", asSocketAssign.getLocalPort() ); - asSocketAssign.shutdown(); - myAcceptorThread.join(); + asSocketAssign.shutdown(); + myAcceptorThread.join(); - CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.", - myAcceptorThread.isOK() == sal_True ); + ASSERT_TRUE(myAcceptorThread.isOK() == sal_True) << "test for close when is accepting: the socket will quit accepting status."; #endif /* LINUX */ - } - - - CPPUNIT_TEST_SUITE( operator_assign ); - CPPUNIT_TEST( assign_001 ); - CPPUNIT_TEST_SUITE_END(); - - }; // class operator_assign + } #endif /* OBSOLETE */ /** testing the method: @@ -200,7 +187,7 @@ namespace osl_AcceptorSocket inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection, SocketAddr & PeerAddr); */ - class listen_accept : public CppUnit::TestFixture + class listen_accept : public ::testing::Test { public: TimeValue *pTimeout; @@ -209,7 +196,7 @@ namespace osl_AcceptorSocket // initialization - void setUp( ) + void SetUp( ) { pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) ); pTimeout->Seconds = 3; @@ -218,81 +205,67 @@ namespace osl_AcceptorSocket // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp ); } - void tearDown( ) + void TearDown( ) { free( pTimeout ); // sHandle = NULL; asAcceptorSocket.close( ); csConnectorSocket.close( ); } + }; // class listen_accept + TEST_F(listen_accept, listen_accept_001) + { + ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); + ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); + ::osl::StreamSocket ssConnection; - void listen_accept_001() - { - ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); - ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); - ::osl::StreamSocket ssConnection; - - /// launch server socket - sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); - CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 ); - sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); - CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 ); - asAcceptorSocket.enableNonBlockingMode( sal_True ); - - /// launch client socket - csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... - - oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection... + /// launch server socket + sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); + ASSERT_TRUE(sal_True == bOK1) << "AcceptorSocket bind address failed."; + sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); + ASSERT_TRUE(sal_True == bOK2) << "AcceptorSocket listen failed."; + asAcceptorSocket.enableNonBlockingMode( sal_True ); - CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept.", - ( osl_Socket_Ok == eResult ) ); - } + /// launch client socket + csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... - void listen_accept_002() - { - ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT4 ); - ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT4 ); - ::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP ); - ::osl::StreamSocket ssConnection; - - /// launch server socket - sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); - CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 ); - sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); - CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 ); - asAcceptorSocket.enableNonBlockingMode( sal_True ); - - /// launch client socket - csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... - - oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection, saPeerSocketAddr); /// waiting for incoming connection... - - CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept, accept with peer address.", - ( sal_True == bOK2 ) && - ( osl_Socket_Ok == eResult ) && - ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) ); - } + oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection... + ASSERT_TRUE( ( osl_Socket_Ok == eResult ) ) + << "test for listen_accept function: try to create a connection with remote host, using listen and accept."; + } - CPPUNIT_TEST_SUITE( listen_accept ); - CPPUNIT_TEST( listen_accept_001 ); - CPPUNIT_TEST( listen_accept_002 ); - CPPUNIT_TEST_SUITE_END(); + TEST_F(listen_accept, listen_accept_002) + { + ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT4 ); + ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT4 ); + ::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP ); + ::osl::StreamSocket ssConnection; - }; // class listen_accept + /// launch server socket + sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); + ASSERT_TRUE(sal_True == bOK1) << "AcceptorSocket bind address failed."; + sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); + ASSERT_TRUE(sal_True == bOK2) << "AcceptorSocket listen failed."; + asAcceptorSocket.enableNonBlockingMode( sal_True ); + /// launch client socket + csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... -// ----------------------------------------------------------------------------- + oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection, saPeerSocketAddr); /// waiting for incoming connection... -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::ctors, "osl_AcceptorSocket"); -//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::operator_assign, "osl_AcceptorSocket"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::listen_accept, "osl_AcceptorSocket"); + ASSERT_TRUE( + ( sal_True == bOK2 ) && + ( osl_Socket_Ok == eResult ) && + ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) ) + << "test for listen_accept function: try to create a connection with remote host, using listen and accept, accept with peer address."; + } } // namespace osl_AcceptorSocket -// ----------------------------------------------------------------------------- - -// this macro creates an empty function, which will called by the RegisterAllFunctions() -// to let the user the possibility to also register some functions by hand. -NOADDITIONAL; +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/sal/qa/osl/socket/osl_ConnectorSocket.cxx b/sal/qa/osl/socket/osl_ConnectorSocket.cxx index ad16b3e..4814a29 100644 --- a/sal/qa/osl/socket/osl_ConnectorSocket.cxx +++ b/sal/qa/osl/socket/osl_ConnectorSocket.cxx @@ -54,7 +54,7 @@ // include files //------------------------------------------------------------------------ -#include <testshl/simpleheader.hxx> +#include "gtest/gtest.h" #include "osl_Socket_Const.h" #include "sockethelper.hxx" @@ -89,7 +89,7 @@ public: { if ( isRunning( ) ) { - t_print("# error: CloseSocketThread not terminated.\n" ); + printf("# error: CloseSocketThread not terminated.\n" ); } } }; @@ -103,29 +103,25 @@ namespace osl_ConnectorSocket oslSocketType Type = osl_Socket_TypeStream); */ - class ctors : public CppUnit::TestFixture + class ctors : public ::testing::Test { public: - void ctors_001() - { - /// Socket constructor. - ::osl::ConnectorSocket csSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream ); - - CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the connector socket was created successfully.", - osl_Socket_TypeStream == csSocket.getType( ) ); - } + }; // class ctors - CPPUNIT_TEST_SUITE( ctors ); - CPPUNIT_TEST( ctors_001 ); - CPPUNIT_TEST_SUITE_END(); + TEST_F(ctors, ctors_001) + { + /// Socket constructor. + ::osl::ConnectorSocket csSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream ); - }; // class ctors + ASSERT_TRUE( osl_Socket_TypeStream == csSocket.getType( ) ) + << "test for ctors_001 constructor function: check if the connector socket was created successfully."; + } /** testing the method: oslSocketResult SAL_CALL connect(const SocketAddr& TargetHost, const TimeValue* pTimeout = 0); */ - class connect : public CppUnit::TestFixture + class connect : public ::testing::Test { public: TimeValue *pTimeout; @@ -134,7 +130,7 @@ namespace osl_ConnectorSocket // initialization - void setUp( ) + void SetUp( ) { pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) ); pTimeout->Seconds = 3; @@ -142,119 +138,105 @@ namespace osl_ConnectorSocket // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp ); } - void tearDown( ) + void TearDown( ) { free( pTimeout ); // sHandle = NULL; asAcceptorSocket.close( ); csConnectorSocket.close( ); } + }; // class connect + TEST_F(connect, connect_001) + { + ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT2 ); + ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT2 ); + ::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP ); + ::osl::StreamSocket ssConnection; + + /// launch server socket + asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True); + sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); + ASSERT_TRUE(sal_True == bOK1) << "AcceptorSocket bind address failed."; + sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); + ASSERT_TRUE(sal_True == bOK2) << "AcceptorSocket listen failed."; + + //asAcceptorSocket.enableNonBlockingMode( sal_True ); + //oslSocketResult eResultAccept = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection... + //ASSERT_TRUE(osl_Socket_Ok == eResultAccept) << "accept failed."; + /// launch client socket + oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... + ASSERT_TRUE(osl_Socket_Ok == eResult) << "connect failed."; + + /// get peer information + csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected. + + ASSERT_TRUE( + ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) && + ( osl_Socket_Ok == eResult )) + << "test for connect function: try to create a connection with remote host. and check the setup address."; + } + //non-blocking mode connect? + TEST_F(connect, connect_002) + { + ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); + ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); + ::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP ); - void connect_001() - { - ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT2 ); - ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT2 ); - ::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP ); - ::osl::StreamSocket ssConnection; - - /// launch server socket - asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True); - sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); - CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 ); - sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); - CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 ); - - //asAcceptorSocket.enableNonBlockingMode( sal_True ); - //oslSocketResult eResultAccept = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection... - //CPPUNIT_ASSERT_MESSAGE( "accept failed.", osl_Socket_Ok == eResultAccept ); - /// launch client socket - oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... - CPPUNIT_ASSERT_MESSAGE( "connect failed.", osl_Socket_Ok == eResult ); - - /// get peer information - csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected. - - CPPUNIT_ASSERT_MESSAGE( "test for connect function: try to create a connection with remote host. and check the setup address.", - ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) && - ( osl_Socket_Ok == eResult )); - } - //non-blocking mode connect? - void connect_002() - { - ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); - ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); - ::osl::SocketAddr saPeerSocketAddr( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_FTP ); - - asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True); - asAcceptorSocket.enableNonBlockingMode( sal_True ); - sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); - CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 ); - sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); - CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 ); - - csConnectorSocket.enableNonBlockingMode( sal_True ); - - oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... - CPPUNIT_ASSERT_MESSAGE( "connect failed.", osl_Socket_InProgress == eResult || osl_Socket_Ok == eResult ); - - /// get peer information - csConnectorSocket.getPeerAddr( saPeerSocketAddr ); - - CPPUNIT_ASSERT_MESSAGE( "test for connect function: try to create a connection with remote host. and check the setup address.", - sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) ; - } - // really an error or just delayed - // how to design scenarios that will return osl_Socket_Interrupted, osl_Socket_TimedOut - void connect_003() - { - ::osl::SocketAddr saTargetSocketAddr1( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); - ::osl::SocketAddr saTargetSocketAddr2( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT3 ); - - csConnectorSocket.enableNonBlockingMode( sal_False ); + asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True); + asAcceptorSocket.enableNonBlockingMode( sal_True ); + sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); + ASSERT_TRUE(sal_True == bOK1) << "AcceptorSocket bind address failed."; + sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); + ASSERT_TRUE(sal_True == bOK2) << "AcceptorSocket listen failed."; - oslSocketResult eResult1 = csConnectorSocket.connect( saTargetSocketAddr1, pTimeout ); - oslSocketResult eResult2 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout ); - CloseSocketThread myCloseThread( csConnectorSocket ); - oslSocketResult eResult3 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout ); - myCloseThread.join(); - CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult1 && - osl_Socket_Error == eResult2 && osl_Socket_Error == eResult3 ); + csConnectorSocket.enableNonBlockingMode( sal_True ); - } + oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... + ASSERT_TRUE(osl_Socket_InProgress == eResult || osl_Socket_Ok == eResult) << "connect failed."; - // really an error in non-blocking mode - void connect_004() - { - ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT3 ); + /// get peer information + csConnectorSocket.getPeerAddr( saPeerSocketAddr ); - csConnectorSocket.enableNonBlockingMode( sal_True ); + ASSERT_TRUE( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) + << "test for connect function: try to create a connection with remote host. and check the setup address."; + } + // really an error or just delayed + // how to design scenarios that will return osl_Socket_Interrupted, osl_Socket_TimedOut + TEST_F(connect, connect_003) + { + ::osl::SocketAddr saTargetSocketAddr1( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT3 ); + ::osl::SocketAddr saTargetSocketAddr2( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT3 ); - oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... - CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult ); - } - /** here need a case: immediate connection, say in non-blocking mode connect return osl_Socket_Ok - */ + csConnectorSocket.enableNonBlockingMode( sal_False ); - CPPUNIT_TEST_SUITE( connect ); - CPPUNIT_TEST( connect_001 ); - CPPUNIT_TEST( connect_002 ); - CPPUNIT_TEST( connect_003 ); - CPPUNIT_TEST( connect_004 ); - CPPUNIT_TEST_SUITE_END(); + oslSocketResult eResult1 = csConnectorSocket.connect( saTargetSocketAddr1, pTimeout ); + oslSocketResult eResult2 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout ); + CloseSocketThread myCloseThread( csConnectorSocket ); + oslSocketResult eResult3 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout ); + myCloseThread.join(); + ASSERT_TRUE(osl_Socket_Error == eResult1 && + osl_Socket_Error == eResult2 && osl_Socket_Error == eResult3) << "connect should failed."; - }; // class connect + } + // really an error in non-blocking mode + TEST_F(connect, connect_004) + { + ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT3 ); -// ----------------------------------------------------------------------------- + csConnectorSocket.enableNonBlockingMode( sal_True ); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ConnectorSocket::ctors, "osl_ConnectorSocket"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ConnectorSocket::connect, "osl_ConnectorSocket"); + oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server... + ASSERT_TRUE(osl_Socket_Error == eResult) << "connect should failed."; + } + /** here need a case: immediate connection, say in non-blocking mode connect return osl_Socket_Ok + */ } // namespace osl_ConnectorSocket -// ----------------------------------------------------------------------------- - -// this macro creates an empty function, which will called by the RegisterAllFunctions() -// to let the user the possibility to also register some functions by hand. -NOADDITIONAL; +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/sal/qa/osl/socket/osl_DatagramSocket.cxx b/sal/qa/osl/socket/osl_DatagramSocket.cxx index 5a496c0..9bfdf9d 100644 --- a/sal/qa/osl/socket/osl_DatagramSocket.cxx +++ b/sal/qa/osl/socket/osl_DatagramSocket.cxx @@ -54,7 +54,7 @@ // include files //------------------------------------------------------------------------ -#include <testshl/simpleheader.hxx> +#include "gtest/gtest.h" //#include "osl_Socket_Const.h" #include "sockethelper.hxx" @@ -91,7 +91,7 @@ public: { if ( isRunning( ) ) { - t_print("# error: CloseSocketThread not terminated.\n" ); + printf("# error: CloseSocketThread not terminated.\n" ); } } }; @@ -109,25 +109,19 @@ namespace osl_DatagramSocket oslSocketType Type= osl_Socket_TypeDgram); */ - class ctors : public CppUnit::TestFixture + class ctors : public ::testing::Test { public: + }; // class ctors - void ctors_001() - { - /// Socket constructor. - ::osl::DatagramSocket dsSocket; - - CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the datagram socket was created successfully.", - osl_Socket_TypeDgram == dsSocket.getType( ) ); - } - - - CPPUNIT_TEST_SUITE( ctors ); - CPPUNIT_TEST( ctors_001 ); - CPPUNIT_TEST_SUITE_END(); + TEST_F(ctors, ctors_001) + { + /// Socket constructor. + ::osl::DatagramSocket dsSocket; - }; // class ctors + ASSERT_TRUE(osl_Socket_TypeDgram == dsSocket.getType( )) + << "test for ctors_001 constructor function: check if the datagram socket was created successfully."; + } /**thread do sendTo, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml */ @@ -156,7 +150,7 @@ public: ~TalkerThread( ) { if ( isRunning( ) ) - t_print("# error: TalkerThread not terminated normally.\n" ); + printf("# error: TalkerThread not terminated normally.\n" ); } }; @@ -174,12 +168,12 @@ protected: dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); if ( dsSocket.bind( saLocalSocketAddr ) == sal_False ) { - t_print("DatagramSocket bind failed \n"); + printf("DatagramSocket bind failed \n"); return; } //blocking mode: default sal_Int32 nRecv = dsSocket.recvFrom( pRecvBuffer, 30, &saTargetSocketAddr); //strlen( pTestString2 ) + 1 - t_print("After recvFrom, nRecv is %d\n", nRecv); + printf("After recvFrom, nRecv is %d\n", nRecv); } void SAL_CALL onTerminated( ) @@ -197,7 +191,7 @@ public: ~ListenerThread( ) { if ( isRunning( ) ) - t_print("# error: ListenerThread not terminated normally.\n" ); + printf("# error: ListenerThread not terminated normally.\n" ); } }; @@ -209,104 +203,89 @@ public: const void* pBuffer, sal_uInt32 BufferSize, oslSocketMsgFlag Flag ) */ - class sendTo_recvFrom : public CppUnit::TestFixture + class sendTo_recvFrom : public ::testing::Test { public: + }; // class sendTo_recvFrom - void sr_001() - { - ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT9 ); - ::osl::DatagramSocket dsSocket; - dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); - dsSocket.bind( saLocalSocketAddr ); - - sal_Char pReadBuffer[30]; - TalkerThread myTalkThread; - myTalkThread.create(); - sal_Int32 nRecv = dsSocket.recvFrom( pReadBuffer, 30, &saLocalSocketAddr); - myTalkThread.join(); - //t_print("#received buffer is %s# \n", pReadBuffer); - - sal_Bool bOk = ( strcmp(pReadBuffer, pTestString1) == 0 ); - - CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a talker thread and recvFrom in the main thread, check if the datagram socket can communicate successfully.", - nRecv > 0 && bOk == sal_True ); - } - - void sr_002() - { - ::osl::SocketAddr saListenSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT10 ); - ::osl::DatagramSocket dsSocket; + TEST_F(sendTo_recvFrom, sr_001) + { + ::osl::SocketAddr saLocalSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT9 ); + ::osl::DatagramSocket dsSocket; + dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); + dsSocket.bind( saLocalSocketAddr ); - //listener thread construct a DatagramSocket, recvFrom waiting for data, then main thread sendto data - ListenerThread myListenThread; - myListenThread.create(); - //to grantee the recvFrom is before sendTo - thread_sleep( 1 ); + sal_Char pReadBuffer[30]; + TalkerThread myTalkThread; + myTalkThread.create(); + sal_Int32 nRecv = dsSocket.recvFrom( pReadBuffer, 30, &saLocalSocketAddr); + myTalkThread.join(); + //printf("#received buffer is %s# \n", pReadBuffer); - sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 ); + sal_Bool bOk = ( strcmp(pReadBuffer, pTestString1) == 0 ); - CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo failed: nSend <= 0.", nSend > 0); + ASSERT_TRUE(nRecv > 0 && bOk == sal_True ) + << "test for sendTo/recvFrom function: create a talker thread and recvFrom in the main thread, check if the datagram socket can communicate successfully."; + } - myListenThread.join(); - //t_print("#received buffer is %s# \n", myListenThread.pRecvBuffer); + TEST_F(sendTo_recvFrom, sr_002) + { + ::osl::SocketAddr saListenSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT10 ); + ::osl::DatagramSocket dsSocket; - sal_Bool bOk = ( strcmp( myListenThread.pRecvBuffer, pTestString2) == 0 ); + //listener thread construct a DatagramSocket, recvFrom waiting for data, then main thread sendto data + ListenerThread myListenThread; + myListenThread.create(); + //to grantee the recvFrom is before sendTo + thread_sleep( 1 ); - CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a listener thread and sendTo in the main thread, check if the datagram socket can communicate successfully.", - bOk == sal_True ); - } + sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 ); - //sendTo error, return -1; recvFrom error, return -1 - void sr_003() - { - ::osl::SocketAddr saListenSocketAddr( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT10 ); - ::osl::DatagramSocket dsSocket; - // Transport endpoint is not connected - sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 ); - CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.", - nSend == -1 ); - } + ASSERT_TRUE(nSend > 0) << "DatagramSocket sendTo failed: nSend <= 0."; - void sr_004() - { - ::osl::SocketAddr saListenSocketAddr1( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT10 ); - ::osl::SocketAddr saListenSocketAddr2( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_MYPORT10 ); - ::osl::DatagramSocket dsSocket; - - dsSocket.enableNonBlockingMode( sal_True ); - - sal_Char pReadBuffer[30]; - //sal_Int32 nRecv1 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 ); - - // will block ? - CloseSocketThread myThread( dsSocket ); - myThread.create(); - sal_Int32 nRecv2 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 ); - myThread.join(); - //t_print("#nRecv1 is %d nRecv2 is %d\n", nRecv1, nRecv2 ); - CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.", - nRecv2 == -1 ); - } + myListenThread.join(); + //printf("#received buffer is %s# \n", myListenThread.pRecvBuffer); - CPPUNIT_TEST_SUITE( sendTo_recvFrom ); - CPPUNIT_TEST( sr_001 ); - CPPUNIT_TEST( sr_002 ); - CPPUNIT_TEST( sr_003 ); - CPPUNIT_TEST( sr_004 ); - CPPUNIT_TEST_SUITE_END(); + sal_Bool bOk = ( strcmp( myListenThread.pRecvBuffer, pTestString2) == 0 ); - }; // class sendTo_recvFrom + ASSERT_TRUE( bOk == sal_True ) + << "test for sendTo/recvFrom function: create a listener thread and sendTo in the main thread, check if the datagram socket can communicate successfully."; + } -// ----------------------------------------------------------------------------- + //sendTo error, return -1; recvFrom error, return -1 + TEST_F(sendTo_recvFrom, sr_003) + { + ::osl::SocketAddr saListenSocketAddr( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT10 ); + ::osl::DatagramSocket dsSocket; + // Transport endpoint is not connected + sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 ); + ASSERT_TRUE(nSend == -1) << "DatagramSocket sendTo should fail: nSend <= 0."; + } -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_DatagramSocket::ctors, "osl_DatagramSocket"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_DatagramSocket::sendTo_recvFrom, "osl_DatagramSocket"); + TEST_F(sendTo_recvFrom, sr_004) + { + ::osl::SocketAddr saListenSocketAddr1( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT10 ); + ::osl::SocketAddr saListenSocketAddr2( rtl::OUString::createFromAscii("129.158.217.202"), IP_PORT_MYPORT10 ); + ::osl::DatagramSocket dsSocket; + + dsSocket.enableNonBlockingMode( sal_True ); + + sal_Char pReadBuffer[30]; + //sal_Int32 nRecv1 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 ); + + // will block ? + CloseSocketThread myThread( dsSocket ); + myThread.create(); + sal_Int32 nRecv2 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 ); + myThread.join(); + //printf("#nRecv1 is %d nRecv2 is %d\n", nRecv1, nRecv2 ); + ASSERT_TRUE(nRecv2 == -1) << "DatagramSocket sendTo should fail: nSend <= 0."; + } } // namespace osl_DatagramSocket -// ----------------------------------------------------------------------------- - -// this macro creates an empty function, which will called by the RegisterAllFunctions() -// to let the user the possibility to also register some functions by hand. -NOADDITIONAL; +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/sal/qa/osl/socket/osl_Socket.cxx b/sal/qa/osl/socket/osl_Socket.cxx index 825d3ab..d4de94e 100644 --- a/sal/qa/osl/socket/osl_Socket.cxx +++ b/sal/qa/osl/socket/osl_Socket.cxx @@ -59,7 +59,8 @@ #include <osl_Socket_Const_orig.h> #endif -#include <testshl/simpleheader.hxx> +#include <osl/signal.h> +#include "gtest/gtest.h" using namespace osl; using namespace rtl; @@ -105,8 +106,8 @@ inline char * oustring2char( const ::rtl::OUString & str ) */ inline void printUString( const ::rtl::OUString & str, const sal_Char * msg = "" ) { - t_print("#%s #printUString_u# ", msg ); - t_print("%s\n", oustring2char( str ) ); + printf("#%s #printUString_u# ", msg ); + printf("%s\n", oustring2char( str ) ); } /** get the local host name. @@ -118,7 +119,7 @@ inline ::rtl::OUString getHost( void ) struct hostent *hptr; hptr = gethostbyname( "localhost" ); - CPPUNIT_ASSERT_MESSAGE( "#In getHostname function, error on gethostbyname()", hptr != NULL ); + EXPECT_TRUE(hptr != NULL) << "#In getHostname function, error on gethostbyname()"; ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hptr->h_name ); return aUString; @@ -132,11 +133,11 @@ inline ::rtl::OUString getThisHostname( void ) #ifdef WNT struct hostent *hptr; hptr = gethostbyname( "localhost" ); - CPPUNIT_ASSERT_MESSAGE( "#In getHostname function, error on gethostbyname()", hptr != NULL ); + EXPECT_TRUE(hptr != NULL) << "#In getHostname function, error on gethostbyname()"; aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hptr->h_name ); #else char hostname[255]; - CPPUNIT_ASSERT_MESSAGE( "#Error: gethostname failed.", gethostname(hostname, 255) == 0 ); + EXPECT_TRUE(gethostname(hostname, 255) == 0) << "#Error: gethostname failed."; struct hostent *hptr; //first search /ets/hosts, then search from dns @@ -146,7 +147,7 @@ inline ::rtl::OUString getThisHostname( void ) strcpy( hostname, hptr->h_name ); } - t_print("hostname is %s \n", hostname ); + printf("hostname is %s \n", hostname ); aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hostname ); #endif return aUString; @@ -167,7 +168,7 @@ inline ::rtl::OUString getIPbyName( rtl::OString const& str_name ) //if there are more than one IPs on the same machine, we select one for (; *addrptr; addrptr++) { - t_print("#Local IP Address: %s\n", inet_ntoa(**addrptr)); + printf("#Local IP Address: %s\n", inet_ntoa(**addrptr)); aUString = ::rtl::OUString::createFromAscii( (sal_Char *) (inet_ntoa(**addrptr)) ); } } @@ -205,7 +206,7 @@ inline ::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::r void thread_sleep( sal_Int32 _nSec ) { /// print statement in thread process must use fflush() to force display. - t_print("# wait %d seconds. ", _nSec ); + printf("# wait %d seconds. ", _nSec ); fflush(stdout); #ifdef WNT //Windows @@ -214,29 +215,29 @@ void thread_sleep( sal_Int32 _nSec ) #if ( defined UNX ) || ( defined OS2 ) //Unix usleep(_nSec * 100000); #endif - t_print("# done\n" ); + printf("# done\n" ); } /** print Boolean value. */ inline void printBool( sal_Bool bOk ) { - t_print("#printBool# " ); - ( sal_True == bOk ) ? t_print("YES!\n" ): t_print("NO!\n" ); + printf("#printBool# " ); + ( sal_True == bOk ) ? printf("YES!\n" ): printf("NO!\n" ); } /** print content of a ByteSequence. */ inline void printByteSequence_IP( const ::rtl::ByteSequence & bsByteSeq, sal_Int32 nLen ) { - t_print("#ByteSequence is: " ); + printf("#ByteSequence is: " ); for ( int i = 0; i < nLen; i++ ){ if ( bsByteSeq[i] < 0 ) - t_print("%d ", 256 + bsByteSeq[i] ); + printf("%d ", 256 + bsByteSeq[i] ); else - t_print("%d ", bsByteSeq[i] ); + printf("%d ", bsByteSeq[i] ); } - t_print(" .\n" ); + printf(" .\n" ); } /** convert an IP which is stored as a UString format to a ByteSequence array for later use. @@ -270,28 +271,28 @@ inline ::rtl::ByteSequence UStringIPToByteSequence( ::rtl::OUString aUStr ) */ inline void printSocketResult( oslSocketResult eResult ) { - t_print("#printSocketResult# " ); + printf("#printSocketResult# " ); if (!eResult) switch (eResult) { case osl_Socket_Ok: - t_print("client connected\n"); + printf("client connected\n"); break; case osl_Socket_Error: - t_print("got an error ... exiting\r\n\r\n" ); + printf("got an error ... exiting\r\n\r\n" ); break; case osl_Socket_TimedOut: - t_print("timeout\n"); + printf("timeout\n"); break; case osl_Socket_FORCE_EQUAL_SIZE: - t_print("FORCE EQUAL SIZE\n"); + printf("FORCE EQUAL SIZE\n"); break; case osl_Socket_InProgress: - t_print("In Progress\n"); + printf("In Progress\n"); break; case osl_Socket_Interrupted: - t_print("Interrupted\n"); + printf("Interrupted\n"); break; } } @@ -321,7 +322,7 @@ protected: csConnectorSocket.send( pTestString2, 10); } else - t_print("# ClientSocketThread: connect failed! \n"); + printf("# ClientSocketThread: connect failed! \n"); // terminate(); //} csConnectorSocket.close(); @@ -330,7 +331,7 @@ protected: void SAL_CALL onTerminated( ) { - //t_print("# normally terminate this thread %d!\n", m_id ); + //printf("# normally terminate this thread %d!\n", m_id ); } public: @@ -339,13 +340,13 @@ public: csConnectorSocket( ) { m_id = getIdentifier( ); - //t_print("# successfully creat this client thread %d!\n", m_id ); + //printf("# successfully creat this client thread %d!\n", m_id ); } ~ClientSocketThread( ) { if ( isRunning( ) ) - t_print("# error: client thread not terminated.\n" ); + printf("# error: client thread not terminated.\n" ); } }; @@ -371,13 +372,13 @@ protected: sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); if ( sal_True != bOK1 ) { - t_print("# ServerSocketThread: AcceptorSocket bind address failed.\n" ) ; + printf("# ServerSocketThread: AcceptorSocket bind address failed.\n" ) ; break; } sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); if ( sal_True != bOK2 ) { - t_print("# ServerSocketThread: AcceptorSocket listen address failed.\n" ) ; + printf("# ServerSocketThread: AcceptorSocket listen address failed.\n" ) ; break; } @@ -386,13 +387,13 @@ protected: oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection ); if (eResult != osl_Socket_Ok ) { - t_print("ServerSocketThread: acceptConnection failed! \n"); + printf("ServerSocketThread: acceptConnection failed! \n"); break; } sal_Int32 nReadNumber1 = ssStreamConnection.recv( pReadBuffer, 11 ); sal_Int32 nReadNumber2 = ssStreamConnection.recv( pReadBuffer + nReadNumber1, 11 ); pReadBuffer[nReadNumber1 + nReadNumber2] = '\0'; - //t_print("# read buffer content: %s\n", pReadBuffer ); + //printf("# read buffer content: %s\n", pReadBuffer ); break; } ssStreamConnection.close(); @@ -402,7 +403,7 @@ protected: void SAL_CALL onTerminated( ) { - //t_print("# normally terminate this server thread %d!\n", m_id ); + //printf("# normally terminate this server thread %d!\n", m_id ); } public: @@ -411,13 +412,13 @@ public: ServerSocketThread( ) { m_id = getIdentifier( ); - //t_print("# successfully creat this server thread %d!\n", m_id ); + //printf("# successfully creat this server thread %d!\n", m_id ); } ~ServerSocketThread( ) { if ( isRunning( ) ) - t_print("# error: server thread not terminated.\n" ); + printf("# error: server thread not terminated.\n" ); } }; @@ -506,7 +507,7 @@ protected: } else { - t_print("# ReadSocketThread: connect failed! \n"); + printf("# ReadSocketThread: connect failed! \n"); } // terminate(); //} @@ -517,7 +518,7 @@ protected: void SAL_CALL onTerminated( ) { - //t_print("# normally terminate this thread %d!\n", m_id ); + //printf("# normally terminate this thread %d!\n", m_id ); } public: @@ -531,14 +532,14 @@ public: csConnectorSocket( ) { m_id = getIdentifier( ); - //t_print("# successfully creat this client thread %d!\n", m_id ); + //printf("# successfully creat this client thread %d!\n", m_id ); m_aValues.createBuffer(_nBufferSize, 0); } ~ReadSocketThread( ) { if ( isRunning( ) ) - t_print("# error: client thread not terminated.\n" ); + printf("# error: client thread not terminated.\n" ); m_aValues.freeBuffer(); } @@ -568,13 +569,13 @@ protected: sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); if ( sal_True != bOK1 ) { - t_print("# WriteSocketThread: AcceptorSocket bind address failed. \n" ) ; + printf("# WriteSocketThread: AcceptorSocket bind address failed. \n" ) ; break; } sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); if ( sal_True != bOK2 ) { - t_print("# WriteSocketThread: AcceptorSocket listen address failed. \n" ) ; + printf("# WriteSocketThread: AcceptorSocket listen address failed. \n" ) ; break; } // blocking mode, if read/recv failed, block until success @@ -583,7 +584,7 @@ protected: oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection ); if (eResult != osl_Socket_Ok ) { - t_print("WriteSocketThread: acceptConnection failed! \n"); + printf("WriteSocketThread: acceptConnection failed! \n"); break; } @@ -596,7 +597,7 @@ protected: void SAL_CALL onTerminated( ) { - //t_print("# normally terminate this server thread %d!\n", m_id ); + //printf("# normally terminate this server thread %d!\n", m_id ); } public: @@ -604,7 +605,7 @@ public: WriteSocketThread(sal_Int32 _nBufferSize, int _nValue ) { m_id = getIdentifier( ); - //t_print("# successfully creat this server thread %d!\n", m_id ); + //printf("# successfully creat this server thread %d!\n", m_id ); m_aValues.createBuffer(_nBufferSize, _nValue); } @@ -612,7 +613,7 @@ public: ~WriteSocketThread( ) { if ( isRunning( ) ) - t_print("# error: server thread not terminated.\n" ); + printf("# error: server thread not terminated.\n" ); m_aValues.freeBuffer(); } @@ -635,13 +636,13 @@ protected: sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr ); if ( sal_True != bOK1 ) { - t_print("# AcceptorSocket bind address failed.\n" ) ; + printf("# AcceptorSocket bind address failed.\n" ) ; return; } sal_Bool bOK2 = asAcceptorSocket.listen( 1 ); if ( sal_True != bOK2 ) { - t_print("# AcceptorSocket listen address failed.\n" ) ; + printf("# AcceptorSocket listen address failed.\n" ) ; return; } @@ -651,7 +652,7 @@ protected: if (eResult != osl_Socket_Ok ) { bOK = sal_True; - t_print("AcceptorThread: acceptConnection failed! \n"); + printf("AcceptorThread: acceptConnection failed! \n"); } } public: @@ -668,7 +669,7 @@ public: if ( isRunning( ) ) { asAcceptorSocket.shutdown(); - t_print("# error: Acceptor thread not terminated.\n" ); + printf("# error: Acceptor thread not terminated.\n" ); } } }; @@ -692,7 +693,7 @@ public: { if ( isRunning( ) ) { - t_print("# error: CloseSocketThread not terminated.\n" ); + printf("# error: CloseSocketThread not terminated.\n" ); } } }; @@ -712,311 +713,262 @@ namespace osl_SocketAddr inline SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort ); */ - class ctors : public CppUnit::TestFixture + class SocketAddrCtors : public ::testing::Test { public: + }; // class ctors - void ctors_none() - { - /// SocketAddr constructor. - ::osl::SocketAddr saSocketAddr; + TEST_F(SocketAddrCtors, ctors_none) + { + /// SocketAddr constructor. + ::osl::SocketAddr saSocketAddr; - // oslSocketResult aResult; - // rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult); + // oslSocketResult aResult; + // rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult); - // rtl::OUString suHost2 = getThisHostname(); + // rtl::OUString suHost2 = getThisHostname(); - CPPUNIT_ASSERT_MESSAGE("test for none parameter constructor function: check if the socket address was created successfully", - sal_True == saSocketAddr.is( ) ); - } + ASSERT_TRUE(sal_True == saSocketAddr.is( )) << "test for none parameter constructor function: check if the socket address was created successfully"; + } - void ctors_none_000() - { - /// SocketAddr constructor. - ::osl::SocketAddr saSocketAddr; + TEST_F(SocketAddrCtors, ctors_none_000) + { + /// SocketAddr constructor. + ::osl::SocketAddr saSocketAddr; - oslSocketResult aResult; - rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult); - rtl::OUString suHost2 = getThisHostname(); + oslSocketResult aResult; + rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult); + rtl::OUString suHost2 = getThisHostname(); - sal_Bool bOk = compareUString(suHost, suHost2); + sal_Bool bOk = compareUString(suHost, suHost2); - rtl::OUString suError = rtl::OUString::createFromAscii("Host names should be the same. From SocketAddr.getLocalHostname() it is'"); - suError += suHost; - suError += rtl::OUString::createFromAscii("', from getThisHostname() it is '"); - suError += suHost2; - suError += rtl::OUString::createFromAscii("'."); + rtl::OUString suError = rtl::OUString::createFromAscii("Host names should be the same. From SocketAddr.getLocalHostname() it is'"); + suError += suHost; + suError += rtl::OUString::createFromAscii("', from getThisHostname() it is '"); + suError += suHost2; + suError += rtl::OUString::createFromAscii("'."); - CPPUNIT_ASSERT_MESSAGE(suError, sal_True == bOk); - } + ASSERT_TRUE(sal_True == bOk) << suError.pData; + } - void ctors_copy() - { - /// SocketAddr copy constructor. - ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 ); - ::osl::SocketAddr saCopySocketAddr( saSocketAddr ); + TEST_F(SocketAddrCtors, ctors_copy) + { + /// SocketAddr copy constructor. + ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 ); + ::osl::SocketAddr saCopySocketAddr( saSocketAddr ); - sal_Int32 nPort = saCopySocketAddr.getPort( ); + sal_Int32 nPort = saCopySocketAddr.getPort( ); - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy constructor function: copy constructor, do an action of copy construction then check the port with original set.", - ( sal_True == saCopySocketAddr.is( ) ) && ( nPort == IP_PORT_HTTP1 ) ); - } + ASSERT_TRUE(( sal_True == saCopySocketAddr.is( ) ) && ( nPort == IP_PORT_HTTP1 )) << "test for SocketAddr copy constructor function: copy constructor, do an action of copy construction then check the port with original set."; + } - void ctors_copy_no_001() - { + TEST_F(SocketAddrCtors, ctors_copy_no_001) + { #if 0 - ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 ); - oslSocketAddr psaOSLSocketAddr = saSocketAddr.getHandle( ); + ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 ); + oslSocketAddr psaOSLSocketAddr = saSocketAddr.getHandle( ); - ::osl::SocketAddr saSocketAddrCopy( psaOSLSocketAddr, SAL_NO_COPY ); - saSocketAddrCopy.setPort( IP_PORT_HTTP2 ); + ::osl::SocketAddr saSocketAddrCopy( psaOSLSocketAddr, SAL_NO_COPY ); + saSocketAddrCopy.setPort( IP_PORT_HTTP2 ); - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.", - saSocketAddr.getPort( ) == IP_PORT_HTTP2 ); + ASSERT_TRUE(saSocketAddr.getPort( ) == IP_PORT_HTTP2) << "test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one."; #endif - ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostName1, IP_PORT_HTTP1 ); - CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL); + ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostName1, IP_PORT_HTTP1 ); + ASSERT_TRUE(pSocketAddr != NULL) << "check for new SocketAddr"; - oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( ); - - ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY ); + oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( ); - pSocketAddrCopy->setPort( IP_PORT_HTTP2 ); - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.", - pSocketAddr->getPort( ) == IP_PORT_HTTP2 ); + ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY ); - delete pSocketAddrCopy; - // LLA: don't do this also: delete pSocketAddr; - } + pSocketAddrCopy->setPort( IP_PORT_HTTP2 ); + ASSERT_TRUE(pSocketAddr->getPort( ) == IP_PORT_HTTP2) << "test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one."; - void ctors_copy_no_002() - { - ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostName1, IP_PORT_HTTP1 ); - CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL); - oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( ); - ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY ); - - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.", - pSocketAddr->getHandle( ) == pSocketAddrCopy->getHandle( ) ); + delete pSocketAddrCopy; + // LLA: don't do this also: delete pSocketAddr; + } - delete pSocketAddrCopy; - } + TEST_F(SocketAddrCtors, ctors_copy_no_002) + { + ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostName1, IP_PORT_HTTP1 ); + ASSERT_TRUE(pSocketAddr != NULL) << "check for new SocketAddr"; + oslSocketAddr psaOSLSocketAddr = pSocketAddr->getHandle( ); + ::osl::SocketAddr* pSocketAddrCopy = new ::osl::SocketAddr( psaOSLSocketAddr, SAL_NO_COPY ); - void ctors_copy_handle_001() - { - ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 ); - ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) ); + ASSERT_TRUE(pSocketAddr->getHandle( ) == pSocketAddrCopy->getHandle( )) << "test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one."; - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy handle constructor function: copy another Socket's handle, get its port to check copy effect.", - saSocketAddrCopy.getPort( ) == IP_PORT_HTTP1 ); - } + delete pSocketAddrCopy; + } - void ctors_copy_handle_002() - { - ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 ); - ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) ); - saSocketAddrCopy.setPort( IP_PORT_HTTP2 ); + TEST_F(SocketAddrCtors, ctors_copy_handle_001) + { + ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 ); + ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) ); - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr copy handle constructor function: copy another Socket's handle, the original one should not be changed.", - saSocketAddr.getPort( ) != IP_PORT_HTTP2 ); - } + ASSERT_TRUE(saSocketAddrCopy.getPort( ) == IP_PORT_HTTP1) << "test for SocketAddr copy handle constructor function: copy another Socket's handle, get its port to check copy effect."; + } - void ctors_hostname_port_001() - { - /// tcpip-specif constructor. - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); - printUString(saSocketAddr.getHostname( ), "ctors_hostname_port_001:getHostname"); + TEST_F(SocketAddrCtors, ctors_copy_handle_002) + { + ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 ); + ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) ); + saSocketAddrCopy.setPort( IP_PORT_HTTP2 ); - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specif constructor function: do a constructor using tcpip spec, check the result.", - saSocketAddr.is( ) == sal_True && - ( saSocketAddr.getPort( ) == IP_PORT_FTP )/*&& - ( sal_True == compareUString( saSocketAddr.getHostname( ), aHostName1 ) ) */); - } + ASSERT_TRUE(saSocketAddr.getPort( ) != IP_PORT_HTTP2) << "test for SocketAddr copy handle constructor function: copy another Socket's handle, the original one should not be changed."; + } - //same as is_002 - void ctors_hostname_port_002() - { - /// tcpip-specif constructor. - ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT2 ); + TEST_F(SocketAddrCtors, ctors_hostname_port_001) + { + /// tcpip-specif constructor. + ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); + printUString(saSocketAddr.getHostname( ), "ctors_hostname_port_001:getHostname"); - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specif constructor function: using an invalid IP address, the socketaddr ctors should fail", sal_False == saSocketAddr.is( )); - } - CPPUNIT_TEST_SUITE( ctors ); - CPPUNIT_TEST( ctors_none ); - CPPUNIT_TEST( ctors_none_000 ); - CPPUNIT_TEST( ctors_copy ); - CPPUNIT_TEST( ctors_copy_no_001 ); - CPPUNIT_TEST( ctors_copy_no_002 ); - CPPUNIT_TEST( ctors_copy_handle_001 ); - CPPUNIT_TEST( ctors_copy_handle_002 ); - CPPUNIT_TEST( ctors_hostname_port_001 ); - CPPUNIT_TEST( ctors_hostname_port_002 ); - CPPUNIT_TEST_SUITE_END(); + ASSERT_TRUE(saSocketAddr.is( ) == sal_True && + ( saSocketAddr.getPort( ) == IP_PORT_FTP )/*&& + ( sal_True == compareUString( saSocketAddr.getHostname( ), aHostName1 ) ) */) << "test for SocketAddr tcpip specif constructor function: do a constructor using tcpip spec, check the result."; + } - }; // class ctors + //same as is_002 + TEST_F(SocketAddrCtors, ctors_hostname_port_002) + { + /// tcpip-specif constructor. + ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT2 ); + ASSERT_TRUE(sal_False == saSocketAddr.is( )) << "test for SocketAddr tcpip specif constructor function: using an invalid IP address, the socketaddr ctors should fail"; + } /** testing the method: inline sal_Bool is() const; */ - class is : public CppUnit::TestFixture + class is : public ::testing::Test { public: - void is_001() - { - ::osl::SocketAddr saSocketAddr; - - CPPUNIT_ASSERT_MESSAGE("test for is() function: create an unknown type socket, it should be True when call is.", - sal_True == saSocketAddr.is( ) ); - } - // refer to setPort_003() - void is_002() - { - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_INVAL ); - - CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid port number", - sal_True == saSocketAddr.is( ) ); - } + }; // class is - void is_003() - { - ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT ); + TEST_F(is, is_001) + { + ::osl::SocketAddr saSocketAddr; - CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid Ip number", - sal_True != saSocketAddr.is( ) ); - } + ASSERT_TRUE(sal_True == saSocketAddr.is( )) << "test for is() function: create an unknown type socket, it should be True when call is."; + } + // refer to setPort_003() + TEST_F(is, is_002) + { + ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_INVAL ); - CPPUNIT_TEST_SUITE( is ); - CPPUNIT_TEST( is_001 ); - CPPUNIT_TEST( is_002 ); - CPPUNIT_TEST( is_003 ); - CPPUNIT_TEST_SUITE_END(); + ASSERT_TRUE(sal_True == saSocketAddr.is( )) << "test for is() function: create a tcp-ip socket using invalid port number"; + } - }; // class is + TEST_F(is, is_003) + { + ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT ); + ASSERT_TRUE(sal_True != saSocketAddr.is( )) << "test for is() function: create a tcp-ip socket using invalid Ip number"; + } /** testing the method: inline ::rtl::OUString SAL_CALL getHostname( oslSocketResult *pResult = 0 ) const; */ - class getHostname : public CppUnit::TestFixture + class getHostname : public ::testing::Test { public: - void setUp() + void SetUp() { } - void tearDown() + void TearDown() { } + }; // class getHostname - void getHostname_000() - { - ::osl::SocketAddr saSocketAddr( aHostIp4, IP_PORT_FTP ); - - } - - /** it will search the Ip in current machine's /etc/hosts at first, if find, then return the - mapped hostname, otherwise, it will search via DNS server, and often return hostname+ Domain name - like "sceri.PRC.Sun.COM" - The process is same as Socket::getLocalHost(), but getLocalHost can only return hostname of the current machine. - */ - void getHostname_001() + TEST_F(getHostname, getHostname_000) { ::osl::SocketAddr saSocketAddr( aHostIp4, IP_PORT_FTP ); - rtl::OUString suResult = saSocketAddr.getHostname( 0 ); - rtl::OUString suError = outputError(suResult, aHostName4, "test for getHostname(0)"); - sal_Bool bOK = compareUString( suResult, aHostName4 ); - // search the returned hostname in /etc/hosts, if find, and the IP in the row is same as IP - // in the Addr, it's right also. - if ( bOK == sal_False) - { - if ( compareUString( getIPbyName( oustring2char( suResult ) ), aHostIp4 ) == sal_True ) - bOK = sal_True; - } - CPPUNIT_ASSERT_MESSAGE( suError, sal_True == bOK); + } -// LLA: now we have to control, if this behaviour is right. -// LLA: this function does not work in company (Linux, Windows) but at home - void getHostname_002() + /** it will search the Ip in current machine's /etc/hosts at first, if find, then return the + mapped hostname, otherwise, it will search via DNS server, and often return hostname+ Domain name + like "sceri.PRC.Sun.COM" + The process is same as Socket::getLocalHost(), but getLocalHost can only return hostname of the current machine. + */ + TEST_F(getHostname, getHostname_001) + { + ::osl::SocketAddr saSocketAddr( aHostIp4, IP_PORT_FTP ); + rtl::OUString suResult = saSocketAddr.getHostname( 0 ); + rtl::OUString suError = outputError(suResult, aHostName4, "test for getHostname(0)"); + sal_Bool bOK = compareUString( suResult, aHostName4 ); + // search the returned hostname in /etc/hosts, if find, and the IP in the row is same as IP + // in the Addr, it's right also. + if ( bOK == sal_False) { - rtl::OUString suHostname = rtl::OUString::createFromAscii("cn-1.germany.sun.com"); - rtl::OUString aHostIP = getIPbyName( oustring2char( suHostname ) ); + if ( compareUString( getIPbyName( oustring2char( suResult ) ), aHostIp4 ) == sal_True ) + bOK = sal_True; + } + ASSERT_TRUE(sal_True == bOK) << suError.pData; + } + + // LLA: now we have to control, if this behaviour is right. + // LLA: this function does not work in company (Linux, Windows) but at home + TEST_F(getHostname, getHostname_002) + { + rtl::OUString suHostname = rtl::OUString::createFromAscii("cn-1.germany.sun.com"); + rtl::OUString aHostIP = getIPbyName( oustring2char( suHostname ) ); - ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_FTP ); - sal_Bool bOK = saSocketAddr.setHostname( suHostname ); - CPPUNIT_ASSERT_MESSAGE("#SocketAddr.setHostname failed", sal_True == bOK ); - oslSocketResult aResult; - rtl::OUString suResult = saSocketAddr.getHostname( &aResult ); - CPPUNIT_ASSERT_MESSAGE("SocketAddr.getHostname failed.", aResult == osl_Socket_Ok); + ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_FTP ); + sal_Bool bOK = saSocketAddr.setHostname( suHostname ); + ASSERT_TRUE(sal_True == bOK) << "#SocketAddr.setHostname failed"; + oslSocketResult aResult; + rtl::OUString suResult = saSocketAddr.getHostname( &aResult ); + ASSERT_TRUE(aResult == osl_Socket_Ok) << "SocketAddr.getHostname failed."; - rtl::OUString suError = outputError(suResult, suHostname, "test for getHostname(0)"); - bOK = compareUString( suResult, suHostname ); - if ( bOK == sal_False) + rtl::OUString suError = outputError(suResult, suHostname, "test for getHostname(0)"); + bOK = compareUString( suResult, suHostname ); + if ( bOK == sal_False) + { + rtl::OString aString = ::rtl::OUStringToOString( suResult, RTL_TEXTENCODING_ASCII_US ); + if ( compareUString( getIPbyName( aString) , aHostIp6 ) == sal_True ) { - rtl::OString aString = ::rtl::OUStringToOString( suResult, RTL_TEXTENCODING_ASCII_US ); - if ( compareUString( getIPbyName( aString) , aHostIp6 ) == sal_True ) - { - bOK = sal_True; - } + bOK = sal_True; } - - CPPUNIT_ASSERT_MESSAGE( suError, sal_True == bOK ); } - - CPPUNIT_TEST_SUITE( getHostname ); - CPPUNIT_TEST( getHostname_001 ); - CPPUNIT_TEST( getHostname_002 ); - CPPUNIT_TEST_SUITE_END(); - - }; // class getHostname - + ASSERT_TRUE(sal_True == bOK) << suError.pData; + } /** testing the method: inline sal_Int32 SAL_CALL getPort() const; */ - class getPort : public CppUnit::TestFixture + class getPort : public ::testing::Test { public: - void getPort_001() - { - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); - - CPPUNIT_ASSERT_MESSAGE( "test for getPort() function: get a normal port number.", - IP_PORT_FTP == saSocketAddr.getPort( ) ); - } - - void getPort_002() - { - ::osl::SocketAddr saSocketAddr( aHostIp2, IP_PORT_INVAL ); + }; // class getPort - //t_print("#getPort_002: Port number is %d \n", saSocketAddr.getPort( )); + TEST_F(getPort, getPort_001) + { + ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); - CPPUNIT_ASSERT_MESSAGE( "test for getPort( ) function: give an invalid port to a SocketAddr, get the port to see if it can detect. it did not pass in (W32).", - saSocketAddr.getPort( )>=1 && saSocketAddr.getPort( ) <= 65535 ); - } - //two cases will return OSL_INVALID_PORT: 1. not valid SocketAddr - //2. SocketAddr family is not osl_Socket_FamilyInet, but case 2 could not be constructed - void getPort_003() - { - ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT ); + ASSERT_TRUE(IP_PORT_FTP == saSocketAddr.getPort( )) << "test for getPort() function: get a normal port number."; + } - CPPUNIT_ASSERT_MESSAGE( "test for getPort( ) function: give an invalid IP to a SocketAddr, get the port to see returned value. ", - saSocketAddr.getPort( ) == OSL_INVALID_PORT ); - } + TEST_F(getPort, getPort_002) + { + ::osl::SocketAddr saSocketAddr( aHostIp2, IP_PORT_INVAL ); - CPPUNIT_TEST_SUITE( getPort ); - CPPUNIT_TEST( getPort_001 ); - CPPUNIT_TEST( getPort_002 ); - CPPUNIT_TEST( getPort_003 ); - CPPUNIT_TEST_SUITE_END( ); + //printf("#getPort_002: Port number is %d \n", saSocketAddr.getPort( )); - }; // class getPort + ASSERT_TRUE(saSocketAddr.getPort( )>=1 && saSocketAddr.getPort( ) <= 65535) << "test for getPort( ) function: give an invalid port to a SocketAddr, get the port to see if it can detect. it did not pass in (W32)."; + } + //two cases will return OSL_INVALID_PORT: 1. not valid SocketAddr + //2. SocketAddr family is not osl_Socket_FamilyInet, but case 2 could not be constructed + TEST_F(getPort, getPort_003) + { + ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT ); + ASSERT_TRUE(saSocketAddr.getPort( ) == OSL_INVALID_PORT) << "test for getPort( ) function: give an invalid IP to a SocketAddr, get the port to see returned value. "; + } /** testing the method: inline sal_Bool SAL_CALL setPort( sal_Int32 nPort ); @@ -1024,78 +976,65 @@ namespace osl_SocketAddr rfc1700.txt: 0/tcp Reserved ; 0/udp Reserved */ - class setPort : public CppUnit::TestFixture + class setPort : public ::testing::Test { public: - void setPort_001() - { - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); - sal_Bool bOK = saSocketAddr.setPort( IP_PORT_TELNET ); - - CPPUNIT_ASSERT_MESSAGE( "test for setPort() function: modify a port number setting, and check it.", - ( sal_True == bOK ) && - ( IP_PORT_TELNET == saSocketAddr.getPort( ) ) ); - } - - /** 0 to 1024 is known as the reserved port range (traditionally only root can assign programs to ports in - this range) and the ephemeral port range from 1025 to 65535. - As many of you programmers will know, when you specify the source port of 0 when you connect to a host, - the OS automatically reassigns the port number to high numbered ephemeral port. The same happens if you - try to bind a listening socket to port 0. - http://www.securiteam.com/securityreviews/5XP0Q2AAKS.html - another: http://www.muq.org/~cynbe/muq/mufref_564.html - */ - void setPort_002() - { - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); - sal_Bool bOK = saSocketAddr.setPort( IP_PORT_ZERO ); - - oslSocket sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp ); - ::osl::Socket sSocket(sHandle); - sSocket.setOption( osl_Socket_OptionReuseAddr, 1 );//sal_True); - sal_Bool bOK1 = sSocket.bind( saSocketAddr ); - CPPUNIT_ASSERT_MESSAGE( "bind SocketAddr failed", bOK1 == sal_True ); + }; // class setPort - sal_Int32 newPort = sSocket.getLocalPort(); - //t_print("#new port is %d\n", newPort ); + TEST_F(setPort, setPort_001) + { + ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); + sal_Bool bOK = saSocketAddr.setPort( IP_PORT_TELNET ); - CPPUNIT_ASSERT_MESSAGE( "test for setPort() function: port number should be in 1 ~ 65535, set port 0, it should be converted to a port number between 1024~65535.", - ( 1024 <= newPort ) && ( 65535 >= newPort ) && ( bOK == sal_True ) ); + ASSERT_TRUE(( sal_True == bOK ) && + ( IP_PORT_TELNET == saSocketAddr.getPort( ) )) << "test for setPort() function: modify a port number setting, and check it."; + } - } + /** 0 to 1024 is known as the reserved port range (traditionally only root can assign programs to ports in + this range) and the ephemeral port range from 1025 to 65535. + As many of you programmers will know, when you specify the source port of 0 when you connect to a host, + the OS automatically reassigns the port number to high numbered ephemeral port. The same happens if you + try to bind a listening socket to port 0. + http://www.securiteam.com/securityreviews/5XP0Q2AAKS.html + another: http://www.muq.org/~cynbe/muq/mufref_564.html + */ + TEST_F(setPort, setPort_002) + { + ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); + sal_Bool bOK = saSocketAddr.setPort( IP_PORT_ZERO ); - void setPort_003() - { - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP); - sal_Bool bOK = saSocketAddr.setPort( IP_PORT_INVAL ); - //on Linux, getPort return 34463 - //t_print("#Port number is %d \n", saSocketAddr.getPort( )); + oslSocket sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp ); + ::osl::Socket sSocket(sHandle); + sSocket.setOption( osl_Socket_OptionReuseAddr, 1 );//sal_True); + sal_Bool bOK1 = sSocket.bind( saSocketAddr ); + ASSERT_TRUE(bOK1 == sal_True) << "bind SocketAddr failed"; - CPPUNIT_ASSERT_MESSAGE( "test for setPort( ) function: set an address with invalid port. it should return error or convert it to a valid port.", - ( ( 1 <= saSocketAddr.getPort( ) ) && ( 65535 >= saSocketAddr.getPort( ) ) &&( bOK == sal_True ) ) || - bOK == sal_False); - } + sal_Int32 newPort = sSocket.getLocalPort(); + //printf("#new port is %d\n", newPort ); - /* this is not a inet-addr => can't set port */ - void setPort_004() - { - ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_FTP); - sal_Bool bOK = saSocketAddr.setPort( IP_PORT_MYPORT ); + ASSERT_TRUE(( 1024 <= newPort ) && ( 65535 >= newPort ) && ( bOK == sal_True )) << "test for setPort() function: port number should be in 1 ~ 65535, set port 0, it should be converted to a port number between 1024~65535."; - CPPUNIT_ASSERT_MESSAGE( "test for setPort( ) function: set an invalid address with valid port. it should return error.", - bOK == sal_False); - } + } + TEST_F(setPort, setPort_003) + { + ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP); + sal_Bool bOK = saSocketAddr.setPort( IP_PORT_INVAL ); + //on Linux, getPort return 34463 + //printf("#Port number is %d \n", saSocketAddr.getPort( )); - CPPUNIT_TEST_SUITE( setPort ); - CPPUNIT_TEST( setPort_001 ); - CPPUNIT_TEST( setPort_002 ); - CPPUNIT_TEST( setPort_003 ); - CPPUNIT_TEST( setPort_004 ); - CPPUNIT_TEST_SUITE_END( ); + ASSERT_TRUE(( ( 1 <= saSocketAddr.getPort( ) ) && ( 65535 >= saSocketAddr.getPort( ) ) &&( bOK == sal_True ) ) || + bOK == sal_False) << "test for setPort( ) function: set an address with invalid port. it should return error or convert it to a valid port."; + } - }; // class setPort + /* this is not a inet-addr => can't set port */ + TEST_F(setPort, setPort_004) + { + ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_FTP); + sal_Bool bOK = saSocketAddr.setPort( IP_PORT_MYPORT ); + ASSERT_TRUE(bOK == sal_False) << "test for setPort( ) function: set an invalid address with valid port. it should return error."; + } /** tester comment: @@ -1111,59 +1050,46 @@ namespace osl_SocketAddr inline sal_Bool SAL_CALL setAddr( const ::rtl::ByteSequence & address ); */ - class setAddr : public CppUnit::TestFixture + class setAddr : public ::testing::Test { public: - void setAddr_001() - { - ::osl::SocketAddr saSocketAddr( aHostIp2, IP_PORT_FTP ); - saSocketAddr.setAddr( UStringIPToByteSequence( aHostIp1 ) ); - ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( 0 ); - sal_Bool bOK = sal_False; - - if ( ( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) && ( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) ) - bOK = sal_True; - - CPPUNIT_ASSERT_MESSAGE( "test for setAddr() function: construct Addr with \"129.158.217.202\", set it to \"127.0.0.1\", and check the correctness ", - sal_True == bOK ); - } - + }; // class setAddr - CPPUNIT_TEST_SUITE( setAddr ); - CPPUNIT_TEST( setAddr_001 ); - CPPUNIT_TEST_SUITE_END( ); + TEST_F(setAddr, setAddr_001) + { + ::osl::SocketAddr saSocketAddr( aHostIp2, IP_PORT_FTP ); + saSocketAddr.setAddr( UStringIPToByteSequence( aHostIp1 ) ); + ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( 0 ); + sal_Bool bOK = sal_False; - }; // class setAddr + if ( ( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) && ( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) ) + bOK = sal_True; + ASSERT_TRUE(sal_True == bOK) << "test for setAddr() function: construct Addr with \"129.158.217.202\", set it to \"127.0.0.1\", and check the correctness "; + } /** testing the method: inline ::rtl::ByteSequence SAL_CALL getAddr( oslSocketResult *pResult = 0 ) const; */ - class getAddr : public CppUnit::TestFixture + class getAddr : public ::testing::Test { public: - void getAddr_001() - { - oslSocketResult SocketResult; - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); - ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( &SocketResult ); - - sal_Bool bOK = sal_False; - - if ( ( osl_Socket_Ok == SocketResult ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) ) - bOK = sal_True; + }; // class getAddr - CPPUNIT_ASSERT_MESSAGE( "test for getAddr() function: construct a socketaddr with IP assigned, get the address to check correctness.Caught unknown exception on (Win32)", - sal_True == bOK && SocketResult == osl_Socket_Ok); - } + TEST_F(getAddr, getAddr_001) + { + oslSocketResult SocketResult; + ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP ); + ::rtl::ByteSequence bsSocketAddr = saSocketAddr.getAddr( &SocketResult ); - CPPUNIT_TEST_SUITE( getAddr ); - CPPUNIT_TEST( getAddr_001 ); - CPPUNIT_TEST_SUITE_END( ); + sal_Bool bOK = sal_False; - }; // class getAddr + if ( ( osl_Socket_Ok == SocketResult ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) ) + bOK = sal_True; + ASSERT_TRUE(sal_True == bOK && SocketResult == osl_Socket_Ok) << "test for getAddr() function: construct a socketaddr with IP assigned, get the address to check correctness.Caught unknown exception on (Win32)"; + } /** testing the methods: inline SocketAddr & SAL_CALL operator= (oslSocketAddr Addr); @@ -1173,237 +1099,197 @@ namespace osl_SocketAddr inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const; /// not implemented. */ - class operator_equal : public CppUnit::TestFixture + class operator_equal : public ::testing::Test { public: - void operator_equal_001() - { - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET); - ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP ); - - saSocketAddrEqual = saSocketAddr; - sal_Bool bOK = sal_False; - ::rtl::ByteSequence bsSocketAddr = saSocketAddrEqual.getAddr( 0 ); - - if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) ) - bOK = sal_True; + }; // class operator_equal - CPPUNIT_ASSERT_MESSAGE( "test for operator_equal() function: use operator= to assign Ip1 to Ip2, check its modification.", - sal_True == bOK ); - } + TEST_F(operator_equal, operator_equal_001) + { + ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET); + ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP ); + saSocketAddrEqual = saSocketAddr; + sal_Bool bOK = sal_False; + ::rtl::ByteSequence bsSocketAddr = saSocketAddrEqual.getAddr( 0 ); - void operator_equal_002() - { - ::osl::SocketAddr saSocketAddr( aHostIp3, IP_PORT_TELNET); - ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP ); + if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) ) + bOK = sal_True; - saSocketAddrEqual = saSocketAddr; - CPPUNIT_ASSERT_MESSAGE( "after assign, the assigned SocketAddr is not same as the original Addr", - IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ); - saSocketAddrEqual.setPort( IP_PORT_MYPORT3 ); - saSocketAddr.setPort( IP_PORT_HTTP2 ); + ASSERT_TRUE(sal_True == bOK) << "test for operator_equal() function: use operator= to assign Ip1 to Ip2, check its modification."; + } - CPPUNIT_ASSERT_MESSAGE( "test for operator_equal() function: perform an equal action, then try to change the original address's port. it should not be changed ( handle released), it did not pass in (W32), this is under discussion.", - IP_PORT_MYPORT3 == saSocketAddrEqual.getPort( ) ); - } - void operator_equal_const_001() - { - const ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET); - ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP ); + TEST_F(operator_equal, operator_equal_002) + { + ::osl::SocketAddr saSocketAddr( aHostIp3, IP_PORT_TELNET); + ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP ); - saSocketAddrEqual = saSocketAddr; - sal_Bool bOK = sal_False; - ::rtl::ByteSequence bsSocketAddr = saSocketAddrEqual.getAddr( 0 ); + saSocketAddrEqual = saSocketAddr; + ASSERT_TRUE(IP_PORT_TELNET == saSocketAddrEqual.getPort( )) << "after assign, the assigned SocketAddr is not same as the original Addr"; + saSocketAddrEqual.setPort( IP_PORT_MYPORT3 ); + saSocketAddr.setPort( IP_PORT_HTTP2 ); - if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) ) - bOK = sal_True; + ASSERT_TRUE(IP_PORT_MYPORT3 == saSocketAddrEqual.getPort( )) << "test for operator_equal() function: perform an equal action, then try to change the original address's port. it should not be changed ( handle released), it did not pass in (W32), this is under discussion."; + } - CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_const() function: use operator= const to assign Ip1 to Ip2, verify the change on the second one.", - sal_True == bOK ); - } + TEST_F(operator_equal, operator_equal_const_001) + { + const ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET); + ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP ); - void operator_equal_const_002() - { - const ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET); - ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP ); + saSocketAddrEqual = saSocketAddr; + sal_Bool bOK = sal_False; + ::rtl::ByteSequence bsSocketAddr = saSocketAddrEqual.getAddr( 0 ); - saSocketAddrEqual = saSocketAddr; - saSocketAddrEqual.setPort( IP_PORT_HTTP1 ); + if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) &&( bsSocketAddr[0] == 127 ) && ( bsSocketAddr[1] == 0 ) &&( bsSocketAddr[2] == 0 ) && ( bsSocketAddr[3] == 1 ) ) + bOK = sal_True; - CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_const() function: change the second instance, the first one should not be altered, since it does not released the handle.", - IP_PORT_HTTP1 != saSocketAddr.getPort( ) ); - } + ASSERT_TRUE(sal_True == bOK) << "test for operator_equal_const() function: use operator= const to assign Ip1 to Ip2, verify the change on the second one."; + } - void operator_equal_assign_001() - { - ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostIp1, IP_PORT_TELNET ); - CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL); - ::osl::SocketAddr* pSocketAddrAssign = new ::osl::SocketAddr( aHostIp2, IP_PORT_FTP ); - oslSocketAddr poslSocketAddr = pSocketAddr->getHandle( ); - //if( m_handle ) osl_destroySocketAddr( m_handle ); so pSocketAddrAssign had been destroyed and then point to pSocketAddr - pSocketAddrAssign->assign(poslSocketAddr, SAL_NO_COPY); + TEST_F(operator_equal, operator_equal_const_002) + { + const ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET); + ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP ); - CPPUNIT_ASSERT_MESSAGE("test for SocketAddr no copy constructor function: do a no copy constructor on a given SocketAddr instance, modify the new instance's port, check the original one.", - pSocketAddrAssign->getPort( ) == IP_PORT_TELNET ); + saSocketAddrEqual = saSocketAddr; + saSocketAddrEqual.setPort( IP_PORT_HTTP1 ); - delete pSocketAddrAssign; - } + ASSERT_TRUE(IP_PORT_HTTP1 != saSocketAddr.getPort( )) << "test for operator_equal_const() function: change the second instance, the first one should not be altered, since it does not released the handle."; + } - void operator_is_equal_001() - { - ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET); - ::osl::SocketAddr saSocketAddrequal( aHostIp1, IP_PORT_TELNET ); + TEST_F(operator_equal, operator_equal_assign_001) + { + ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( aHostIp1, IP_PORT_TELNET ); + ASSERT_TRUE(pSocketAddr != NULL) << "check for new SocketAddr"; + ::osl::SocketAddr* pSocketAddrAssign = new ::osl::SocketAddr( aHostIp2, IP_PORT_FTP ); + oslSocketAddr poslSocketAddr = pSocketAddr->getHandle( ); + //if( m_handle ) osl_destroySocketAddr( m_handle ); so pSocketAddrAssign had been destroyed and then point to pSocketAddr + pSocketAddrAssign->assign(poslSocketAddr, SAL_NO_COPY); - CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two identical Address.", - sal_True == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) ); - } ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits