You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by da...@apache.org on 2015/09/05 09:59:22 UTC
svn commit: r1701357 [1/5] - /openoffice/trunk/main/sal/qa/osl/socket/
Author: damjan
Date: Sat Sep 5 07:59:22 2015
New Revision: 1701357
URL: http://svn.apache.org/r1701357
Log:
#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.
Modified:
openoffice/trunk/main/sal/qa/osl/socket/makefile.mk
openoffice/trunk/main/sal/qa/osl/socket/osl_AcceptorSocket.cxx
openoffice/trunk/main/sal/qa/osl/socket/osl_ConnectorSocket.cxx
openoffice/trunk/main/sal/qa/osl/socket/osl_DatagramSocket.cxx
openoffice/trunk/main/sal/qa/osl/socket/osl_Socket.cxx
openoffice/trunk/main/sal/qa/osl/socket/osl_Socket2.cxx
openoffice/trunk/main/sal/qa/osl/socket/osl_SocketAddr.cxx
openoffice/trunk/main/sal/qa/osl/socket/osl_Socket_Const.h
openoffice/trunk/main/sal/qa/osl/socket/osl_Socket_Const_orig.h
openoffice/trunk/main/sal/qa/osl/socket/osl_Socket_tests.cxx
openoffice/trunk/main/sal/qa/osl/socket/osl_StreamSocket.cxx
openoffice/trunk/main/sal/qa/osl/socket/sockethelper.cxx
openoffice/trunk/main/sal/qa/osl/socket/sockethelper.hxx
Modified: openoffice/trunk/main/sal/qa/osl/socket/makefile.mk
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sal/qa/osl/socket/makefile.mk?rev=1701357&r1=1701356&r2=1701357&view=diff
==============================================================================
--- openoffice/trunk/main/sal/qa/osl/socket/makefile.mk (original)
+++ openoffice/trunk/main/sal/qa/osl/socket/makefile.mk Sat Sep 5 07:59:22 2015
@@ -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
Modified: openoffice/trunk/main/sal/qa/osl/socket/osl_AcceptorSocket.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sal/qa/osl/socket/osl_AcceptorSocket.cxx?rev=1701357&r1=1701356&r2=1701357&view=diff
==============================================================================
--- openoffice/trunk/main/sal/qa/osl/socket/osl_AcceptorSocket.cxx (original)
+++ openoffice/trunk/main/sal/qa/osl/socket/osl_AcceptorSocket.cxx Sat Sep 5 07:59:22 2015
@@ -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 );
+ TEST_F(ctors, 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();
-
- }; // 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 );
-
- 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;
-
- t_print("#asSocketAssign port number is %d\n", asSocketAssign.getLocalPort() );
+ ::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 );
- asSocketAssign.shutdown();
- myAcceptorThread.join();
+ AcceptorThread myAcceptorThread( asSocketAssign, rtl::OUString::createFromAscii("127.0.0.1") );
+ myAcceptorThread.create();
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
+ thread_sleep( 1 );
+ //when accepting, assign another socket to the socket, the thread will not be closed, so is blocking
+ asSocketAssign = asSocket;
+ printf("#asSocketAssign port number is %d\n", asSocketAssign.getLocalPort() );
-#endif /* LINUX */
- }
+ asSocketAssign.shutdown();
+ myAcceptorThread.join();
+ ASSERT_TRUE(myAcceptorThread.isOK() == sal_True) << "test for close when is accepting: the socket will quit accepting status.";
- CPPUNIT_TEST_SUITE( operator_assign );
- CPPUNIT_TEST( assign_001 );
- CPPUNIT_TEST_SUITE_END();
- }; // class operator_assign
+#endif /* LINUX */
+ }
#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( );
}
-
-
- 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...
-
- CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept.",
- ( osl_Socket_Ok == eResult ) );
- }
-
- 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 ) ) );
- }
-
-
- CPPUNIT_TEST_SUITE( listen_accept );
- CPPUNIT_TEST( listen_accept_001 );
- CPPUNIT_TEST( listen_accept_002 );
- CPPUNIT_TEST_SUITE_END();
-
}; // class listen_accept
-
-// -----------------------------------------------------------------------------
-
-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");
+ 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;
+
+ /// 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); /// 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.";
+ }
+
+ 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;
+
+ /// 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...
+
+ 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();
+}
Modified: openoffice/trunk/main/sal/qa/osl/socket/osl_ConnectorSocket.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sal/qa/osl/socket/osl_ConnectorSocket.cxx?rev=1701357&r1=1701356&r2=1701357&view=diff
==============================================================================
--- openoffice/trunk/main/sal/qa/osl/socket/osl_ConnectorSocket.cxx (original)
+++ openoffice/trunk/main/sal/qa/osl/socket/osl_ConnectorSocket.cxx Sat Sep 5 07:59:22 2015
@@ -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( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
}; // class ctors
+ TEST_F(ctors, ctors_001)
+ {
+ /// Socket constructor.
+ ::osl::ConnectorSocket csSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
+
+ 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( );
}
-
-
- 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 );
-
- 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 );
-
- }
-
- // really an error in non-blocking mode
- void connect_004()
- {
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString::createFromAscii("123.345.67.89"), IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_True );
-
- 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
- */
-
- CPPUNIT_TEST_SUITE( connect );
- CPPUNIT_TEST( connect_001 );
- CPPUNIT_TEST( connect_002 );
- CPPUNIT_TEST( connect_003 );
- CPPUNIT_TEST( connect_004 );
- CPPUNIT_TEST_SUITE_END();
-
}; // class connect
-
-// -----------------------------------------------------------------------------
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ConnectorSocket::ctors, "osl_ConnectorSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ConnectorSocket::connect, "osl_ConnectorSocket");
+ 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 );
+
+ 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.";
+
+ 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.";
+
+ /// get peer information
+ csConnectorSocket.getPeerAddr( saPeerSocketAddr );
+
+ 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 );
+
+ csConnectorSocket.enableNonBlockingMode( sal_False );
+
+ 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.";
+
+ }
+
+ // 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 );
+
+ 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();
+}
Modified: openoffice/trunk/main/sal/qa/osl/socket/osl_DatagramSocket.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sal/qa/osl/socket/osl_DatagramSocket.cxx?rev=1701357&r1=1701356&r2=1701357&view=diff
==============================================================================
--- openoffice/trunk/main/sal/qa/osl/socket/osl_DatagramSocket.cxx (original)
+++ openoffice/trunk/main/sal/qa/osl/socket/osl_DatagramSocket.cxx Sat Sep 5 07:59:22 2015
@@ -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,26 +109,20 @@ namespace osl_DatagramSocket
oslSocketType Type= osl_Socket_TypeDgram);
*/
- class ctors : public CppUnit::TestFixture
+ class ctors : public ::testing::Test
{
public:
-
- 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();
-
}; // class ctors
+ TEST_F(ctors, ctors_001)
+ {
+ /// Socket constructor.
+ ::osl::DatagramSocket dsSocket;
+
+ 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
*/
class TalkerThread : public Thread
@@ -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:
-
- 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;
-
- //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_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
-
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo failed: nSend <= 0.", nSend > 0);
-
- myListenThread.join();
- //t_print("#received buffer is %s# \n", myListenThread.pRecvBuffer);
-
- sal_Bool bOk = ( strcmp( myListenThread.pRecvBuffer, pTestString2) == 0 );
-
- 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 );
- }
-
- //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 );
- }
-
- 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 );
- }
-
- 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();
-
}; // class sendTo_recvFrom
-// -----------------------------------------------------------------------------
-
-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_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();
+ //printf("#received buffer is %s# \n", pReadBuffer);
+
+ sal_Bool bOk = ( strcmp(pReadBuffer, pTestString1) == 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.";
+ }
+
+ TEST_F(sendTo_recvFrom, sr_002)
+ {
+ ::osl::SocketAddr saListenSocketAddr( rtl::OUString::createFromAscii("127.0.0.1"), IP_PORT_MYPORT10 );
+ ::osl::DatagramSocket dsSocket;
+
+ //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_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
+
+ ASSERT_TRUE(nSend > 0) << "DatagramSocket sendTo failed: nSend <= 0.";
+
+ myListenThread.join();
+ //printf("#received buffer is %s# \n", myListenThread.pRecvBuffer);
+
+ sal_Bool bOk = ( strcmp( myListenThread.pRecvBuffer, pTestString2) == 0 );
+
+ 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.";
+ }
+
+ 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();
+}