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

Reply via email to