summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-11-02 12:08:08 +0100
committerStephan Bergmann <sbergman@redhat.com>2015-11-02 12:08:35 +0100
commitdbf80fac45a513688ac8acfcf2dbbc0a726258e9 (patch)
tree4871a5be4c3263a2f060c7601be09f2aa23ccd4e /sal
parentde1a1e4bec9934c1f4ce5da45cebaa1d6c342c79 (diff)
Remove long-unused sal/qa/osl/socket/ test code for good
Change-Id: I2614e6c9f6d0a31866cb9821910da7f3e31377c6
Diffstat (limited to 'sal')
-rwxr-xr-xsal/qa/osl/socket/export.exp1
-rw-r--r--sal/qa/osl/socket/osl_AcceptorSocket.cxx243
-rw-r--r--sal/qa/osl/socket/osl_ConnectorSocket.cxx247
-rw-r--r--sal/qa/osl/socket/osl_ConnectorSocket.xsce18
-rw-r--r--sal/qa/osl/socket/osl_DatagramSocket.cxx300
-rw-r--r--sal/qa/osl/socket/osl_Socket.cxx3585
-rw-r--r--sal/qa/osl/socket/osl_Socket.xsce22
-rw-r--r--sal/qa/osl/socket/osl_Socket2.cxx1391
-rw-r--r--sal/qa/osl/socket/osl_Socket2.xsce19
-rw-r--r--sal/qa/osl/socket/osl_SocketAddr.cxx855
-rw-r--r--sal/qa/osl/socket/osl_SocketAddr.xsce0
-rw-r--r--sal/qa/osl/socket/osl_SocketOld.xsce31
-rw-r--r--sal/qa/osl/socket/osl_Socket_Const.h110
-rw-r--r--sal/qa/osl/socket/osl_Socket_Const_orig.h148
-rw-r--r--sal/qa/osl/socket/osl_Socket_tests.cxx75
-rw-r--r--sal/qa/osl/socket/osl_Socket_tests.xsce18
-rw-r--r--sal/qa/osl/socket/osl_StreamSocket.cxx1364
-rw-r--r--sal/qa/osl/socket/osl_StreamSocket.xsce21
-rw-r--r--sal/qa/osl/socket/sockethelper.cxx326
-rw-r--r--sal/qa/osl/socket/sockethelper.hxx158
20 files changed, 0 insertions, 8932 deletions
diff --git a/sal/qa/osl/socket/export.exp b/sal/qa/osl/socket/export.exp
deleted file mode 100755
index a13529da5876..000000000000
--- a/sal/qa/osl/socket/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction
diff --git a/sal/qa/osl/socket/osl_AcceptorSocket.cxx b/sal/qa/osl/socket/osl_AcceptorSocket.cxx
deleted file mode 100644
index 85d5d4c63fb9..000000000000
--- a/sal/qa/osl/socket/osl_AcceptorSocket.cxx
+++ /dev/null
@@ -1,243 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(OS)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(OS)" != "WNT"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-// include files
-
-#include <sal/types.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "osl_Socket_Const.h"
-#include "sockethelper.hxx"
-
-using namespace osl;
-using ::rtl::OUString;
-
-#define IP_PORT_FTP 21
-#define IP_PORT_MYPORT9 8897
-#define IP_PORT_MYPORT4 8885
-#define IP_PORT_MYPORT3 8884
-
-// helper functions
-
-// just used to test socket::close() when accepting
-class AcceptorThread : public Thread
-{
- ::osl::AcceptorSocket asAcceptorSocket;
- ::rtl::OUString aHostIP;
- sal_Bool bOK;
-protected:
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# AcceptorSocket bind address failed.\n" ) ;
- return;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# AcceptorSocket listen address failed.\n" ) ;
- return;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- bOK = sal_True;
- t_print("AcceptorThread: acceptConnection failed! \n");
- }
- }
-public:
- AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString const& aBindIP )
- : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
- {
- bOK = sal_False;
- }
-
- sal_Bool isOK() { return bOK; }
-
- ~AcceptorThread( )
- {
- if ( isRunning( ) )
- {
- asAcceptorSocket.shutdown();
- t_print("# error: Acceptor thread not terminated.\n" );
- }
- }
-};
-
-namespace osl_AcceptorSocket
-{
-
- /** testing the methods:
- inline AcceptorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- 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();
-
- }; // class ctors
-
- /** testing the method:
- inline sal_Bool SAL_CALL listen(sal_Int32 MaxPendingConnections= -1);
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection);
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection, SocketAddr & PeerAddr);
- */
-
- class listen_accept : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1);
- // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- // sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void listen_accept_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT3 );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept.",
- ( osl_Socket_Ok == eResult ) );
- }
-
- void listen_accept_002()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT4 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT4 );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString("129.158.217.202"), IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection, saPeerSocketAddr); /// waiting for incoming connection...
-
- CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept, accept with peer address.",
- ( sal_True == bOK2 ) &&
- ( osl_Socket_Ok == eResult ) &&
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) ) );
- }
-
- CPPUNIT_TEST_SUITE( listen_accept );
- CPPUNIT_TEST( listen_accept_001 );
- CPPUNIT_TEST( listen_accept_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class listen_accept
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_AcceptorSocket::ctors);
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::operator_assign, "osl_AcceptorSocket");
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_AcceptorSocket::listen_accept);
-
-} // 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.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_ConnectorSocket.cxx b/sal/qa/osl/socket/osl_ConnectorSocket.cxx
deleted file mode 100644
index 261cfc2bc846..000000000000
--- a/sal/qa/osl/socket/osl_ConnectorSocket.cxx
+++ /dev/null
@@ -1,247 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(OS)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(OS)" != "WNT"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-// include files
-
-#include <sal/types.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "osl_Socket_Const.h"
-#include "sockethelper.hxx"
-
-using namespace osl;
-using ::rtl::OUString;
-
-#define IP_PORT_MYPORT2 8883
-#define IP_PORT_FTP 21
-#define IP_PORT_MYPORT3 8884
-
-// helper functions
-
-class CloseSocketThread : public Thread
-{
- ::osl::Socket &m_sSocket;
-protected:
- void SAL_CALL run( )
- {
- thread_sleep( 1 );
- m_sSocket.close( );
- }
-public:
- CloseSocketThread(::osl::Socket & sSocket )
- : m_sSocket( sSocket )
- {
- }
-
- ~CloseSocketThread( )
- {
- if ( isRunning( ) )
- {
- t_print("# error: CloseSocketThread not terminated.\n" );
- }
- }
-};
-
-namespace osl_ConnectorSocket
-{
-
- /** testing the method:
- ConnectorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::ConnectorSocket csSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the connector socket was created successfully.",
- osl_Socket_TypeStream == csSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- /** testing the method:
- oslSocketResult SAL_CALL connect(const SocketAddr& TargetHost, const TimeValue* pTimeout = 0);
- */
-
- class connect : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- // sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void connect_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT2 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT2 );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString("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("127.0.0.1"), IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT3 );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString("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("127.0.0.1"), IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr2( rtl::OUString("123.345.67.89"), IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult1 = csConnectorSocket.connect( saTargetSocketAddr1, pTimeout );
- oslSocketResult eResult2 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout );
- CloseSocketThread myCloseThread( csConnectorSocket );
- oslSocketResult eResult3 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout );
- myCloseThread.join();
- CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult1 &&
- osl_Socket_Error == eResult2 && osl_Socket_Error == eResult3 );
-
- }
-
- // really an error in non-blocking mode
- void connect_004()
- {
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString("123.345.67.89"), IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_True );
-
- oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
- CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult );
- }
- /** here need a case: immediate connection, say in non-blocking mode connect return osl_Socket_Ok
- */
-
- CPPUNIT_TEST_SUITE( connect );
- CPPUNIT_TEST( connect_001 );
- CPPUNIT_TEST( connect_002 );
- CPPUNIT_TEST( connect_003 );
- CPPUNIT_TEST( connect_004 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class connect
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_ConnectorSocket::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_ConnectorSocket::connect);
-
-} // 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.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_ConnectorSocket.xsce b/sal/qa/osl/socket/osl_ConnectorSocket.xsce
deleted file mode 100644
index 6eafd2df5401..000000000000
--- a/sal/qa/osl/socket/osl_ConnectorSocket.xsce
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-osl_ConnectorSocket.connect.connect_003 wntmsci
diff --git a/sal/qa/osl/socket/osl_DatagramSocket.cxx b/sal/qa/osl/socket/osl_DatagramSocket.cxx
deleted file mode 100644
index 3fb83cfa9815..000000000000
--- a/sal/qa/osl/socket/osl_DatagramSocket.cxx
+++ /dev/null
@@ -1,300 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(OS)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(OS)" != "WNT"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-#include <sal/types.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "sockethelper.hxx"
-
-using namespace osl;
-
-using ::rtl::OUString;
-
-#define IP_PORT_MYPORT9 8897
-#define IP_PORT_MYPORT10 8898
-
-const char * pTestString1 = "test socket";
-const char * pTestString2 = " Passed#OK";
-
-// helper functions
-
-class CloseSocketThread : public Thread
-{
- ::osl::Socket m_sSocket;
-protected:
- void SAL_CALL run( )
- {
- thread_sleep( 1 );
- m_sSocket.close( );
- }
-public:
- CloseSocketThread(::osl::Socket & sSocket )
- : m_sSocket( sSocket )
- {
- }
-
- ~CloseSocketThread( )
- {
- if ( isRunning( ) )
- {
- t_print("# error: CloseSocketThread not terminated.\n" );
- }
- }
-};
-
-// tests cases begins here
-
-namespace osl_DatagramSocket
-{
-
- /** testing the methods:
- inline DatagramSocket(oslAddrFamily Family= osl_Socket_FamilyInet,
- oslProtocol Protocol= osl_Socket_ProtocolIp,
- oslSocketType Type= osl_Socket_TypeDgram);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::DatagramSocket dsSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the datagram socket was created successfully.",
- osl_Socket_TypeDgram == dsSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
-/**thread do sendTo, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
-*/
-class TalkerThread : public Thread
-{
-protected:
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::DatagramSocket dsSocket;
-
- void SAL_CALL run( )
- {
- dsSocket.sendTo( saTargetSocketAddr, pTestString1, strlen( pTestString1 ) + 1 ); // "test socket"
- dsSocket.shutdown();
- }
-
- void SAL_CALL onTerminated( )
- {
- }
-
-public:
- TalkerThread( ):
- saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT9 )
- {
- }
-
- ~TalkerThread( )
- {
- if ( isRunning( ) )
- t_print("# error: TalkerThread not terminated normally.\n" );
- }
-};
-
-/**thread do listen, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
-*/
-class ListenerThread : public Thread
-{
-protected:
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::DatagramSocket dsSocket;
-
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT10 );
- dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- if ( dsSocket.bind( saLocalSocketAddr ) == sal_False )
- {
- t_print("DatagramSocket bind failed \n");
- return;
- }
- //blocking mode: default
-#if !SILENT_TEST
- sal_Int32 nRecv =
-#endif
- dsSocket.recvFrom( pRecvBuffer, 30, &saTargetSocketAddr); //strlen( pTestString2 ) + 1
- t_print("After recvFrom, nRecv is %d\n", (int) nRecv);
- }
-
- void SAL_CALL onTerminated( )
- {
- }
-
-public:
- sal_Char pRecvBuffer[30];
- ListenerThread( ):
- saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT10 )
- {
- pRecvBuffer[0] = '\0';
- }
-
- ~ListenerThread( )
- {
- if ( isRunning( ) )
- t_print("# error: ListenerThread not terminated normally.\n" );
- }
-
-};
-
- /** testing the methods:
- inline sal_Int32 DatagramSocket::recvFrom(void* pBuffer, sal_uInt32 BufferSize,
- SocketAddr* pSenderAddr, oslSocketMsgFlag Flag )
- inline sal_Int32 DatagramSocket::sendTo( const SocketAddr& ReceiverAddr,
- const void* pBuffer, sal_uInt32 BufferSize, oslSocketMsgFlag Flag )
- */
-
- class sendTo_recvFrom : public CppUnit::TestFixture
- {
- public:
-
- void sr_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("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("127.0.0.1"), IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
-
- //listener thread construct a DatagramSocket, recvFrom waiting for data, then main thread sendto data
- ListenerThread myListenThread;
- myListenThread.create();
- //to grantee the recvFrom is before sendTo
- thread_sleep( 1 );
-
- sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
-
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo failed: nSend <= 0.", nSend > 0);
-
- myListenThread.join();
- //t_print("#received buffer is %s# \n", myListenThread.pRecvBuffer);
-
- sal_Bool bOk = ( strcmp( myListenThread.pRecvBuffer, pTestString2) == 0 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a listener thread and sendTo in the main thread, check if the datagram socket can communicate successfully.",
- bOk == sal_True );
- }
-
- //sendTo error, return -1; recvFrom error, return -1
- void sr_003()
- {
- ::osl::SocketAddr saListenSocketAddr( rtl::OUString("123.345.67.89"), IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
- // Transport endpoint is not connected
- sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.",
- nSend == -1 );
- }
-
- void sr_004()
- {
- ::osl::SocketAddr saListenSocketAddr1( rtl::OUString("123.345.67.89"), IP_PORT_MYPORT10 );
- ::osl::SocketAddr saListenSocketAddr2( rtl::OUString("129.158.217.202"), IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
-
- dsSocket.enableNonBlockingMode( sal_True );
-
- sal_Char pReadBuffer[30];
- //sal_Int32 nRecv1 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
-
- // will block ?
- CloseSocketThread myThread( dsSocket );
- myThread.create();
- sal_Int32 nRecv2 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
- myThread.join();
- //t_print("#nRecv1 is %d nRecv2 is %d\n", nRecv1, nRecv2 );
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.",
- nRecv2 == -1 );
- }
-
- CPPUNIT_TEST_SUITE( sendTo_recvFrom );
- CPPUNIT_TEST( sr_001 );
- CPPUNIT_TEST( sr_002 );
- CPPUNIT_TEST( sr_003 );
- CPPUNIT_TEST( sr_004 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class sendTo_recvFrom
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_DatagramSocket::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_DatagramSocket::sendTo_recvFrom);
-
-} // 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.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket.cxx b/sal/qa/osl/socket/osl_Socket.cxx
deleted file mode 100644
index 2c9e1ff58f98..000000000000
--- a/sal/qa/osl/socket/osl_Socket.cxx
+++ /dev/null
@@ -1,3585 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(OS)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(OS)" != "WNT"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-// include files
-
-#include <sal/types.h>
-#include <osl_Socket_Const_orig.h>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-/** test output if SILENT_TEST is 0
-*/
-#if OSL_DEBUG_LEVEL > 0
-# define SILENT_TEST 0
-#else
-# define SILENT_TEST 1
-#endif
-
-#if SILENT_TEST
-# define t_print(...) { }
-#else
-# define t_print printf
-#endif
-
-/** convert UString and OUString to std::string
-*/
-#define STD_STRING(s) (std::string((const char *)s.getStr()))
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-
-// helper functions
-
-/** compare two OUString.
-*/
-inline sal_Bool compareUString( const ::rtl::OUString & ustr1, const ::rtl::OUString & ustr2 )
-{
- sal_Bool bOk = ustr1.equalsIgnoreAsciiCase( ustr2 );
-
- return bOk;
-}
-
-/** compare a OUString and an ASCII string.
-*/
-inline sal_Bool compareUString( const ::rtl::OUString & ustr, const sal_Char *astr )
-{
- ::rtl::OUString ustr2 = rtl::OUString::createFromAscii( astr );
- sal_Bool bOk = ustr.equalsIgnoreAsciiCase( ustr2 );
-
- return bOk;
-}
-
-/** compare two socket address.
-*/
-inline sal_Bool compareSocketAddr( const ::osl::SocketAddr & addr1 , const ::osl::SocketAddr & addr2 )
-{
- return ( ( sal_True == compareUString( addr1.getHostname( 0 ), addr2.getHostname( 0 ) ) ) && ( addr2.getPort( ) == addr2.getPort( ) ) );
-}
-
-inline char * oustring2char( const ::rtl::OUString & str )
-{
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- return (char *)aString.getStr( );
-}
-
-/** print a UNI_CODE String. And also print some comments of the string.
-*/
-inline void printUString( const ::rtl::OUString & str, const sal_Char * msg = "" )
-{
-#if SILENT_TEST
- (void)str;
- (void)msg;
-#else
- t_print("#%s #printUString_u# ", msg );
- t_print("%s\n", oustring2char( str ) );
-#endif
-}
-
-/** get the local host name.
- mindy: gethostbyname( "localhost" ), on Linux, it returns the hostname in /etc/hosts + domain name,
- if no entry in /etc/hosts, it returns "localhost" + domain name
-*/
-inline ::rtl::OUString getHost()
-{
- struct hostent *hptr;
-
- hptr = gethostbyname( "localhost" );
- CPPUNIT_ASSERT_MESSAGE( "#In getHostname function, error on gethostbyname()", hptr != NULL );
- ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hptr->h_name );
-
- return aUString;
-}
-
-/** get the full host name of the current processor, such as "aegean.prc.sun.com" --mindyliu
-*/
-inline ::rtl::OUString getThisHostname()
-{
- ::rtl::OUString aUString;
-#ifdef WNT
- struct hostent *hptr;
- hptr = gethostbyname( "localhost" );
- CPPUNIT_ASSERT_MESSAGE( "#In getHostname function, error on gethostbyname()", hptr != NULL );
- aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hptr->h_name );
-#else
- char hostname[255];
- CPPUNIT_ASSERT_MESSAGE( "#Error: gethostname failed.", gethostname(hostname, 255) == 0 );
-
- struct hostent *hptr;
- //first search /ets/hosts, then search from dns
- hptr = gethostbyname( hostname);
- if ( hptr != NULL )
- {
- strcpy( hostname, hptr->h_name );
- }
-
- t_print("hostname is %s \n", hostname );
- aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hostname );
-#endif
- return aUString;
-}
-
-/** get IP by name, search /etc/hosts first, then search from dns, fail return OUString("")
-*/
-inline ::rtl::OUString getIPbyName( rtl::OString const& str_name )
-{
- ::rtl::OUString aUString;
- struct hostent *hptr;
- //first search /ets/hosts, then search from dns
- hptr = gethostbyname( str_name.getStr());
- if ( hptr != NULL )
- {
- struct in_addr ** addrptr;
- addrptr = (struct in_addr **) hptr->h_addr_list ;
- //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));
- aUString = ::rtl::OUString::createFromAscii( (sal_Char *) (inet_ntoa(**addrptr)) );
- }
- }
- return aUString;
-}
-
-/** get local ethernet IP
-*/
-inline ::rtl::OUString getLocalIP( )
-{
- char hostname[255];
- gethostname(hostname, 255);
-
- return getIPbyName( hostname );
-}
-
-/** construct error message
-*/
-inline ::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::rtl::OUString & rightVal, const sal_Char * msg = "")
-{
- ::rtl::OUString aUString;
- if ( returnVal.equals( rightVal ) )
- return aUString;
- aUString += ::rtl::OUString::createFromAscii(msg);
- aUString += ::rtl::OUString(": the returned value is '");
- aUString += returnVal;
- aUString += ::rtl::OUString("', but the value should be '");
- aUString += rightVal;
- aUString += ::rtl::OUString("'.");
- return aUString;
-}
-
-/** wait _nSec seconds.
-*/
-void thread_sleep( sal_Int32 _nSec )
-{
- /// print statement in thread process must use fflush() to force display.
- t_print("# wait %d seconds. ", (int) _nSec );
- fflush(stdout);
-
-#ifdef WNT //Windows
- Sleep( _nSec * 100 );
-#endif
-#if ( defined UNX ) //Unix
- usleep(_nSec * 100000);
-#endif
- t_print("# done\n" );
-}
-
-/** print Boolean value.
-*/
-inline void printBool( sal_Bool bOk )
-{
-#if SILENT_TEST
- (void)bOk;
-#else
- t_print("#printBool# " );
- t_print ("%s", (sal_True == bOk) ? "YES!\n" : "NO!\n");
-#endif
-}
-
-/** print content of a ByteSequence.
-*/
-inline void printByteSequence_IP( const ::rtl::ByteSequence & bsByteSeq, sal_Int32 nLen )
-{
-#if SILENT_TEST
- (void)bsByteSeq;
- (void)nLen;
-#else
- t_print("#ByteSequence is: " );
- for ( int i = 0; i < nLen; i++ ){
- if ( bsByteSeq[i] < 0 )
- t_print("%d ", 256 + bsByteSeq[i] );
- else
- t_print("%d ", bsByteSeq[i] );
- }
- t_print(" .\n" );
-#endif
-}
-
-/** convert an IP which is stored as a UString format to a ByteSequence array for later use.
-*/
-inline ::rtl::ByteSequence UStringIPToByteSequence( ::rtl::OUString aUStr )
-{
-
- rtl::OString aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US );
- const sal_Char *pChar = aString.getStr( ) ;
- sal_Char tmpBuffer[4];
- sal_Int32 nCharCounter = 0;
- ::rtl::ByteSequence bsByteSequence( IP_VER );
- sal_Int32 nByteSeqCounter = 0;
-
- for ( int i = 0; i < aString.getLength( ) + 1 ; i++ )
- {
- if ( ( *pChar != '.' ) && ( i !=aString.getLength( ) ) )
- tmpBuffer[nCharCounter++] = *pChar;
- else
- {
- tmpBuffer[nCharCounter] = '\0';
- nCharCounter = 0;
- bsByteSequence[nByteSeqCounter++] = static_cast<sal_Int8>( atoi( tmpBuffer ) );
- }
- pChar++;
- }
- return bsByteSequence;
-}
-
-/** print a socket result name.
-*/
-inline void printSocketResult( oslSocketResult eResult )
-{
- t_print("#printSocketResult# " );
- if (!eResult)
- switch (eResult)
- {
- case osl_Socket_Ok:
- t_print("client connected\n");
- break;
- case osl_Socket_Error:
- t_print("got an error ... exiting\r\n\r\n" );
- break;
- case osl_Socket_TimedOut:
- t_print("timeout\n");
- break;
-
- case osl_Socket_FORCE_EQUAL_SIZE:
- t_print("FORCE EQUAL SIZE\n");
- break;
- case osl_Socket_InProgress:
- t_print("In Progress\n");
- break;
- case osl_Socket_Interrupted:
- t_print("Interrupted\n");
- break;
- }
-}
-
-/** Client Socket Thread, served as a temp little client to communicate with server.
-*/
-class ClientSocketThread : public Thread
-{
-protected:
- oslThreadIdentifier m_id;
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::ConnectorSocket csConnectorSocket;
-
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- /// if the thread should terminate, schedule return false
- //while ( schedule( ) == sal_True )
- //{
- if ( osl_Socket_Ok == csConnectorSocket.connect( saTargetSocketAddr, pTimeout ))
- {
- csConnectorSocket.send( pTestString1, 11 ); // "test socket"
- csConnectorSocket.send( pTestString2, 10);
- }
- else
- t_print("# ClientSocketThread: connect failed! \n");
- // terminate();
- //}
- csConnectorSocket.close();
- free( pTimeout );
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
-public:
- ClientSocketThread( ):
- saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT9 ),
- csConnectorSocket( )
- {
- m_id = getIdentifier( );
- //t_print("# successfully create this client thread %d!\n", m_id );
- }
-
- ~ClientSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- }
-
-};
-
-/** Server Socket Thread, served as a temp little server to communicate with client.
-*/
-class ServerSocketThread : public Thread
-{
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- while ( schedule( ) == sal_True )
- {
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# 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" ) ;
- break;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("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 );
- break;
- }
- ssStreamConnection.close();
- asAcceptorSocket.close();
-
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this server thread %d!\n", m_id );
- }
-
-public:
- // public to check if data transmition is OK
- sal_Char pReadBuffer[30];
- ServerSocketThread( )
- {
- m_id = getIdentifier( );
- //t_print("# successfully create this server thread %d!\n", m_id );
- }
-
- ~ServerSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: server thread not terminated.\n" );
- }
-};
-
-// Helper functions, to create buffers, check buffers
-class ValueCheckProvider
-{
- bool m_bFoundFailure;
- char *m_pBuffer;
- sal_Int32 m_nBufferSize;
-
-public:
- ValueCheckProvider()
- :
- m_bFoundFailure(false),
- m_pBuffer(NULL),
- m_nBufferSize(0)
- {
- }
-
- bool isFailure() {return m_bFoundFailure;}
-
- const char* getBuffer() {return m_pBuffer;}
- char* getWriteBuffer() {return m_pBuffer;}
-
- sal_Int32 getBufferSize() {return m_nBufferSize;}
-
- bool checkValues(sal_Int32 _nLength, int _nValue)
- {
- m_bFoundFailure = false;
- for(sal_Int32 i=0;i<_nLength;i++)
- {
- if (m_pBuffer[i] != _nValue)
- {
- m_bFoundFailure = true;
- }
- }
- return m_bFoundFailure;
- }
-
- void createBuffer(sal_Int32 _nLength, int _nValue)
- {
- m_nBufferSize = _nLength;
- m_pBuffer = (char*) malloc(m_nBufferSize);
- if (m_pBuffer)
- {
- memset(m_pBuffer, _nValue, m_nBufferSize);
- }
- }
-
- void freeBuffer()
- {
- if (m_pBuffer) free(m_pBuffer);
- }
-
-};
-
-/** Client Socket Thread, served as a temp little client to communicate with server.
-*/
-
-class ReadSocketThread : public Thread
-{
- int m_nValue;
- ValueCheckProvider m_aValues;
-
-protected:
- oslThreadIdentifier m_id;
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::ConnectorSocket csConnectorSocket;
-
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- /// if the thread should terminate, schedule return false
- //while ( schedule( ) == sal_True )
- //{
- if ( osl_Socket_Ok == csConnectorSocket.connect( saTargetSocketAddr, pTimeout ))
- {
- sal_Int32 nReadCount = csConnectorSocket.read( m_aValues.getWriteBuffer(), m_aValues.getBufferSize() );
- m_aValues.checkValues(nReadCount, m_nValue);
- }
- else
- {
- t_print("# ReadSocketThread: connect failed! \n");
- }
- // terminate();
- //}
- //remove this line for deadlock on solaris( margritte.germany )
- csConnectorSocket.close();
- free( pTimeout );
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
-public:
- sal_Int32 getCount() {return m_aValues.getBufferSize();}
- bool isOk() {return m_aValues.isFailure() == true ? false : true;}
-
- ReadSocketThread(sal_Int32 _nBufferSize, int _nValue )
- :
- m_nValue( _nValue ),
- saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT10 ),
- csConnectorSocket( )
- {
- m_id = getIdentifier( );
- //t_print("# successfully create this client thread %d!\n", m_id );
- m_aValues.createBuffer(_nBufferSize, 0);
- }
-
- ~ReadSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- m_aValues.freeBuffer();
- }
-
-};
-
-/** Server Socket Thread, write a file which is large
-*/
-class WriteSocketThread : public Thread
-{
- ValueCheckProvider m_aValues;
-
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT10 );
- ::osl::StreamSocket ssStreamConnection;
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- /// if the thread should terminate, schedule return false
- while ( schedule( ) == sal_True )
- {
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# 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" ) ;
- break;
- }
- // blocking mode, if read/recv failed, block until success
- asAcceptorSocket.enableNonBlockingMode( sal_False);
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("WriteSocketThread: acceptConnection failed! \n");
- break;
- }
-
- ssStreamConnection.write( m_aValues.getBuffer(), m_aValues.getBufferSize() );
- break;
- }
- ssStreamConnection.close();
- asAcceptorSocket.close();
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this server thread %d!\n", m_id );
- }
-
-public:
- // public to check if data transmition is OK
- WriteSocketThread(sal_Int32 _nBufferSize, int _nValue )
- {
- m_id = getIdentifier( );
- //t_print("# successfully create this server thread %d!\n", m_id );
-
- m_aValues.createBuffer(_nBufferSize, _nValue);
- }
-
- ~WriteSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: server thread not terminated.\n" );
- m_aValues.freeBuffer();
- }
-
-};
-
-// just used to test socket::close() when accepting
-class AcceptorThread : public Thread
-{
- ::osl::AcceptorSocket asAcceptorSocket;
- ::rtl::OUString aHostIP;
- sal_Bool bOK;
-protected:
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# AcceptorSocket bind address failed.\n" ) ;
- return;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# AcceptorSocket listen address failed.\n" ) ;
- return;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- bOK = sal_True;
- t_print("AcceptorThread: acceptConnection failed! \n");
- }
- }
-public:
- AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString & aBindIP )
- : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
- {
- bOK = sal_False;
- }
-
- sal_Bool isOK() { return bOK; }
-
- ~AcceptorThread( )
- {
- if ( isRunning( ) )
- {
- asAcceptorSocket.shutdown();
- t_print("# error: Acceptor thread not terminated.\n" );
- }
- }
-};
-
-class CloseSocketThread : public Thread
-{
- ::osl::Socket m_sSocket;
-protected:
- void SAL_CALL run( )
- {
- thread_sleep( 1 );
- m_sSocket.close( );
- }
-public:
- CloseSocketThread(::osl::Socket & sSocket )
- : m_sSocket( sSocket )
- {
- }
-
- ~CloseSocketThread( )
- {
- if ( isRunning( ) )
- {
- t_print("# error: CloseSocketThread not terminated.\n" );
- }
- }
-};
-
-// tests cases begins here
-
-namespace osl_SocketAddr
-{
-
- /** testing the methods:
- inline SocketAddr();
- inline SocketAddr(const SocketAddr& Addr);
- inline SocketAddr(const oslSocketAddr , __osl_socket_NoCopy nocopy );
- inline SocketAddr(oslSocketAddr Addr);
- inline SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort );
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_none()
- {
- /// SocketAddr constructor.
- ::osl::SocketAddr saSocketAddr;
-
- // oslSocketResult aResult;
- // rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
-
- // 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( ) );
- }
-
- void ctors_none_000()
- {
- /// SocketAddr constructor.
- ::osl::SocketAddr saSocketAddr;
-
- oslSocketResult aResult;
- rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
- rtl::OUString suHost2 = getThisHostname();
-
- sal_Bool bOk = compareUString(suHost, suHost2);
-
- rtl::OUString suError ("Host names should be the same. From SocketAddr.getLocalHostname() it is'");
- suError += suHost;
- suError += rtl::OUString("', from getThisHostname() it is '");
- suError += suHost2;
- suError += rtl::OUString("'.");
-
- CPPUNIT_ASSERT_MESSAGE(STD_STRING(suError), sal_True == bOk);
- }
-
- void ctors_copy()
- {
- /// SocketAddr copy constructor.
- ::osl::SocketAddr saSocketAddr( aHostName1, IP_PORT_HTTP1 );
- ::osl::SocketAddr saCopySocketAddr( saSocketAddr );
-
- 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 ) );
- }
-
- void ctors_copy_no_001()
- {
-
- ::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 );
-
- 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 );
-
- delete pSocketAddrCopy;
- // LLA: don't do this also: delete pSocketAddr;
- }
-
- 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;
- }
-
- void 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, get its port to check copy effect.",
- saSocketAddrCopy.getPort( ) == IP_PORT_HTTP1 );
- }
-
- void 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 copy handle constructor function: copy another Socket's handle, the original one should not be changed.",
- saSocketAddr.getPort( ) != IP_PORT_HTTP2 );
- }
-
- void ctors_hostname_port_001()
- {
- /// tcpip-specific constructor.
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_FTP );
- printUString(saSocketAddr.getHostname( ), "ctors_hostname_port_001:getHostname");
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specificy 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 ) ) */);
- }
-
- //same as is_002
- void ctors_hostname_port_002()
- {
- /// tcpip-specific constructor.
- ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT2 );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specificy 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();
-
- }; // class ctors
-
- /** testing the method:
- inline sal_Bool is() const;
- */
-
- class is : public CppUnit::TestFixture
- {
- 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( ) );
- }
-
- void is_003()
- {
- ::osl::SocketAddr saSocketAddr( aHostIpInval1, IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid Ip number",
- sal_True != saSocketAddr.is( ) );
- }
-
- CPPUNIT_TEST_SUITE( is );
- CPPUNIT_TEST( is_001 );
- CPPUNIT_TEST( is_002 );
- CPPUNIT_TEST( is_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class is
-
- /** testing the method:
- inline ::rtl::OUString SAL_CALL getHostname( oslSocketResult *pResult = 0 ) const;
- */
-
- class getHostname : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- 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()
- {
- ::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( STD_STRING(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()
- {
- rtl::OUString suHostname ("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);
-
- 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 )
- {
- bOK = sal_True;
- }
- }
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getHostname );
- CPPUNIT_TEST( getHostname_001 );
- CPPUNIT_TEST( getHostname_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getHostname
-
- /** testing the method:
- inline sal_Int32 SAL_CALL getPort() const;
- */
-
- class getPort : public CppUnit::TestFixture
- {
- 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 );
-
- //t_print("#getPort_002: Port number is %d \n", saSocketAddr.getPort( ));
-
- 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 );
-
- 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 );
- }
-
- CPPUNIT_TEST_SUITE( getPort );
- CPPUNIT_TEST( getPort_001 );
- CPPUNIT_TEST( getPort_002 );
- CPPUNIT_TEST( getPort_003 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getPort
-
- /** testing the method:
- inline sal_Bool SAL_CALL setPort( sal_Int32 nPort );
- rfc1413.txt: TCP port numbers are from 1-65535
- rfc1700.txt: 0/tcp Reserved ; 0/udp Reserved
- */
-
- class setPort : public CppUnit::TestFixture
- {
- 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 );
-
- sal_Int32 newPort = sSocket.getLocalPort();
- //t_print("#new port is %d\n", newPort );
-
- 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 ) );
-
- }
-
- 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( ));
-
- 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);
- }
-
- /* 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 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort( ) function: set an invalid address with valid port. it should return error.",
- bOK == sal_False);
- }
-
- CPPUNIT_TEST_SUITE( setPort );
- CPPUNIT_TEST( setPort_001 );
- CPPUNIT_TEST( setPort_002 );
- CPPUNIT_TEST( setPort_003 );
- CPPUNIT_TEST( setPort_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class setPort
-
- /** tester comment:
-
- In the following two functions, it use ::rtl::ByteSequence as an intermediate storage for address,
- the ByteSequence object can hold sal_Int8 arrays, which is raged [-127, 127], in case of IP addr
- that is greater than 127, say 129.158.217.202, it will stored as -127, -98, -39, -54, it is unique
- in the range of sal_Int8, but lack of readability.
- so may be a sal_uInt8 array is better.
- */
-
- /** testing the method:
- inline sal_Bool SAL_CALL setAddr( const ::rtl::ByteSequence & address );
- */
-
- class setAddr : public CppUnit::TestFixture
- {
- 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 );
- }
-
- CPPUNIT_TEST_SUITE( setAddr );
- CPPUNIT_TEST( setAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class setAddr
-
- /** testing the method:
- inline ::rtl::ByteSequence SAL_CALL getAddr( oslSocketResult *pResult = 0 ) const;
- */
-
- class getAddr : public CppUnit::TestFixture
- {
- 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;
-
- 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);
- }
-
- CPPUNIT_TEST_SUITE( getAddr );
- CPPUNIT_TEST( getAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getAddr
-
- /** testing the methods:
- inline SocketAddr & SAL_CALL operator= (oslSocketAddr Addr);
- inline SocketAddr & SAL_CALL operator= (const SocketAddr& Addr);
- inline SocketAddr & SAL_CALL assign( oslSocketAddr Addr, __osl_socket_NoCopy nocopy );
- inline sal_Bool SAL_CALL operator== (oslSocketAddr Addr) const;
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const; /// not implemented.
- */
-
- class operator_equal : public CppUnit::TestFixture
- {
- 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;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal() function: use operator= to assign Ip1 to Ip2, check its modification.",
- sal_True == bOK );
- }
-
- void operator_equal_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp3, IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP );
-
- 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 );
-
- 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 );
-
- 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;
-
- 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 );
- }
-
- void operator_equal_const_002()
- {
- const ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( aHostIp2, IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- saSocketAddrEqual.setPort( IP_PORT_HTTP1 );
-
- 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( ) );
- }
-
- 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);
-
- 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 );
-
- delete pSocketAddrAssign;
- }
-
- void operator_is_equal_001()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp1, IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrequal( aHostIp1, IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two identical Address.",
- sal_True == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) );
- }
-
- void operator_is_equal_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostIp2, IP_PORT_FTP);
- ::osl::SocketAddr saSocketAddrequal( aHostIp1, IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two different Address.",
- sal_False == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) );
- }
-
- CPPUNIT_TEST_SUITE( operator_equal );
- CPPUNIT_TEST( operator_equal_001 );
- CPPUNIT_TEST( operator_equal_002 );
- CPPUNIT_TEST( operator_equal_const_001 );
- CPPUNIT_TEST( operator_equal_const_002 );
- CPPUNIT_TEST( operator_equal_assign_001 );
- CPPUNIT_TEST( operator_is_equal_001 );
- CPPUNIT_TEST( operator_is_equal_002 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class operator_equal
-
- /** testing the method:
- inline oslSocketAddr SAL_CALL getHandle() const;
- */
-
- class getSocketAddrHandle : public CppUnit::TestFixture
- {
- public:
-
- void getSocketAddrHandle_001()
- {
- ::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;
- }
-
- void getSocketAddrHandle_002()
- {
- ::osl::SocketAddr saSocketAddr( aHostName3, IP_PORT_MYPORT4 );
- oslSocketAddr poslSocketAddr = saSocketAddr.getHandle( );
-
- sal_Bool bOK = ( saSocketAddr == poslSocketAddr );
- //t_print("getSocketAddrHandle_002\n");
- CPPUNIT_ASSERT_MESSAGE( "test for getHandle() function: use getHandle() function as an intermediate way to create identical address.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getSocketAddrHandle );
- CPPUNIT_TEST( getSocketAddrHandle_001 );
- CPPUNIT_TEST( getSocketAddrHandle_002 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getSocketAddrHandle
-
- /** testing the method:
- static inline ::rtl::OUString SAL_CALL getLocalHostname( oslSocketResult *pResult = 0);
- */
-
- class getLocalHostname : public CppUnit::TestFixture
- {
- public:
- /* the process of getLocalHostname: 1.gethostname (same as /bin/hostname) returned name A
- 2. search A in /etc/hosts, if there is an alias name is A, return the name in the same row
- */
-
- void getLocalHostname_000()
- {
- // _osl_getFullQualifiedDomainName( );
- oslSocketResult aResult = osl_Socket_Error;
- rtl::OUString suHostname = osl::SocketAddr::getLocalHostname(&aResult);
- CPPUNIT_ASSERT_MESSAGE("getLocalHostname failed", aResult == osl_Socket_Ok);
- }
-
- void getLocalHostname_001()
- {
- oslSocketResult *pResult = NULL;
- //printSocketResult(*pResult);
- ::rtl::OUString suResult = ::osl::SocketAddr::getLocalHostname( pResult );
-
- // LLA: IMHO localhost, or hostname by itself should be ok.
- rtl::OUString suThisHost = getThisHostname( );
- bool bOk = false;
- if ( suThisHost == "localhost" )
- {
- bOk = true;
- }
- else
- {
- if (suThisHost.equals(suResult))
- {
- bOk = true;
- }
- }
-
- ::rtl::OUString suError;
- suError = outputError(suResult, getThisHostname( ), "test for getLocalHostname() function");
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), bOk == true );
- }
-
- CPPUNIT_TEST_SUITE( getLocalHostname );
- CPPUNIT_TEST( getLocalHostname_000 );
- CPPUNIT_TEST( getLocalHostname_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getLocalHostname
-
- /** testing the method:
- static inline void SAL_CALL resolveHostname( const ::rtl::OUString & strHostName , SocketAddr & Addr );
- */
-
- class resolveHostname : public CppUnit::TestFixture
- {
- public:
- void resolveHostname_001()
- {
- ::osl::SocketAddr saSocketAddr;
- ::osl::SocketAddr::resolveHostname( aHostIp1, saSocketAddr );
- ::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 resolveHostname() function: try to resolve localhost to 127.0.0.1.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( resolveHostname );
- CPPUNIT_TEST( resolveHostname_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class resolveHostname
-
- /** testing the method:
- static inline sal_Int32 SAL_CALL getServicePort(
- const ::rtl::OUString& strServiceName,
- const ::rtl::OUString & strProtocolName= ::rtl::OUString("tcp") );
- */
-
- class gettheServicePort : public CppUnit::TestFixture
- {
- public:
- void gettheServicePort_001()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get ftp service port on TCP protocol.",
- IP_PORT_FTP== ::osl::SocketAddr::getServicePort( aServiceFTP, aProtocolTCP ) );
- }
-
- void gettheServicePort_002()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get telnet service port on TCP protocol.",
- IP_PORT_TELNET== ::osl::SocketAddr::getServicePort( aServiceTELNET, aProtocolTCP ) );
- }
-
- void gettheServicePort_003()
- {
- //Solaris has no service called "https", please see /etc/services
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get netbios-ssn service port on UDP protocol.",
- IP_PORT_NETBIOS_DGM == ::osl::SocketAddr::getServicePort( aServiceNETBIOS, aProtocolUDP ) );
- }
-
- void gettheServicePort_004()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get a service port which is not exist.",
- OSL_INVALID_PORT == ::osl::SocketAddr::getServicePort( ::rtl::OUString("notexist"), aProtocolUDP ) );
- }
-
- CPPUNIT_TEST_SUITE( gettheServicePort );
- CPPUNIT_TEST( gettheServicePort_001 );
- CPPUNIT_TEST( gettheServicePort_002 );
- CPPUNIT_TEST( gettheServicePort_003 );
- CPPUNIT_TEST( gettheServicePort_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class gettheServicePort
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::ctors, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::is, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getHostname, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getPort, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::setPort, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::setAddr, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getAddr, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::operator_equal, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getSocketAddrHandle, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::getLocalHostname, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::resolveHostname, "osl_SocketAddr");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_SocketAddr::gettheServicePort, "osl_SocketAddr");
-
-} // namespace osl_SocketAddr
-
-namespace osl_Socket
-{
-
- /** testing the methods:
- inline Socket( );
- inline Socket( const Socket & socket );
- inline Socket( oslSocket socketHandle );
- inline Socket( oslSocket socketHandle, __sal_NoAcquire noacquire );
- */
-
- /** test writer's comment:
-
- class Socket can not be initialized by its protected constructor, though the protected
- constructor is the most convenient way to create a new socket.
- it only allow the method of C function osl_createSocket like:
- ::osl::Socket sSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream,
- osl_Socket_ProtocolIp ) );
- the use of C method lost some of the transparent of tester using C++ wrapper.
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void ctors_none()
- {
- /// Socket constructor.
- // ::osl::Socket sSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the socket was created successfully, if no exception occurred",
- 1 == 1 );
- }
-
- void ctors_acquire()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void ctors_no_acquire()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle, SAL_NO_ACQUIRE );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void ctors_copy_ctor()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket copySocket( sSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor",
- osl_Socket_TypeStream == copySocket.getType( ) );
- }
-
- void ctors_TypeRaw()
- {
-#ifdef WNT
- oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
-// LLA: ? ::osl::Socket sSocket( sHandleRaw );
- CPPUNIT_ASSERT_MESSAGE( " type osl_Socket_TypeRaw socket create failed on UNX ", sHandleRaw != NULL);
-#else
- oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
- CPPUNIT_ASSERT_MESSAGE( " can't create socket with type osl_Socket_TypeRaw within UNX is ok.", sHandleRaw == NULL);
-#endif
- }
-
- void ctors_family_Ipx()
- {
- oslSocket sHandleIpx = osl_createSocket( osl_Socket_FamilyIpx, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- CPPUNIT_ASSERT_MESSAGE( " family osl_Socket_FamilyIpx socket create failed! ", sHandleIpx != NULL);
- ::osl::Socket sSocket( sHandleIpx ); //, SAL_NO_ACQUIRE );
- t_print("#Type is %d \n", sSocket.getType( ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for create new Socket instance that family is osl_Socket_FamilyIpx",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_copy_ctor );
- CPPUNIT_TEST( ctors_TypeRaw );
- CPPUNIT_TEST( ctors_family_Ipx );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- /** testing the methods:
- inline Socket& SAL_CALL operator= ( oslSocket socketHandle);
- inline Socket& SAL_CALL operator= (const Socket& sock);
- inline sal_Bool SAL_CALL operator==( const Socket& rSocket ) const ;
- inline sal_Bool SAL_CALL operator==( const oslSocket socketHandle ) const;
- */
-
- class operators : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- /** test writer's comment:
-
- the assignment operator does not support direct assinment like:
- ::osl::Socket sSocket = sHandle.
- */
- void operators_assignment_handle()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::Socket assignSocket = sSocket.getHandle();
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void operators_assignment()
- {
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket assignSocket = sSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void operators_equal_handle_001()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket equalSocket = sSocket;
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check equal.",
- equalSocket == sHandle );
- }
-
- void operators_equal_handle_002()
- {
- /// Socket constructor.
- ::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check unequal.",
- !( equalSocket == sHandle ) );
- }
-
- void operators_equal_001()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket equalSocket( sSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal function: check equal.",
- equalSocket == sSocket );
- }
-
- void operators_equal_002()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_002 function: check unequal.",
- !( equalSocket == sSocket ) );
- }
-
- CPPUNIT_TEST_SUITE( operators );
- CPPUNIT_TEST( operators_assignment_handle );
- CPPUNIT_TEST( operators_assignment );
- CPPUNIT_TEST( operators_equal_handle_001 );
- CPPUNIT_TEST( operators_equal_handle_002 );
- CPPUNIT_TEST( operators_equal_001 );
- CPPUNIT_TEST( operators_equal_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class operators
-
- /** testing the methods:
- inline void SAL_CALL shutdown( oslSocketDirection Direction = osl_Socket_DirReadWrite );
- inline void SAL_CALL close();
- */
-
- class close : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void close_001()
- {
- ::osl::Socket sSocket(sHandle);
- sSocket.close();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close_001 function: this function is reserved for test.",
- sSocket.getHandle() == sHandle );
- }
-
- void close_002()
- {
-//#if defined(LINUX)
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, aHostIp1 );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
- //when accepting, close the socket, the thread will not block for accepting
- //man close:Any locks held on the file it was associated with, and owned by the process, are removed
- asSocket.close();
- //thread_sleep( 2 );
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
-//#endif
- }
-
- // to cover "if ( pSockAddrIn->sin_addr.s_addr == htonl(INADDR_ANY) )" in osl_closeSocket( )
- void close_003()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, aHostIpZero );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
- asSocket.close();
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
- }
-
- CPPUNIT_TEST_SUITE( close );
- CPPUNIT_TEST( close_001 );
- CPPUNIT_TEST( close_002 );
- CPPUNIT_TEST( close_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class close
-
- /** testing the method:
- inline void SAL_CALL getLocalAddr( SocketAddr &Addr ) const;
- */
-
- class getLocalAddr : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- // get the Address of the local end of the socket
- void getLocalAddr_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIp1, IP_PORT_MYPORT8 );
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString("Socket bind fail:") + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
-
- sSocket.getLocalAddr( saLocalSocketAddr );
-
- sal_Bool bOK = compareUString( saLocalSocketAddr.getHostname( 0 ), sSocket.getLocalHost() ) ;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLocalAddr function: first create a new socket, then a socket address, bind them, and check the address.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalAddr );
- CPPUNIT_TEST( getLocalAddr_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalAddr
-
- /** testing the method:
- inline sal_Int32 SAL_CALL getLocalPort() const;
- */
-
- class getLocalPort : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getLocalPort_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIp1, IP_PORT_MYPORT7 ); // aHostIp1 localhost
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString("Socket bind fail:") + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- sal_Bool bOK = ( IP_PORT_MYPORT7 == sSocket.getLocalPort( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLocalPort function: first create a new socket, then a socket address, bind them, and check the port.",
- sal_True == bOK );
- }
-
- /** test writer's comment:
-
- the invalid port number can not be set by giving invalid port number
- such as 99999 or -1, it will convert to ( x mod 65535 ), so it will always be
- valid, the only instance that the getLocalPort returns OSL_INVALID_PORT
- is when saSocketAddr itself is an invalid one, that is , the IP or host name
- can not be found, then the created socket address is not valid.
- */
- void getLocalPort_002()
- {
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_TELNET);
-#ifdef WNT
- ::osl::Socket sSocket(sHandle);
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
- sSocket.bind( saBindSocketAddr );
- //Invalid IP, so bind should fail
- ::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )),
- ::rtl::OUString::valueOf((sal_Int32)OSL_INVALID_PORT),
- "test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned.");
- sal_Bool bOK = ( OSL_INVALID_PORT == sSocket.getLocalPort( ) );
- (void)bOK;
-#else
- //on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT
- ::rtl::OUString suError ("on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT, but can not create Addr of that case");
-#endif
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_False );
-
- }
-
- void getLocalPort_003()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_INVAL);
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString("Socket bind fail:") + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- ::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )),
- ::rtl::OUString("34463"),
- "test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned");
- sal_Bool bOK = ( sSocket.getLocalPort( ) >= 1 && sSocket.getLocalPort( ) <= 65535);
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalPort );
- CPPUNIT_TEST( getLocalPort_001 );
-// LLA: CPPUNIT_TEST( getLocalPort_002 );
- CPPUNIT_TEST( getLocalPort_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalPort
-
- /** testing the method:
- inline ::rtl::OUString SAL_CALL getLocalHost() const;
-
- Mindyliu: on Linux, at first it will check the binded in /etc/hosts, if it has the binded IP, it will return the hostname in it;
- else if the binded IP is "127.0.0.1", it will return "localhost", if it's the machine's ethernet ip such as "129.158.217.90", it
- will return hostname of current processor such as "aegean.PRC.Sun.COM"
- */
-
- class getLocalHost : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getLocalHost_001()
- {
- ::osl::Socket sSocket(sHandle);
- //port number from IP_PORT_HTTP1 to IP_PORT_MYPORT6, mindyliu
- ::osl::SocketAddr saBindSocketAddr( aHostIp1, IP_PORT_MYPORT6 );
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString("Socket bind fail:") + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- sal_Bool bOK;
- ::rtl::OUString suError;
-#ifdef WNT
- bOK = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
- suError = outputError(sSocket.getLocalHost( ), getThisHostname( ),
-"test for getLocalHost function: create localhost socket and check name");
-#else
- ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) "localhost" );
- sal_Bool bRes1, bRes2;
- bRes1 = compareUString( sSocket.getLocalHost( ), aUString ) ;
- bRes2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname(0) ) ;
- bOK = bRes1 || bRes2;
- suError = outputError(sSocket.getLocalHost( ), aUString, "test for getLocalHost function: create localhost socket and check name");
-#endif
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- void getLocalHost_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_POP3);
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );
- //Invalid IP, so bind should fail
- sal_Bool bOK = compareUString( sSocket.getLocalHost( ), aNullURL ) ;
- ::rtl::OUString suError = outputError(sSocket.getLocalHost( ), aNullURL, "test for getLocalHost function: getLocalHost with invalid SocketAddr");
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalHost );
- CPPUNIT_TEST( getLocalHost_001 );
- CPPUNIT_TEST( getLocalHost_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalHost
-
- /** testing the methods:
- inline void SAL_CALL getPeerAddr( SocketAddr & Addr) const;
- inline sal_Int32 SAL_CALL getPeerPort() const;
- inline ::rtl::OUString SAL_CALL getPeerHost() const;
- */
- class getPeer : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void getPeer_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind '127.0.0.1' address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// get peer information
- csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected.
- sal_Int32 peerPort = csConnectorSocket.getPeerPort( );
- ::rtl::OUString peerHost = csConnectorSocket.getPeerHost( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPeer function: setup a connection and then get the peer address, port and host from client side.",
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) )&&
- ( sal_True == compareUString( peerHost, saLocalSocketAddr.getHostname( 0 ) ) ) &&
- ( peerPort == saLocalSocketAddr.getPort( ) ));
- }
-
- CPPUNIT_TEST_SUITE( getPeer );
- CPPUNIT_TEST( getPeer_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getPeer
-
- /** testing the methods:
- inline sal_Bool SAL_CALL bind(const SocketAddr& LocalInterface);
- */
-
- class bind : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void bind_001()
- {
- ::osl::Socket sSocket(sHandle);
- //bind must use local IP address ---mindyliu
- ::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_MYPORT5 );
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "Socket bind fail.", sal_True == bOK1 );
-
- sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname( ) ) ;
-
- sSocket.close();
- CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.", sal_True == bOK2 );
- }
-
- void bind_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_NETBIOS );
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1); // sal_True);
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
-
- CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.",
- ( sal_False == bOK1 ) && ( sal_False == bOK2 ) );
- }
-
- CPPUNIT_TEST_SUITE( bind );
- CPPUNIT_TEST( bind_001 );
- CPPUNIT_TEST( bind_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class bind
-
- /** testing the methods:
- inline sal_Bool SAL_CALL isRecvReady(const TimeValue *pTimeout = 0) const;
-
- */
- class isRecvReady : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void isRecvReady_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT1 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT1 );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, 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 );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// is receive ready?
- sal_Bool bOK3 = asAcceptorSocket.isRecvReady( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isRecvReady function: setup a connection and then check if it can transmit data.",
- ( sal_True == bOK3 ) );
- }
-
- CPPUNIT_TEST_SUITE( isRecvReady );
- CPPUNIT_TEST( isRecvReady_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isRecvReady
-
- /** testing the methods:
- inline sal_Bool SAL_CALL isSendReady(const TimeValue *pTimeout = 0) const;
- */
- class isSendReady : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void isSendReady_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, 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 );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// is send ready?
- sal_Bool bOK3 = csConnectorSocket.isSendReady( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isSendReady function: setup a connection and then check if it can transmit data.",
- ( sal_True == bOK3 ) );
- }
-
- CPPUNIT_TEST_SUITE( isSendReady );
- CPPUNIT_TEST( isSendReady_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isSendReady
-
- /** testing the methods:
- inline oslSocketType SAL_CALL getType() const;
-
- */
-
- class getType : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getType_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void getType_002()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeDgram == sSocket.getType( ) );
- }
-
-#ifdef UNX
- // mindy: since on LINUX and SOLARIS, Raw type socket can not be created, so do not test getType() here
- // mindy: and add one test case to test creating Raw type socket--> ctors_TypeRaw()
- void getType_003()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.this is not passed in (LINUX, SOLARIS), the osl_Socket_TypeRaw, type socket can not be created.",
- sal_True);
- }
-#else
- void getType_003()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeRaw == sSocket.getType( ) );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getType );
- CPPUNIT_TEST( getType_001 );
- CPPUNIT_TEST( getType_002 );
- CPPUNIT_TEST( getType_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getType
-
- /** testing the methods:
- inline sal_Int32 SAL_CALL getOption(
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket) const;
-
- inline sal_Int32 getOption( oslSocketOption option ) const;
-
- */
-
- class getOption : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- /** test writer's comment:
-
- in oslSocketOption, the osl_Socket_OptionType denote 1 as osl_Socket_TypeStream.
- 2 as osl_Socket_TypeDgram, etc which is not mapping the oslSocketType enum. differ
- in 1.
- */
-
- void getOption_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
- sal_Int32 * pType = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pType = 0;
- sSocket.getOption( osl_Socket_OptionType, pType, sizeof ( sal_Int32 ) );
- sal_Bool bOK = ( SOCK_STREAM == *pType );
- // there is a TypeMap(socket.c) which map osl_Socket_TypeStream to SOCK_STREAM on UNX, and SOCK_STREAM != osl_Socket_TypeStream
- //sal_Bool bOK = ( TYPE_TO_NATIVE(osl_Socket_TypeStream) == *pType );
- free( pType );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get type option of socket.",
- sal_True == bOK );
- }
-
- // getsockopt error
- void getOption_004()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool * pbDontRoute = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
- sal_Int32 nRes = sSocket.getOption( osl_Socket_OptionInvalid, pbDontRoute, sizeof ( sal_Bool ) );
- free( pbDontRoute );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get invalid option of socket, should return -1.",
- nRes == -1 );
- }
-
- void getOption_simple_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool bOK = ( sal_False == sSocket.getOption( osl_Socket_OptionDontRoute ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.",
- sal_True == bOK );
- }
-
- void getOption_simple_002()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool bOK = ( sal_False == sSocket.getOption( osl_Socket_OptionDebug ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getOption );
- CPPUNIT_TEST( getOption_001 );
- CPPUNIT_TEST( getOption_004 );
- CPPUNIT_TEST( getOption_simple_001 );
- CPPUNIT_TEST( getOption_simple_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getOption
-
- /** testing the methods:
- inline sal_Bool SAL_CALL setOption( oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket ) const;
- */
-
- class setOption : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
-// LLA: maybe there is an error in the source,
-// as long as I remember, if a derived class do not overload all ctors there is a problem.
-
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- asAcceptorSocket.close( );
- }
-
- // LLA:
- // getSocketOption returns BufferLen, or -1 if something failed
-
- // setSocketOption returns sal_True, if option could stored
- // else sal_False
-
- void setOption_001()
- {
- /// set and get option.
- int nBufferLen = sizeof ( sal_Int32);
- // LLA: SO_DONTROUTE expect an integer boolean, what ever it is, it's not sal_Bool!
-
- sal_Int32 * pbDontRouteSet = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pbDontRouteSet = 1; // sal_True;
-
- sal_Int32 * pGetBuffer = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pGetBuffer = 0;
-
- // maybe asAcceptorSocket is not right initialized
- sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontRouteSet, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b1 ) );
- sal_Int32 n2 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pGetBuffer, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption function failed.", ( n2 == nBufferLen ) );
-
- // on Linux, the value of option is 1, on Solaris, it's 16, but it's not important the exact value,
- // just judge it is zero or not!
- sal_Bool bOK = ( 0 != *pGetBuffer );
- t_print("#setOption_001: getOption is %" SAL_PRIdINT32 " \n", *pGetBuffer);
-
- // toggle check, set to 0
- *pbDontRouteSet = 0;
-
- sal_Bool b3 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontRouteSet, sizeof ( sal_Int32 ) );
- CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b3 ) );
- sal_Int32 n4 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pGetBuffer, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption (DONTROUTE) function failed.", ( n4 == nBufferLen ) );
-
- sal_Bool bOK2 = ( 0 == *pGetBuffer );
-
- t_print("#setOption_001: getOption is %" SAL_PRIdINT32 " \n", *pGetBuffer);
-
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
- ( sal_True == bOK ) && (sal_True == bOK2) );
-
- free( pbDontRouteSet );
- free( pGetBuffer );
- }
-
- void setOption_002()
- {
- /// set and get option.
-
- // sal_Int32 * pbLingerSet = ( sal_Int32 * )malloc( nBufferLen );
- // *pbLingerSet = 7;
- // sal_Int32 * pbLingerGet = ( sal_Int32 * )malloc( nBufferLen );
- /* struct */linger aLingerSet;
- sal_Int32 nBufferLen = sizeof( struct linger );
- aLingerSet.l_onoff = 1;
- aLingerSet.l_linger = 7;
-
- linger aLingerGet;
-
- asAcceptorSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, nBufferLen );
-
- sal_Int32 n1 = asAcceptorSocket.getOption( osl_Socket_OptionLinger, &aLingerGet, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption (SO_LINGER) function failed.", ( n1 == nBufferLen ) );
-
- //t_print("#setOption_002: getOption is %d \n", aLingerGet.l_linger);
- sal_Bool bOK = ( 7 == aLingerGet.l_linger );
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check. ",
- sal_True == bOK );
-
- }
-
- void setOption_003()
- {
- linger aLingerSet;
- aLingerSet.l_onoff = 1;
- aLingerSet.l_linger = 7;
-
- sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, 0 );
- printUString( asAcceptorSocket.getErrorAsString() );
- CPPUNIT_ASSERT_MESSAGE( "setOption (SO_LINGER) function failed for optlen is 0.",
- ( b1 == sal_False ) );
- }
-
- void setOption_simple_001()
- {
- /// set and get option.
- asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, 1 ); //sal_True );
- sal_Bool bOK = ( 0 != asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
-
- t_print("setOption_simple_001(): getoption is %d \n", (int) asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
- ( sal_True == bOK ) );
- }
-
- void setOption_simple_002()
- {
- /// set and get option.
- // LLA: this does not work, due to the fact that SO_LINGER is a structure
-// LLA: asAcceptorSocket.setOption( osl_Socket_OptionLinger, 7 );
-// LLA: sal_Bool bOK = ( 7 == asAcceptorSocket.getOption( osl_Socket_OptionLinger ) );
-
-// LLA: CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
-// LLA: ( sal_True == bOK ) );
- }
-
- CPPUNIT_TEST_SUITE( setOption );
- CPPUNIT_TEST( setOption_001 );
- CPPUNIT_TEST( setOption_002 );
- CPPUNIT_TEST( setOption_003 );
- CPPUNIT_TEST( setOption_simple_001 );
-// LLA: CPPUNIT_TEST( setOption_simple_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class setOption
-
- /** testing the method:
- inline sal_Bool SAL_CALL enableNonBlockingMode( sal_Bool bNonBlockingMode);
- */
- class enableNonBlockingMode : public CppUnit::TestFixture
- {
- public:
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void enableNonBlockingMode_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::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 );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default.
- sal_Bool bOK = sal_True;
- asAcceptorSocket.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for enableNonBlockingMode function: launch a server socket and make it non blocking. if it can pass the acceptConnection statement, it is non-blocking",
- ( sal_True == bOK ) );
- }
-
- CPPUNIT_TEST_SUITE( enableNonBlockingMode );
- CPPUNIT_TEST( enableNonBlockingMode_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class enableNonBlockingMode
-
- /** testing the method:
- inline sal_Bool SAL_CALL isNonBlockingMode() const;
- */
- class isNonBlockingMode : public CppUnit::TestFixture
- {
- public:
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void isNonBlockingMode_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT );
- ::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 );
-
- sal_Bool bOK3 = asAcceptorSocket.isNonBlockingMode( );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default.
- sal_Bool bOK4 = asAcceptorSocket.isNonBlockingMode( );
- asAcceptorSocket.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isNonBlockingMode function: launch a server socket and make it non blocking. it is expected to change from blocking mode to non-blocking mode.",
- ( sal_False == bOK3 ) && ( sal_True == bOK4 ) );
- }
-
- CPPUNIT_TEST_SUITE( isNonBlockingMode );
- CPPUNIT_TEST( isNonBlockingMode_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isNonBlockingMode
-
- /** testing the method:
- inline void SAL_CALL clearError() const;
- */
- class clearError : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void clearError_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_HTTP2 );
- ::osl::SocketAddr saLocalSocketAddr;
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
- oslSocketError seBind = sSocket.getError( );
- sSocket.clearError( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for clearError function: trick an error called sSocket.getError( ), and then clear the error states, check the result.",
- osl_Socket_E_None == sSocket.getError( ) && seBind != osl_Socket_E_None );
- }
-
- CPPUNIT_TEST_SUITE( clearError );
- CPPUNIT_TEST( clearError_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class clearError
-
- /** testing the methods:
- inline oslSocketError getError() const;
- inline ::rtl::OUString getErrorAsString( ) const;
- */
- class getError : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getError_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIp1, IP_PORT_FTP );
- ::osl::SocketAddr saLocalSocketAddr;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getError function: should get no error.",
- osl_Socket_E_None == sSocket.getError( ) );
- }
-
- void getError_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( aHostIpInval, IP_PORT_FTP );
- ::osl::SocketAddr saLocalSocketAddr;
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
- //on Solaris, the error no is EACCES, but it has no mapped value, so getError() returned osl_Socket_E_InvalidError.
-#if defined(SOLARIS)
- CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. ",
- osl_Socket_E_InvalidError == sSocket.getError( ) );
-#else
- //while on Linux & Win32, the errno is EADDRNOTAVAIL, getError returned osl_Socket_E_AddrNotAvail.
-
- CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. Passed on Linux & Win32",
- osl_Socket_E_AddrNotAvail == sSocket.getError( ) );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getError );
- CPPUNIT_TEST( getError_001 );
- CPPUNIT_TEST( getError_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getError
-
- /** testing the methods:
- inline oslSocket getHandle() const;
- */
-
- class getHandle : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getHandle_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::Socket assignSocket = sSocket.getHandle();
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void getHandle_002()
- {
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket assignSocket ( sSocket.getHandle( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( getHandle );
- CPPUNIT_TEST( getHandle_001 );
- CPPUNIT_TEST( getHandle_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getHandle
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::ctors, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::operators, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::close, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalAddr, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalPort, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getLocalHost, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getPeer, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::bind, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isRecvReady, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isSendReady, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getType, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getOption, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::setOption, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::enableNonBlockingMode, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::isNonBlockingMode, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::clearError, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getError, "osl_Socket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Socket::getHandle, "osl_Socket");
-
-} // namespace osl_Socket
-
-namespace osl_StreamSocket
-{
-
- /** testing the methods:
- inline StreamSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
-
- inline StreamSocket( const StreamSocket & );
-
- inline StreamSocket( oslSocket Socket , __sal_NoAcquire noacquire );
-
- inline StreamSocket( oslSocket Socket );
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void ctors_none()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the stream socket was created successfully.",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_acquire()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( sHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_no_acquire()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( sHandle, SAL_NO_ACQUIRE );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_copy_ctor()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- /// Socket copy constructor.
- ::osl::StreamSocket copySocket( ssSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor",
- osl_Socket_TypeStream == copySocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_copy_ctor );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- class send_recv: public CppUnit::TestFixture
- {
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- void send_recv1()
- {
- //client sent two strings, and server received, check the order and value
- ServerSocketThread myServerThread;
- ClientSocketThread myClientThread;
- myServerThread.create( );
- myClientThread.create( );
-
- //wait until the thread terminate
- myClientThread.join( );
- myServerThread.join( );
- sal_Char myStr[30] = "";
- strcat( myStr, pTestString1 );
- strcat( myStr, pTestString2 );
- sal_Int32 nRes = strcmp( myServerThread.pReadBuffer, myStr );
- CPPUNIT_ASSERT_MESSAGE(" test for send/recv with two threads: launch Server/Client threads, send data from client, check received data in Server thread.",
- nRes == 0 );
- }
-
- // error when recv
- void send_recv2()
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
- sal_Char pReadBuffer[30] = "";
-
- ClientSocketThread myClientThread;
- myClientThread.create( );
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
-
- asAcceptorSocket.bind( saLocalSocketAddr );
- asAcceptorSocket.listen( 1 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection( ssStreamConnection );
- sal_Int32 nReadNumber = ssStreamConnection.recv( pReadBuffer, 11 );
-
- myClientThread.join( ) ;
- ssStreamConnection.close();
- asAcceptorSocket.close();
- CPPUNIT_ASSERT_MESSAGE(" test for send/recv, recv error!", nReadNumber == -1 );
- }
-
- void write_read(sal_Int32 _nBufferSize, int _nValue)
- {
- //client sent two strings, and server received, check the order and value
- WriteSocketThread myServerThread(_nBufferSize, _nValue);
- ReadSocketThread myClientThread(_nBufferSize, _nValue);
- myServerThread.create( );
-// thread_sleep( 1 );
- myClientThread.create( );
-
- //wait until the thread terminate
- myClientThread.join( );
- myServerThread.join( );
-
- //Maximum Packet Size is ( ARPANET, MILNET = 1007 Ethernet (10Mb) = 1500
- // Proteon PRONET = 2046), so here test read 4000 bytes
- sal_Int32 nLength = myClientThread.getCount();
- bool bIsOk = myClientThread.isOk(); // check if the values are right.
-
- t_print("Length:=%d\n", (int) nLength);
- t_print(" bIsOk:=%d\n", bIsOk);
-
- CPPUNIT_ASSERT_MESSAGE(" test for write/read values with two threads: send data from server, check readed data in client.",
- nLength == _nBufferSize && bIsOk == true);
- }
-
- void write_read_001()
- {
- write_read(50, 10);
- }
- void write_read_002()
- {
- write_read(1024, 20);
- }
- void write_read_003()
- {
- write_read(4000, 1);
- }
- void write_read_004()
- {
- write_read(8192, 3);
- }
-
- CPPUNIT_TEST_SUITE( send_recv );
- CPPUNIT_TEST( write_read_001 );
- CPPUNIT_TEST( write_read_002 );
- CPPUNIT_TEST( write_read_003 );
- CPPUNIT_TEST( write_read_004 );
- CPPUNIT_TEST( send_recv1 );
- CPPUNIT_TEST( send_recv2 );
-// CPPUNIT_TEST( write_read );
- CPPUNIT_TEST_SUITE_END();
- }; // class send_recv
-
-class SendClientThread : public ClientSocketThread
-{
-protected:
-
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- if ( osl_Socket_Ok == csConnectorSocket.connect( saTargetSocketAddr, pTimeout ))
- {
-#if !SILENT_TEST
- sal_Int32 nWrite1 =
-#endif
- csConnectorSocket.write( pTestString1, 11 ); // "test socket"
-
-#if !SILENT_TEST
- sal_Int32 nWrite2 =
-#endif
- csConnectorSocket.write( pTestString2, strlen( pTestString2 ) + 1 );
- thread_sleep( 2 );
- csConnectorSocket.write( pTestString2, strlen( pTestString2 ) + 1 );
- t_print("nWrite1 is %d, nWrite2 is %d\n", (int)nWrite1, (int)nWrite2 );
- //thread_sleep( 1 );
- }
- else
- t_print("# SendClientThread: connect failed! \n");
-
- csConnectorSocket.close();
- free( pTimeout );
- }
-
-};
-
- class shutdown: public CppUnit::TestFixture
- {
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- // similar to close_002
- void shutdown_001()
- {
-#if defined(LINUX)
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, aHostIp1 );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
-
- //when accepting, shutdown the socket, the thread will not block for accepting
- asSocket.shutdown();
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK( ) == sal_True );
-#endif
- }
-
- void shutdown_002()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9);
- asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
- sal_Char pReadBuffer[40];
- SendClientThread mySendThread;
- mySendThread.create();
-
- asSocket.enableNonBlockingMode( sal_False );
- ::osl::StreamSocket ssConnectionSocket;
- oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
-
- /* set socket option SO_LINGER 0, so close immediately */
- linger aLingerSet;
- sal_Int32 nBufferLen = sizeof( struct linger );
- aLingerSet.l_onoff = 0;
- aLingerSet.l_linger = 0;
-
- ssConnectionSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, nBufferLen );
- thread_sleep( 1 );
- //sal_uInt32 nRecv1 = 0;
- sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
-
- //shutdown read after client the first send complete
- ssConnectionSocket.shutdown( osl_Socket_DirRead );
-
- sal_Int32 nRead2 = ssConnectionSocket.read( pReadBuffer + nRead1, 12 );
- sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 + nRead2, 12 );
- t_print("after read 2, nRead1 is %d, nRead2 is %d, nRead3 is %d \n", (int) nRead1, (int) nRead2, (int) nRead3 );
- mySendThread.join();
-
- ssConnectionSocket.close();
- asSocket.close();
-
- /* on Linux, if send is before shutdown(DirRead), can read, nRecv2 still > 0,
- http://dbforums.com/arch/186/2002/12/586417
- While on Solaris, after shutdown(DirRead), all read will return 0
- */
-#ifdef LINUX
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).",
- nRead1 > 0 && nRead3 == 0 );
-#else
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).",
- nRead1 > 0 && nRead2 == 0 && nRead3 == 0 );
-#endif
-
- }
-
- void shutdown_003()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT9);
- asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
- sal_Char pReadBuffer[40];
- SendClientThread mySendThread;
- mySendThread.create();
-
- asSocket.enableNonBlockingMode( sal_False );
- ::osl::StreamSocket ssConnectionSocket;
- oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
-
- thread_sleep( 1 );
- //shutdown write after client the first send complete
- ssConnectionSocket.shutdown( osl_Socket_DirWrite );
-
- // recv should not shutdown
- sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
-
- sal_Int32 nWrite = ssConnectionSocket.write( pReadBuffer, 11 );
- // still can read
- sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 , 12 );
- t_print("after read 2, nRead1 is %d, nWrite is %d, nRead3 is %d\n", (int) nRead1, (int) nWrite, (int) nRead3 );
- mySendThread.join();
- ssConnectionSocket.close();
- asSocket.close();
-
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not send(write).",
- nRead1 > 0 && nWrite == 0 && nRead3 > 0);
-
- }
-
- CPPUNIT_TEST_SUITE( shutdown );
- CPPUNIT_TEST( shutdown_001 );
- CPPUNIT_TEST( shutdown_002 );
- CPPUNIT_TEST( shutdown_003 );
- CPPUNIT_TEST_SUITE_END();
- }; // class shutdown
-
- class isExceptionPending: public CppUnit::TestFixture
- {
- public:
- void isExPending_001()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sal_Bool bOk = asSocket.isExceptionPending( pTimeout );
- free( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isExceptionPending.",
- bOk == sal_False );
- }
-
- /**tester's comments: lack of a case that return sal_True, do not know when it will return sal_True*/
-
- CPPUNIT_TEST_SUITE( isExceptionPending );
- CPPUNIT_TEST( isExPending_001 );
- CPPUNIT_TEST_SUITE_END();
- }; // class isExceptionPending
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamSocket::ctors, "osl_StreamSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamSocket::send_recv, "osl_StreamSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamSocket::shutdown, "osl_StreamSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamSocket::isExceptionPending, "osl_StreamSocket");
-
-} // namespace osl_StreamSocket
-
-namespace osl_ConnectorSocket
-{
-
- /** testing the method:
- ConnectorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::ConnectorSocket csSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the connector socket was created successfully.",
- osl_Socket_TypeStream == csSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- /** testing the method:
- oslSocketResult SAL_CALL connect(const SocketAddr& TargetHost, const TimeValue* pTimeout = 0);
- */
-
- class connect : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- // sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void connect_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT2 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT2 );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, 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( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, 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( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr2( aHostIpInval1, IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult1 = csConnectorSocket.connect( saTargetSocketAddr1, pTimeout );
- oslSocketResult eResult2 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout );
- CloseSocketThread myCloseThread( csConnectorSocket );
- oslSocketResult eResult3 = csConnectorSocket.connect( saTargetSocketAddr2, pTimeout );
- myCloseThread.join();
- CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult1 &&
- osl_Socket_Error == eResult2 && osl_Socket_Error == eResult3 );
-
- }
-
- // really an error in non-blocking mode
- void connect_004()
- {
- ::osl::SocketAddr saTargetSocketAddr( aHostIpInval1, IP_PORT_MYPORT3 );
-
- csConnectorSocket.enableNonBlockingMode( sal_True );
-
- oslSocketResult eResult = csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
- CPPUNIT_ASSERT_MESSAGE( "connect should failed.", osl_Socket_Error == eResult );
- }
- /** here need a case: immediate connection, say in non-blocking mode connect return osl_Socket_Ok
- */
-
- CPPUNIT_TEST_SUITE( connect );
- CPPUNIT_TEST( connect_001 );
- CPPUNIT_TEST( connect_002 );
- CPPUNIT_TEST( connect_003 );
- CPPUNIT_TEST( connect_004 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class connect
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ConnectorSocket::ctors, "osl_ConnectorSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ConnectorSocket::connect, "osl_ConnectorSocket");
-
-} // namespace osl_ConnectorSocket
-
-namespace osl_AcceptorSocket
-{
-
- /** testing the methods:
- inline AcceptorSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- 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();
-
- }; // class ctors
-
- /** testing the method:
- inline sal_Bool SAL_CALL listen(sal_Int32 MaxPendingConnections= -1);
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection);
- inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection, SocketAddr & PeerAddr);
- */
-
- class listen_accept : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1);
- // sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- // sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void listen_accept_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT3 );
- ::osl::StreamSocket ssConnection;
-
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- CPPUNIT_ASSERT_MESSAGE( "test for listen_accept function: try to create a connection with remote host, using listen and accept.",
- ( osl_Socket_Ok == eResult ) );
- }
-
- void listen_accept_002()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT4 );
- ::osl::SocketAddr saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT4 );
- ::osl::SocketAddr saPeerSocketAddr( aHostIp2, 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 ) ) );
- }
-
- void listen_accept_003()
- {
-
- }
-
- CPPUNIT_TEST_SUITE( listen_accept );
- CPPUNIT_TEST( listen_accept_001 );
- CPPUNIT_TEST( listen_accept_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class listen_accept
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::ctors, "osl_AcceptorSocket");
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::operator_assign, "osl_AcceptorSocket");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_AcceptorSocket::listen_accept, "osl_AcceptorSocket");
-
-} // namespace osl_AcceptorSocket
-
-namespace osl_DatagramSocket
-{
-
- /** testing the methods:
- inline DatagramSocket(oslAddrFamily Family= osl_Socket_FamilyInet,
- oslProtocol Protocol= osl_Socket_ProtocolIp,
- oslSocketType Type= osl_Socket_TypeDgram);
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_001()
- {
- /// Socket constructor.
- ::osl::DatagramSocket dsSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_001 constructor function: check if the datagram socket was created successfully.",
- osl_Socket_TypeDgram == dsSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
-/**thread do sendTo, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
-*/
-class TalkerThread : public Thread
-{
-protected:
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::DatagramSocket dsSocket;
-
- void SAL_CALL run( )
- {
- dsSocket.sendTo( saTargetSocketAddr, pTestString1, strlen( pTestString1 ) + 1 ); // "test socket"
- dsSocket.shutdown();
- }
-
- void SAL_CALL onTerminated( )
- {
- }
-
-public:
- TalkerThread( ):
- saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT9 )
- {
- }
-
- ~TalkerThread( )
- {
- if ( isRunning( ) )
- t_print("# error: TalkerThread not terminated normally.\n" );
- }
-};
-
-/**thread do listen, refer to http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingv.shtml
-*/
-class ListenerThread : public Thread
-{
-protected:
- ::osl::SocketAddr saTargetSocketAddr;
- ::osl::DatagramSocket dsSocket;
-
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, IP_PORT_MYPORT10 );
- dsSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- if ( dsSocket.bind( saLocalSocketAddr ) == sal_False )
- {
- t_print("DatagramSocket bind failed \n");
- return;
- }
- //blocking mode: default
-#if !SILENT_TEST
- sal_Int32 nRecv =
-#endif
- dsSocket.recvFrom( pRecvBuffer, 30, &saTargetSocketAddr);
- t_print("After recvFrom, nRecv is %d\n", (int) nRecv);
- }
-
- void SAL_CALL onTerminated( )
- {
- }
-
-public:
- sal_Char pRecvBuffer[30];
- ListenerThread( ):
- saTargetSocketAddr( aHostIp1, IP_PORT_MYPORT10 )
- {
- pRecvBuffer[0] = '\0';
- }
-
- ~ListenerThread( )
- {
- if ( isRunning( ) )
- t_print("# error: ListenerThread not terminated normally.\n" );
- }
-
-};
-
- /** testing the methods:
- inline sal_Int32 DatagramSocket::recvFrom(void* pBuffer, sal_uInt32 BufferSize,
- SocketAddr* pSenderAddr, oslSocketMsgFlag Flag )
- inline sal_Int32 DatagramSocket::sendTo( const SocketAddr& ReceiverAddr,
- const void* pBuffer, sal_uInt32 BufferSize, oslSocketMsgFlag Flag )
- */
-
- class sendTo_recvFrom : public CppUnit::TestFixture
- {
- public:
-
- void sr_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIp1, 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( aHostIp1, IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
-
- //listener thread construct a DatagramSocket, recvFrom waiting for data, then main thread sendto data
- ListenerThread myListenThread;
- myListenThread.create();
- //to grantee the recvFrom is before sendTo
- thread_sleep( 1 );
-
- sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
-
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo failed: nSend <= 0.", nSend > 0);
-
- myListenThread.join();
- //t_print("#received buffer is %s# \n", myListenThread.pRecvBuffer);
-
- sal_Bool bOk = ( strcmp( myListenThread.pRecvBuffer, pTestString2) == 0 );
-
- CPPUNIT_ASSERT_MESSAGE( "test for sendTo/recvFrom function: create a listener thread and sendTo in the main thread, check if the datagram socket can communicate successfully.",
- bOk == sal_True );
- }
-
- //sendTo error, return -1; recvFrom error, return -1
- void sr_003()
- {
- ::osl::SocketAddr saListenSocketAddr( aHostIpInval1, IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
- // Transport endpoint is not connected
- sal_Int32 nSend = dsSocket.sendTo( saListenSocketAddr, pTestString2, strlen( pTestString2 ) + 1 );
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.",
- nSend == -1 );
- }
-
- void sr_004()
- {
- ::osl::SocketAddr saListenSocketAddr1( aHostIpInval1, IP_PORT_MYPORT10 );
- ::osl::SocketAddr saListenSocketAddr2( aHostIp2, IP_PORT_MYPORT10 );
- ::osl::DatagramSocket dsSocket;
-
- dsSocket.enableNonBlockingMode( sal_True );
-
- sal_Char pReadBuffer[30];
- //sal_Int32 nRecv1 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
-
- // will block ?
- CloseSocketThread myThread( dsSocket );
- myThread.create();
- sal_Int32 nRecv2 = dsSocket.recvFrom( pReadBuffer, 30, &saListenSocketAddr1 );
- myThread.join();
- //t_print("#nRecv1 is %d nRecv2 is %d\n", nRecv1, nRecv2 );
- CPPUNIT_ASSERT_MESSAGE( "DatagramSocket sendTo should fail: nSend <= 0.",
- nRecv2 == -1 );
- }
-
- CPPUNIT_TEST_SUITE( sendTo_recvFrom );
- CPPUNIT_TEST( sr_001 );
- CPPUNIT_TEST( sr_002 );
- CPPUNIT_TEST( sr_003 );
- CPPUNIT_TEST( sr_004 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class sendTo_recvFrom
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_DatagramSocket::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_DatagramSocket::sendTo_recvFrom);
-
-} // 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.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket.xsce b/sal/qa/osl/socket/osl_Socket.xsce
deleted file mode 100644
index f36fce501197..000000000000
--- a/sal/qa/osl/socket/osl_Socket.xsce
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-osl_Socket.ctors.ctors_family_Ipx
-osl_SocketAddr.getHostname.getHostname_002
-
-osl_StreamSocket.send_recv.write_read_003 unxsols
-osl_StreamSocket.send_recv.write_read_004 unxsols
diff --git a/sal/qa/osl/socket/osl_Socket2.cxx b/sal/qa/osl/socket/osl_Socket2.cxx
deleted file mode 100644
index 33f928b82dce..000000000000
--- a/sal/qa/osl/socket/osl_Socket2.cxx
+++ /dev/null
@@ -1,1391 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(OS)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(OS)" != "WNT"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-#include <sal/types.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "sockethelper.hxx"
-
-using namespace osl;
-using ::rtl::OUString;
-
-#define IP_PORT_FTP 21
-#define IP_PORT_TELNET 23
-#define IP_PORT_HTTP2 8080
-#define IP_PORT_INVAL 99999
-#define IP_PORT_POP3 110
-#define IP_PORT_NETBIOS 139
-#define IP_PORT_MYPORT 8881
-#define IP_PORT_MYPORT1 8882
-#define IP_PORT_MYPORT5 8886
-#define IP_PORT_MYPORT6 8887
-#define IP_PORT_MYPORT7 8895
-#define IP_PORT_MYPORT8 8896
-#define IP_PORT_MYPORT9 8897
-
-// helper functions
-
-// just used to test socket::close() when accepting
-class AcceptorThread : public Thread
-{
- ::osl::AcceptorSocket asAcceptorSocket;
- ::rtl::OUString aHostIP;
- sal_Bool bOK;
-protected:
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# AcceptorSocket bind address failed.\n" ) ;
- return;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# AcceptorSocket listen address failed.\n" ) ;
- return;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- bOK = sal_True;
- t_print("AcceptorThread: acceptConnection failed! \n");
- }
- }
-public:
- AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString const& aBindIP )
- : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
- {
- bOK = sal_False;
- }
-
- sal_Bool isOK() { return bOK; }
-
- ~AcceptorThread( )
- {
- if ( isRunning( ) )
- {
- asAcceptorSocket.shutdown();
- t_print("# error: Acceptor thread not terminated.\n" );
- }
- }
-};
-
-namespace osl_Socket
-{
-
- /** testing the methods:
- inline Socket( );
- inline Socket( const Socket & socket );
- inline Socket( oslSocket socketHandle );
- inline Socket( oslSocket socketHandle, __sal_NoAcquire noacquire );
- */
-
- /** test writer's comment:
-
- class Socket can not be initialized by its protected constructor, though the protected
- constructor is the most convenient way to create a new socket.
- it only allow the method of C function osl_createSocket like:
- ::osl::Socket sSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream,
- osl_Socket_ProtocolIp ) );
- the use of C method lost some of the transparent of tester using C++ wrapper.
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void ctors_none()
- {
- /// Socket constructor.
- // ::osl::Socket sSocket();
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the socket was created successfully, if no exception occurred",
- 1 == 1 );
- }
-
- void ctors_acquire()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void ctors_no_acquire()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle, SAL_NO_ACQUIRE );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void ctors_copy_ctor()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket copySocket( sSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor",
- osl_Socket_TypeStream == copySocket.getType( ) );
- }
-
- void ctors_TypeRaw()
- {
-#ifdef WNT
- oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
-// LLA: ? ::osl::Socket sSocket( sHandleRaw );
- CPPUNIT_ASSERT_MESSAGE( " type osl_Socket_TypeRaw socket create failed on UNX ", sHandleRaw != NULL);
-#else
- oslSocket sHandleRaw = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
- CPPUNIT_ASSERT_MESSAGE( " can't create socket with type osl_Socket_TypeRaw within UNX is ok.", sHandleRaw == NULL);
-#endif
- }
-
- void ctors_family_Ipx()
- {
- oslSocket sHandleIpx = osl_createSocket( osl_Socket_FamilyIpx, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- CPPUNIT_ASSERT_MESSAGE( " family osl_Socket_FamilyIpx socket create failed! ", sHandleIpx != NULL);
- ::osl::Socket sSocket( sHandleIpx ); //, SAL_NO_ACQUIRE );
- t_print("#Type is %d \n", sSocket.getType( ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for create new Socket instance that family is osl_Socket_FamilyIpx",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_copy_ctor );
- CPPUNIT_TEST( ctors_TypeRaw );
- //TODO: Check if family_Ipx is still in use?
- // CPPUNIT_TEST( ctors_family_Ipx );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- /** testing the methods:
- inline Socket& SAL_CALL operator= ( oslSocket socketHandle);
- inline Socket& SAL_CALL operator= (const Socket& sock);
- inline sal_Bool SAL_CALL operator==( const Socket& rSocket ) const ;
- inline sal_Bool SAL_CALL operator==( const oslSocket socketHandle ) const;
- */
-
- class operators : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- /** test writer's comment:
-
- the assignment operator does not support direct assinment like:
- ::osl::Socket sSocket = sHandle.
- */
- void operators_assignment_handle()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::Socket assignSocket = sSocket.getHandle();
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void operators_assignment()
- {
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket assignSocket = sSocket;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void operators_equal_handle_001()
- {
- /// Socket constructor.
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket equalSocket = sSocket;
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check equal.",
- equalSocket == sHandle );
- }
-
- void operators_equal_handle_002()
- {
- /// Socket constructor.
- ::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_handle_001 function: check unequal.",
- !( equalSocket == sHandle ) );
- }
-
- void operators_equal_001()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket equalSocket( sSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal function: check equal.",
- equalSocket == sSocket );
- }
-
- void operators_equal_002()
- {
- ::osl::Socket sSocket( sHandle );
- /// Socket copy constructor.
- ::osl::Socket equalSocket( osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp ) );
-
- CPPUNIT_ASSERT_MESSAGE(" test for operators_equal_002 function: check unequal.",
- !( equalSocket == sSocket ) );
- }
-
- CPPUNIT_TEST_SUITE( operators );
- CPPUNIT_TEST( operators_assignment_handle );
- CPPUNIT_TEST( operators_assignment );
- CPPUNIT_TEST( operators_equal_handle_001 );
- CPPUNIT_TEST( operators_equal_handle_002 );
- CPPUNIT_TEST( operators_equal_001 );
- CPPUNIT_TEST( operators_equal_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class operators
-
- /** testing the methods:
- inline void SAL_CALL shutdown( oslSocketDirection Direction = osl_Socket_DirReadWrite );
- inline void SAL_CALL close();
- */
-
- class close : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void close_001()
- {
- ::osl::Socket sSocket(sHandle);
- sSocket.close();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close_001 function: this function is reserved for test.",
- sSocket.getHandle() == sHandle );
- }
-
- void close_002()
- {
-//#if defined(LINUX)
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, rtl::OUString("127.0.0.1") );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
- //when accepting, close the socket, the thread will not block for accepting
- //man close:Any locks held on the file it was associated with, and owned by the process, are removed
- asSocket.close();
- //thread_sleep( 2 );
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
-//#endif
- }
-
- // to cover "if ( pSockAddrIn->sin_addr.s_addr == htonl(INADDR_ANY) )" in osl_closeSocket( )
- void close_003()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, rtl::OUString("0.0.0.0") );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
- asSocket.close();
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK() == sal_True );
- }
-
- CPPUNIT_TEST_SUITE( close );
- CPPUNIT_TEST( close_001 );
- CPPUNIT_TEST( close_002 );
- CPPUNIT_TEST( close_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class close
-
- /** testing the method:
- inline void SAL_CALL getLocalAddr( SocketAddr &Addr ) const;
- */
-
- class getLocalAddr : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- // get the Address of the local end of the socket
- void getLocalAddr_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT8 );
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString("Socket bind fail:") + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
-
- sSocket.getLocalAddr( saLocalSocketAddr );
-
- sal_Bool bOK = compareUString( saLocalSocketAddr.getHostname( 0 ), sSocket.getLocalHost() ) ;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLocalAddr function: first create a new socket, then a socket address, bind them, and check the address.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalAddr );
- CPPUNIT_TEST( getLocalAddr_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalAddr
-
- /** testing the method:
- inline sal_Int32 SAL_CALL getLocalPort() const;
- */
-
- class getLocalPort : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getLocalPort_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT7 ); // aHostIp1 localhost
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString("Socket bind fail:") + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- sal_Bool bOK = ( IP_PORT_MYPORT7 == sSocket.getLocalPort( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getLocalPort function: first create a new socket, then a socket address, bind them, and check the port.",
- sal_True == bOK );
- }
-
- /** test writer's comment:
-
- the invalid port number can not be set by giving invalid port number
- such as 99999 or -1, it will convert to ( x mod 65535 ), so it will always be
- valid, the only instance that the getLocalPort returns OSL_INVALID_PORT
- is when saSocketAddr itself is an invalid one, that is , the IP or host name
- can not be found, then the created socket address is not valid.
- */
- void getLocalPort_002()
- {
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("123.45.67.89"), IP_PORT_TELNET);
-#ifdef WNT
- ::osl::Socket sSocket(sHandle);
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); // sal_True);
- sSocket.bind( saBindSocketAddr );
- //Invalid IP, so bind should fail
- ::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )),
- ::rtl::OUString::valueOf((sal_Int32)OSL_INVALID_PORT),
- "test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned.");
- sal_Bool bOK = ( OSL_INVALID_PORT == sSocket.getLocalPort( ) );
- (void)bOK;
-#else
- //on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT
- ::rtl::OUString suError ("on Unix, if Addr is not an address of type osl_Socket_FamilyInet, it returns OSL_INVALID_PORT, but can not create Addr of that case");
-#endif
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_False );
-
- }
-
- void getLocalPort_003()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_INVAL);
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString("Socket bind fail:") + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- ::rtl::OUString suError = outputError(::rtl::OUString::valueOf(sSocket.getLocalPort( )),
- ::rtl::OUString("34463"),
- "test for getLocalPort function: first create a new socket, then an invalid socket address, bind them, and check the port assigned");
- sal_Bool bOK = ( sSocket.getLocalPort( ) >= 1 && sSocket.getLocalPort( ) <= 65535);
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalPort );
- CPPUNIT_TEST( getLocalPort_001 );
-// LLA: CPPUNIT_TEST( getLocalPort_002 );
- CPPUNIT_TEST( getLocalPort_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalPort
-
- /** testing the method:
- inline ::rtl::OUString SAL_CALL getLocalHost() const;
-
- Mindyliu: on Linux, at first it will check the binded in /etc/hosts, if it has the binded IP, it will return the hostname in it;
- else if the binded IP is "127.0.0.1", it will return "localhost", if it's the machine's ethernet ip such as "129.158.217.90", it
- will return hostname of current processor such as "aegean.PRC.Sun.COM"
- */
-
- class getLocalHost : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getLocalHost_001()
- {
- ::osl::Socket sSocket(sHandle);
- //port number from IP_PORT_HTTP1 to IP_PORT_MYPORT6, mindyliu
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT6 );
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- ::rtl::OUString suError1 = ::rtl::OUString("Socket bind fail:") + sSocket.getErrorAsString();
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError1), sal_True == bOK1 );
- sal_Bool bOK;
- ::rtl::OUString suError;
-#ifdef WNT
- bOK = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
- suError = outputError(sSocket.getLocalHost( ), getThisHostname( ),
-"test for getLocalHost function: create localhost socket and check name");
-#else
- ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) "localhost" );
- sal_Bool bRes1, bRes2;
- bRes1 = compareUString( sSocket.getLocalHost( ), aUString ) ;
- bRes2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname(0) ) ;
- bOK = bRes1 || bRes2;
- suError = outputError(sSocket.getLocalHost( ), aUString, "test for getLocalHost function: create localhost socket and check name");
-#endif
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- void getLocalHost_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("123.45.67.89"), IP_PORT_POP3);
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );
- //Invalid IP, so bind should fail
- sal_Bool bOK = compareUString( sSocket.getLocalHost( ), rtl::OUString("") ) ;
- ::rtl::OUString suError = outputError(sSocket.getLocalHost( ), rtl::OUString(), "test for getLocalHost function: getLocalHost with invalid SocketAddr");
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getLocalHost );
- CPPUNIT_TEST( getLocalHost_001 );
- CPPUNIT_TEST( getLocalHost_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getLocalHost
-
- /** testing the methods:
- inline void SAL_CALL getPeerAddr( SocketAddr & Addr) const;
- inline sal_Int32 SAL_CALL getPeerPort() const;
- inline ::rtl::OUString SAL_CALL getPeerHost() const;
- */
- class getPeer : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void getPeer_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString("129.158.217.202"), IP_PORT_FTP );
- ::osl::StreamSocket ssConnection;
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- /// launch server socket
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket bind '127.0.0.1' address failed.", sal_True == bOK1 );
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- CPPUNIT_ASSERT_MESSAGE( "AcceptorSocket listen failed.", sal_True == bOK2 );
-
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// get peer information
- csConnectorSocket.getPeerAddr( saPeerSocketAddr );/// connected.
- sal_Int32 peerPort = csConnectorSocket.getPeerPort( );
- ::rtl::OUString peerHost = csConnectorSocket.getPeerHost( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getPeer function: setup a connection and then get the peer address, port and host from client side.",
- ( sal_True == compareSocketAddr( saPeerSocketAddr, saLocalSocketAddr ) )&&
- ( sal_True == compareUString( peerHost, saLocalSocketAddr.getHostname( 0 ) ) ) &&
- ( peerPort == saLocalSocketAddr.getPort( ) ));
- }
-
- CPPUNIT_TEST_SUITE( getPeer );
- CPPUNIT_TEST( getPeer_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getPeer
-
- /** testing the methods:
- inline sal_Bool SAL_CALL bind(const SocketAddr& LocalInterface);
- */
-
- class bind : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void bind_001()
- {
- ::osl::Socket sSocket(sHandle);
- //bind must use local IP address ---mindyliu
- ::osl::SocketAddr saBindSocketAddr( getLocalIP(), IP_PORT_MYPORT5 );
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- CPPUNIT_ASSERT_MESSAGE( "Socket bind fail.", sal_True == bOK1 );
-
- sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), saBindSocketAddr.getHostname( ) ) ;
-
- sSocket.close();
- CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.", sal_True == bOK2 );
- }
-
- void bind_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("123.45.67.89"), IP_PORT_NETBIOS );
- ::osl::SocketAddr saLocalSocketAddr;
-
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1); // sal_True);
- sal_Bool bOK1 = sSocket.bind( saBindSocketAddr );
- sal_Bool bOK2 = compareUString( sSocket.getLocalHost( ), getThisHostname( ) ) ;
-
- CPPUNIT_ASSERT_MESSAGE( "test for bind function: bind a valid address.",
- ( sal_False == bOK1 ) && ( sal_False == bOK2 ) );
- }
-
- CPPUNIT_TEST_SUITE( bind );
- CPPUNIT_TEST( bind_001 );
- CPPUNIT_TEST( bind_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class bind
-
- /** testing the methods:
- inline sal_Bool SAL_CALL isRecvReady(const TimeValue *pTimeout = 0) const;
-
- */
- class isRecvReady : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void isRecvReady_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT1 );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT1 );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString("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 );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// is receive ready?
- sal_Bool bOK3 = asAcceptorSocket.isRecvReady( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isRecvReady function: setup a connection and then check if it can transmit data.",
- ( sal_True == bOK3 ) );
- }
-
- CPPUNIT_TEST_SUITE( isRecvReady );
- CPPUNIT_TEST( isRecvReady_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isRecvReady
-
- /** testing the methods:
- inline sal_Bool SAL_CALL isSendReady(const TimeValue *pTimeout = 0) const;
- */
- class isSendReady : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- TimeValue *pTimeout;
- ::osl::AcceptorSocket asAcceptorSocket;
- ::osl::ConnectorSocket csConnectorSocket;
-
- // initialization
- void setUp( )
- {
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- free( pTimeout );
- sHandle = NULL;
- asAcceptorSocket.close( );
- csConnectorSocket.close( );
- }
-
- void isSendReady_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT );
- ::osl::SocketAddr saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT );
- ::osl::SocketAddr saPeerSocketAddr( rtl::OUString("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 );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// launch client socket
- csConnectorSocket.connect( saTargetSocketAddr, pTimeout ); /// connecting to server...
-
- /// is send ready?
- sal_Bool bOK3 = csConnectorSocket.isSendReady( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isSendReady function: setup a connection and then check if it can transmit data.",
- ( sal_True == bOK3 ) );
- }
-
- CPPUNIT_TEST_SUITE( isSendReady );
- CPPUNIT_TEST( isSendReady_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isSendReady
-
- /** testing the methods:
- inline oslSocketType SAL_CALL getType() const;
-
- */
-
- class getType : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getType_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeStream == sSocket.getType( ) );
- }
-
- void getType_002()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeDgram == sSocket.getType( ) );
- }
-
-#ifdef UNX
- // mindy: since on LINUX and SOLARIS, Raw type socket can not be created, so do not test getType() here
- // mindy: and add one test case to test creating Raw type socket--> ctors_TypeRaw()
- void getType_003()
- {
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.this is not passed in (LINUX, SOLARIS), the osl_Socket_TypeRaw, type socket can not be created.",
- sal_True);
- }
-#else
- void getType_003()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeRaw, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- CPPUNIT_ASSERT_MESSAGE( "test for getType function: get type of socket.",
- osl_Socket_TypeRaw == sSocket.getType( ) );
- }
-#endif
-
- CPPUNIT_TEST_SUITE( getType );
- CPPUNIT_TEST( getType_001 );
- CPPUNIT_TEST( getType_002 );
- CPPUNIT_TEST( getType_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getType
-
- /** testing the methods:
- inline sal_Int32 SAL_CALL getOption(
- oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket) const;
-
- inline sal_Int32 getOption( oslSocketOption option ) const;
-
- */
-
- class getOption : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- /** test writer's comment:
-
- in oslSocketOption, the osl_Socket_OptionType denote 1 as osl_Socket_TypeStream.
- 2 as osl_Socket_TypeDgram, etc which is not mapping the oslSocketType enum. differ
- in 1.
- */
-
- void getOption_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
- sal_Int32 * pType = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pType = 0;
- sSocket.getOption( osl_Socket_OptionType, pType, sizeof ( sal_Int32 ) );
- sal_Bool bOK = ( SOCK_STREAM == *pType );
- // there is a TypeMap(socket.c) which map osl_Socket_TypeStream to SOCK_STREAM on UNX, and SOCK_STREAM != osl_Socket_TypeStream
- //sal_Bool bOK = ( TYPE_TO_NATIVE(osl_Socket_TypeStream) == *pType );
- free( pType );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get type option of socket.",
- sal_True == bOK );
- }
-
- // getsockopt error
- void getOption_004()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool * pbDontRoute = ( sal_Bool * )malloc( sizeof ( sal_Bool ) );
- sal_Int32 nRes = sSocket.getOption( osl_Socket_OptionInvalid, pbDontRoute, sizeof ( sal_Bool ) );
- free( pbDontRoute );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get invalid option of socket, should return -1.",
- nRes == -1 );
- }
-
- void getOption_simple_001()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool bOK = ( sal_False == sSocket.getOption( osl_Socket_OptionDontRoute ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.",
- sal_True == bOK );
- }
-
- void getOption_simple_002()
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeDgram, osl_Socket_ProtocolIp );
- ::osl::Socket sSocket(sHandle);
-
- sal_Bool bOK = ( sal_False == sSocket.getOption( osl_Socket_OptionDebug ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for getOption function: get debug option of socket.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getOption );
- CPPUNIT_TEST( getOption_001 );
- CPPUNIT_TEST( getOption_004 );
- CPPUNIT_TEST( getOption_simple_001 );
- CPPUNIT_TEST( getOption_simple_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getOption
-
- /** testing the methods:
- inline sal_Bool SAL_CALL setOption( oslSocketOption Option,
- void* pBuffer,
- sal_uInt32 BufferLen,
- oslSocketOptionLevel Level= osl_Socket_LevelSocket ) const;
- */
-
- class setOption : public CppUnit::TestFixture
- {
- public:
- TimeValue *pTimeout;
-// LLA: maybe there is an error in the source,
-// as long as I remember, if a derived class do not overload all ctors there is a problem.
-
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void setUp( )
- {
-
- }
-
- void tearDown( )
- {
- asAcceptorSocket.close( );
- }
-
- // LLA:
- // getSocketOption returns BufferLen, or -1 if something failed
-
- // setSocketOption returns sal_True, if option could stored
- // else sal_False
-
- void setOption_001()
- {
- /// set and get option.
- int nBufferLen = sizeof ( sal_Int32);
- // LLA: SO_DONTROUTE expect an integer boolean, what ever it is, it's not sal_Bool!
-
- sal_Int32 * pbDontRouteSet = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pbDontRouteSet = 1; // sal_True;
-
- sal_Int32 * pGetBuffer = ( sal_Int32 * )malloc( sizeof ( sal_Int32 ) );
- *pGetBuffer = 0;
-
- // maybe asAcceptorSocket is not right initialized
- sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontRouteSet, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b1 ) );
- sal_Int32 n2 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pGetBuffer, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption function failed.", ( n2 == nBufferLen ) );
-
- // on Linux, the value of option is 1, on Solaris, it's 16, but it's not important the exact value,
- // just judge it is zero or not!
- sal_Bool bOK = ( 0 != *pGetBuffer );
- t_print("#setOption_001: getOption is %" SAL_PRIdINT32 " \n", *pGetBuffer);
-
- // toggle check, set to 0
- *pbDontRouteSet = 0;
-
- sal_Bool b3 = asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, pbDontRouteSet, sizeof ( sal_Int32 ) );
- CPPUNIT_ASSERT_MESSAGE( "setOption function failed.", ( sal_True == b3 ) );
- sal_Int32 n4 = asAcceptorSocket.getOption( osl_Socket_OptionDontRoute, pGetBuffer, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption (DONTROUTE) function failed.", ( n4 == nBufferLen ) );
-
- sal_Bool bOK2 = ( 0 == *pGetBuffer );
-
- t_print("#setOption_001: getOption is %" SAL_PRIdINT32 " \n", *pGetBuffer);
-
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
- ( sal_True == bOK ) && (sal_True == bOK2) );
-
- free( pbDontRouteSet );
- free( pGetBuffer );
- }
-
- void setOption_002()
- {
- /// set and get option.
-
- // sal_Int32 * pbLingerSet = ( sal_Int32 * )malloc( nBufferLen );
- // *pbLingerSet = 7;
- // sal_Int32 * pbLingerGet = ( sal_Int32 * )malloc( nBufferLen );
- /* struct */linger aLingerSet;
- sal_Int32 nBufferLen = sizeof( struct linger );
- aLingerSet.l_onoff = 1;
- aLingerSet.l_linger = 7;
-
- linger aLingerGet;
-
- asAcceptorSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, nBufferLen );
-
- sal_Int32 n1 = asAcceptorSocket.getOption( osl_Socket_OptionLinger, &aLingerGet, nBufferLen );
- CPPUNIT_ASSERT_MESSAGE( "getOption (SO_LINGER) function failed.", ( n1 == nBufferLen ) );
-
- //t_print("#setOption_002: getOption is %d \n", aLingerGet.l_linger);
- sal_Bool bOK = ( 7 == aLingerGet.l_linger );
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check. ",
- sal_True == bOK );
-
- }
-
- void setOption_003()
- {
- linger aLingerSet;
- aLingerSet.l_onoff = 1;
- aLingerSet.l_linger = 7;
-
- sal_Bool b1 = asAcceptorSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, 0 );
- printUString( asAcceptorSocket.getErrorAsString( ) );
- CPPUNIT_ASSERT_MESSAGE( "setOption (SO_LINGER) function failed for optlen is 0.",
- ( b1 == sal_False ) );
- }
-
- void setOption_simple_001()
- {
- /// set and get option.
- asAcceptorSocket.setOption( osl_Socket_OptionDontRoute, 1 ); //sal_True );
- sal_Bool bOK = ( 0 != asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
-
- t_print("setOption_simple_001(): getoption is %d \n", (int) asAcceptorSocket.getOption( osl_Socket_OptionDontRoute ) );
- CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
- ( sal_True == bOK ) );
- }
-
- void setOption_simple_002()
- {
- /// set and get option.
- // LLA: this does not work, due to the fact that SO_LINGER is a structure
-// LLA: asAcceptorSocket.setOption( osl_Socket_OptionLinger, 7 );
-// LLA: sal_Bool bOK = ( 7 == asAcceptorSocket.getOption( osl_Socket_OptionLinger ) );
-
-// LLA: CPPUNIT_ASSERT_MESSAGE( "test for setOption function: set option of a socket and then check.",
-// LLA: ( sal_True == bOK ) );
- }
-
- CPPUNIT_TEST_SUITE( setOption );
-// CPPUNIT_TEST( setOption_001 );
- CPPUNIT_TEST( setOption_002 );
- CPPUNIT_TEST( setOption_003 );
- //TODO: Check this test
-// CPPUNIT_TEST( setOption_simple_001 );
-// LLA: CPPUNIT_TEST( setOption_simple_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class setOption
-
- /** testing the method:
- inline sal_Bool SAL_CALL enableNonBlockingMode( sal_Bool bNonBlockingMode);
- */
- class enableNonBlockingMode : public CppUnit::TestFixture
- {
- public:
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void enableNonBlockingMode_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT );
- ::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 );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default.
- sal_Bool bOK = sal_True;
- asAcceptorSocket.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for enableNonBlockingMode function: launch a server socket and make it non blocking. if it can pass the acceptConnection statement, it is non-blocking",
- ( sal_True == bOK ) );
- }
-
- CPPUNIT_TEST_SUITE( enableNonBlockingMode );
- CPPUNIT_TEST( enableNonBlockingMode_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class enableNonBlockingMode
-
- /** testing the method:
- inline sal_Bool SAL_CALL isNonBlockingMode() const;
- */
- class isNonBlockingMode : public CppUnit::TestFixture
- {
- public:
- ::osl::AcceptorSocket asAcceptorSocket;
-
- void isNonBlockingMode_001()
- {
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT );
- ::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 );
-
- sal_Bool bOK3 = asAcceptorSocket.isNonBlockingMode( );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- asAcceptorSocket.acceptConnection(ssConnection); /// waiting for incoming connection...
-
- /// if reach this statement, it is non-blocking mode, since acceptConnection will blocked by default.
- sal_Bool bOK4 = asAcceptorSocket.isNonBlockingMode( );
- asAcceptorSocket.close( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isNonBlockingMode function: launch a server socket and make it non blocking. it is expected to change from blocking mode to non-blocking mode.",
- ( sal_False == bOK3 ) && ( sal_True == bOK4 ) );
- }
-
- CPPUNIT_TEST_SUITE( isNonBlockingMode );
- CPPUNIT_TEST( isNonBlockingMode_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class isNonBlockingMode
-
- /** testing the method:
- inline void SAL_CALL clearError() const;
- */
- class clearError : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void clearError_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("123.45.67.89"), IP_PORT_HTTP2 );
- ::osl::SocketAddr saLocalSocketAddr;
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
- oslSocketError seBind = sSocket.getError( );
- sSocket.clearError( );
-
- CPPUNIT_ASSERT_MESSAGE( "test for clearError function: trick an error called sSocket.getError( ), and then clear the error states, check the result.",
- osl_Socket_E_None == sSocket.getError( ) && seBind != osl_Socket_E_None );
- }
-
- CPPUNIT_TEST_SUITE( clearError );
- CPPUNIT_TEST( clearError_001 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class clearError
-
- /** testing the methods:
- inline oslSocketError getError() const;
- inline ::rtl::OUString getErrorAsString( ) const;
- */
- class getError : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getError_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_FTP );
- ::osl::SocketAddr saLocalSocketAddr;
-
- CPPUNIT_ASSERT_MESSAGE( "test for getError function: should get no error.",
- osl_Socket_E_None == sSocket.getError( ) );
- }
-
- void getError_002()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::SocketAddr saBindSocketAddr( rtl::OUString("123.45.67.89"), IP_PORT_FTP );
- ::osl::SocketAddr saLocalSocketAddr;
- sSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
- sSocket.bind( saBindSocketAddr );//build an error "osl_Socket_E_AddrNotAvail"
- //on Solaris, the error no is EACCES, but it has no mapped value, so getError() returned osl_Socket_E_InvalidError.
-#if defined(SOLARIS)
- CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. ",
- osl_Socket_E_InvalidError == sSocket.getError( ) );
-#else
- //while on Linux & Win32, the errno is EADDRNOTAVAIL, getError returned osl_Socket_E_AddrNotAvail.
-
- CPPUNIT_ASSERT_MESSAGE( "trick an error called sSocket.getError( ), check the getError result.Failed on Solaris, returned osl_Socket_E_InvalidError because no entry to map the errno EACCES. Passed on Linux & Win32",
- osl_Socket_E_AddrNotAvail == sSocket.getError( ) );
-#endif
- }
-
- CPPUNIT_TEST_SUITE( getError );
- CPPUNIT_TEST( getError_001 );
- CPPUNIT_TEST( getError_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getError
-
- /** testing the methods:
- inline oslSocket getHandle() const;
- */
-
- class getHandle : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void getHandle_001()
- {
- ::osl::Socket sSocket(sHandle);
- ::osl::Socket assignSocket = sSocket.getHandle();
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment_handle function: test the assignment operator.",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- void getHandle_002()
- {
- ::osl::Socket sSocket( sHandle );
- ::osl::Socket assignSocket ( sSocket.getHandle( ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operators_assignment function: assignment operator",
- osl_Socket_TypeStream == assignSocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( getHandle );
- CPPUNIT_TEST( getHandle_001 );
- CPPUNIT_TEST( getHandle_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getHandle
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::operators);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::close);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getLocalAddr);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getLocalPort);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getLocalHost);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getPeer);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::bind);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::isRecvReady);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::isSendReady);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getType);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getOption);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::setOption);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::enableNonBlockingMode);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::isNonBlockingMode);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::clearError);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getError);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::getHandle);
-
-} // namespace osl_Socket
-
-// 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.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket2.xsce b/sal/qa/osl/socket/osl_Socket2.xsce
deleted file mode 100644
index 2f6d6d2504d5..000000000000
--- a/sal/qa/osl/socket/osl_Socket2.xsce
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-osl_Socket.ctors.ctors_family_Ipx
-osl_Socket.getLocalHost.getLocalHost_001 wntmsci
diff --git a/sal/qa/osl/socket/osl_SocketAddr.cxx b/sal/qa/osl/socket/osl_SocketAddr.cxx
deleted file mode 100644
index 99aa7d09c19a..000000000000
--- a/sal/qa/osl/socket/osl_SocketAddr.cxx
+++ /dev/null
@@ -1,855 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(OS)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(OS)" != "WNT"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
- */
-
-#include <sal/types.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "sockethelper.hxx"
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-
-#define IP_PORT_ZERO 0
-#define IP_PORT_FTP 21
-#define IP_PORT_TELNET 23
-#define IP_PORT_HTTP1 80
-#define IP_PORT_HTTP2 8080
-
-#define IP_PORT_MYPORT 8881 //8888
-#define IP_PORT_MYPORT2 8883 //8890
-#define IP_PORT_MYPORT3 8884 //8891
-#define IP_PORT_INVAL 99999
-#define IP_PORT_MYPORT4 8885 //8892
-#define IP_PORT_NETBIOS_DGM 138
-
-namespace osl_SocketAddr
-{
-
- /** testing the methods:
- inline SocketAddr();
- inline SocketAddr(const SocketAddr& Addr);
- inline SocketAddr(const oslSocketAddr , __osl_socket_NoCopy nocopy );
- inline SocketAddr(oslSocketAddr Addr);
- inline SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort );
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
-
- void ctors_none()
- {
- /// SocketAddr constructor.
- ::osl::SocketAddr saSocketAddr;
-
- // oslSocketResult aResult;
- // rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
-
- // 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( ) );
- }
-
- void ctors_none_000()
- {
- /// SocketAddr constructor.
- ::osl::SocketAddr saSocketAddr;
-
- oslSocketResult aResult;
- rtl::OUString suHost = saSocketAddr.getLocalHostname( &aResult);
- rtl::OUString suHost2 = getThisHostname();
-
- sal_Bool bOk = compareUString(suHost, suHost2);
-
- rtl::OUString suError ("Host names should be the same. From SocketAddr.getLocalHostname() it is'");
- suError += suHost;
- suError += rtl::OUString("', from getThisHostname() it is '");
- suError += suHost2;
- suError += rtl::OUString("'.");
-
- CPPUNIT_ASSERT_MESSAGE(STD_STRING(suError), sal_True == bOk);
- }
-
- void ctors_copy()
- {
- /// SocketAddr copy constructor.
- ::osl::SocketAddr saSocketAddr( rtl::OUString("localhost"), IP_PORT_HTTP1 );
- ::osl::SocketAddr saCopySocketAddr( saSocketAddr );
-
- 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 ) );
- }
-
- void ctors_copy_no_001()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( rtl::OUString("localhost"), 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 );
-
- 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 );
-
- delete pSocketAddrCopy;
- // LLA: don't do this also: delete pSocketAddr;
- }
-
- void ctors_copy_no_002()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( rtl::OUString("localhost"), 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;
- }
-
- void ctors_copy_handle_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("localhost"), IP_PORT_HTTP1 );
- ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) );
-
- 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 );
- }
-
- void ctors_copy_handle_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("localhost"), IP_PORT_HTTP1 );
- ::osl::SocketAddr saSocketAddrCopy( saSocketAddr.getHandle( ) );
- saSocketAddrCopy.setPort( IP_PORT_HTTP2 );
-
- 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 );
- }
-
- void ctors_hostname_port_001()
- {
- /// tcpip-specific constructor.
- ::osl::SocketAddr saSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_FTP );
- printUString( saSocketAddr.getHostname( ), "ctors_hostname_port_001:getHostname");
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specificy constructor function: do a constructor using tcpip spec, check the result.",
- saSocketAddr.is( ) == sal_True &&
- ( saSocketAddr.getPort( ) == IP_PORT_FTP )
- );
- }
-
- //same as is_002
- void ctors_hostname_port_002()
- {
- /// tcpip-specific constructor.
- ::osl::SocketAddr saSocketAddr( rtl::OUString("123.345.67.89"), IP_PORT_MYPORT2 );
-
- CPPUNIT_ASSERT_MESSAGE("test for SocketAddr tcpip specificy 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();
-
- }; // class ctors
-
- /** testing the method:
- inline sal_Bool is() const;
- */
-
- class is : public CppUnit::TestFixture
- {
- 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( rtl::OUString("127.0.0.1"), IP_PORT_INVAL );
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid port number",
- sal_True == saSocketAddr.is( ) );
- }
-
- void is_003()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("123.345.67.89"), IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE("test for is() function: create a tcp-ip socket using invalid Ip number",
- sal_True != saSocketAddr.is( ) );
- }
-
- CPPUNIT_TEST_SUITE( is );
- CPPUNIT_TEST( is_001 );
- CPPUNIT_TEST( is_002 );
- CPPUNIT_TEST( is_003 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class is
-
- /** testing the method:
- inline ::rtl::OUString SAL_CALL getHostname( oslSocketResult *pResult = 0 ) const;
- */
-
- class getHostname : public CppUnit::TestFixture
- {
- public:
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- void getHostname_000()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("129.158.217.107"), IP_PORT_FTP );
- rtl::OUString suResult = saSocketAddr.getHostname( 0 );
-
- }
-
- /** 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()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("129.158.217.107"), IP_PORT_FTP );
- rtl::OUString suResult = saSocketAddr.getHostname( 0 );
- rtl::OUString suError = outputError(suResult, rtl::OUString("sceri.PRC.Sun.COM"), "test for getHostname(0)");
- sal_Bool bOK = compareUString( suResult, rtl::OUString("sceri.PRC.Sun.COM") );
- // 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::OString aString = ::rtl::OUStringToOString( suResult, RTL_TEXTENCODING_ASCII_US );
- if ( compareUString( getIPbyName( aString ), rtl::OUString("129.158.217.107") ) == sal_True )
- bOK = sal_True;
- }
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(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()
- {
- rtl::OUString suHostname ("cn-1.germany.sun.com");
- rtl::OString aString = ::rtl::OUStringToOString( suHostname, RTL_TEXTENCODING_ASCII_US );
- rtl::OUString aHostIP = getIPbyName( aString );
-
- ::osl::SocketAddr saSocketAddr( rtl::OUString("localhost"), 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);
-
- rtl::OUString suError = outputError(suResult, suHostname, "test for getHostname(0)");
- bOK = compareUString( suResult, suHostname );
- if ( bOK == sal_False)
- {
- rtl::OString aStringResult = ::rtl::OUStringToOString( suResult, RTL_TEXTENCODING_ASCII_US );
- rtl::OString aStringHostname = ::rtl::OUStringToOString( suHostname, RTL_TEXTENCODING_ASCII_US );
- if ( compareUString( getIPbyName( aStringResult ) , getIPbyName( aStringHostname ) ) == sal_True )
- {
- bOK = sal_True;
- }
- }
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getHostname );
- CPPUNIT_TEST( getHostname_001 );
- CPPUNIT_TEST( getHostname_002 );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class getHostname
-
- /** testing the method:
- inline sal_Int32 SAL_CALL getPort() const;
- */
-
- class getPort : public CppUnit::TestFixture
- {
- public:
- void getPort_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("127.0.0.1"), 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( rtl::OUString("129.158.217.202"), IP_PORT_INVAL );
-
- //t_print("#getPort_002: Port number is %d \n", saSocketAddr.getPort( ));
-
- 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()
- {
- rtl::OUString suInvalidIP ("123.345.67.89");
- ::osl::SocketAddr saSocketAddr( suInvalidIP, IP_PORT_MYPORT );
-
- 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 );
- }
-
- CPPUNIT_TEST_SUITE( getPort );
- CPPUNIT_TEST( getPort_001 );
- CPPUNIT_TEST( getPort_002 );
- CPPUNIT_TEST( getPort_003 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getPort
-
- /** testing the method:
- inline sal_Bool SAL_CALL setPort( sal_Int32 nPort );
- rfc1413.txt: TCP port numbers are from 1-65535
- rfc1700.txt: 0/tcp Reserved ; 0/udp Reserved
- */
-
- class setPort : public CppUnit::TestFixture
- {
- public:
- void setPort_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("127.0.0.1"), 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( rtl::OUString("127.0.0.1"), 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 );
-
- sal_Int32 newPort = sSocket.getLocalPort();
- //t_print("#new port is %d\n", newPort );
-
- 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 ) );
-
- }
-
- void setPort_003()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("127.0.0.1"), 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( ));
-
- 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);
- }
-
- /* this is not a inet-addr => can't set port */
- void setPort_004()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("123.345.67.89"), IP_PORT_FTP);
- sal_Bool bOK = saSocketAddr.setPort( IP_PORT_MYPORT );
-
- CPPUNIT_ASSERT_MESSAGE( "test for setPort( ) function: set an invalid address with valid port. it should return error.",
- bOK == sal_False);
- }
-
- CPPUNIT_TEST_SUITE( setPort );
- CPPUNIT_TEST( setPort_001 );
- CPPUNIT_TEST( setPort_002 );
- CPPUNIT_TEST( setPort_003 );
- CPPUNIT_TEST( setPort_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class setPort
-
- /** tester comment:
-
- In the following two functions, it use ::rtl::ByteSequence as an intermediate storage for address,
- the ByteSequence object can hold sal_Int8 arrays, which is raged [-127, 127], in case of IP addr
- that is greater than 127, say 129.158.217.202, it will stored as -127, -98, -39, -54, it is unique
- in the range of sal_Int8, but lack of readability.
- so may be a sal_uInt8 array is better.
- */
-
- /** testing the method:
- inline sal_Bool SAL_CALL setAddr( const ::rtl::ByteSequence & address );
- */
-
- class setAddr : public CppUnit::TestFixture
- {
- public:
- void setAddr_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("129.158.217.202"), IP_PORT_FTP );
- saSocketAddr.setAddr( UStringIPToByteSequence( rtl::OUString("127.0.0.1") ) );
- ::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;
- bOK = ifIpv4is( bsSocketAddr, 127, 0, 0, 1 );
-
- 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 );
- }
-
- CPPUNIT_TEST_SUITE( setAddr );
- CPPUNIT_TEST( setAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class setAddr
-
- /** testing the method:
- inline ::rtl::ByteSequence SAL_CALL getAddr( oslSocketResult *pResult = 0 ) const;
- */
-
- class getAddr : public CppUnit::TestFixture
- {
- public:
- void getAddr_001()
- {
- oslSocketResult SocketResult;
- ::osl::SocketAddr saSocketAddr( rtl::OUString("127.0.0.1"), 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;
- bOK = ifIpv4is( bsSocketAddr, 127, 0, 0, 1 );
-
- 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);
- }
-
- CPPUNIT_TEST_SUITE( getAddr );
- CPPUNIT_TEST( getAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getAddr
-
- /** testing the methods:
- inline SocketAddr & SAL_CALL operator= (oslSocketAddr Addr);
- inline SocketAddr & SAL_CALL operator= (const SocketAddr& Addr);
- inline SocketAddr & SAL_CALL assign( oslSocketAddr Addr, __osl_socket_NoCopy nocopy );
- inline sal_Bool SAL_CALL operator== (oslSocketAddr Addr) const;
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const; /// not implemented.
- */
-
- class operator_equal : public CppUnit::TestFixture
- {
- public:
- void operator_equal_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( rtl::OUString("129.158.217.202"), 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 ) )
- if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) && ( ifIpv4is( bsSocketAddr, 127, 0, 0, 1 ) == sal_True ) )
- bOK = sal_True;
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal() function: use operator= to assign Ip1 to Ip2, check its modification.",
- sal_True == bOK );
- }
-
- void operator_equal_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("129.158.217.199"), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( rtl::OUString("129.158.217.202"), IP_PORT_FTP );
-
- 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 );
-
- 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( rtl::OUString("127.0.0.1"), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( rtl::OUString("129.158.217.202"), 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 ) )
- if ( ( IP_PORT_TELNET == saSocketAddrEqual.getPort( ) ) && ifIpv4is( bsSocketAddr, 127, 0, 0, 1 ) == sal_True )
- bOK = sal_True;
-
- 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 );
- }
-
- void operator_equal_const_002()
- {
- const ::osl::SocketAddr saSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrEqual( rtl::OUString("129.158.217.202"), IP_PORT_FTP );
-
- saSocketAddrEqual = saSocketAddr;
- saSocketAddrEqual.setPort( IP_PORT_HTTP1 );
-
- 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( ) );
- }
-
- void operator_equal_assign_001()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_TELNET );
- CPPUNIT_ASSERT_MESSAGE("check for new SocketAddr", pSocketAddr != NULL);
- ::osl::SocketAddr* pSocketAddrAssign = new ::osl::SocketAddr( rtl::OUString("129.158.217.202"), 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 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 );
-
- delete pSocketAddrAssign;
- }
-
- void operator_is_equal_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_TELNET);
- ::osl::SocketAddr saSocketAddrequal( rtl::OUString("127.0.0.1"), IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two identical Address.",
- sal_True == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) );
- }
-
- void operator_is_equal_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("129.158.217.202"), IP_PORT_FTP);
- ::osl::SocketAddr saSocketAddrequal( rtl::OUString("127.0.0.1"), IP_PORT_TELNET );
-
- CPPUNIT_ASSERT_MESSAGE( "test for operator_equal_equal() function: check two different Address.",
- sal_False == ( saSocketAddrequal == saSocketAddr.getHandle( ) ) );
- }
-
- CPPUNIT_TEST_SUITE( operator_equal );
- CPPUNIT_TEST( operator_equal_001 );
- CPPUNIT_TEST( operator_equal_002 );
- CPPUNIT_TEST( operator_equal_const_001 );
- CPPUNIT_TEST( operator_equal_const_002 );
- CPPUNIT_TEST( operator_equal_assign_001 );
- CPPUNIT_TEST( operator_is_equal_001 );
- CPPUNIT_TEST( operator_is_equal_002 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class operator_equal
-
- /** testing the method:
- inline oslSocketAddr SAL_CALL getHandle() const;
- */
-
- class getSocketAddrHandle : public CppUnit::TestFixture
- {
- public:
-
- void getSocketAddrHandle_001()
- {
- ::osl::SocketAddr* pSocketAddr = new ::osl::SocketAddr( rtl::OUString("localhost"), 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;
- }
-
- void getSocketAddrHandle_002()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("deuce.PRC.Sun.COM"), IP_PORT_MYPORT4 );
- oslSocketAddr poslSocketAddr = saSocketAddr.getHandle( );
-
- sal_Bool bOK = ( saSocketAddr == poslSocketAddr );
- //t_print("getSocketAddrHandle_002\n");
- CPPUNIT_ASSERT_MESSAGE( "test for getHandle() function: use getHandle() function as an intermediate way to create identical address.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( getSocketAddrHandle );
- CPPUNIT_TEST( getSocketAddrHandle_001 );
- CPPUNIT_TEST( getSocketAddrHandle_002 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getSocketAddrHandle
-
- /** testing the method:
- static inline ::rtl::OUString SAL_CALL getLocalHostname( oslSocketResult *pResult = 0);
- */
-
- class getLocalHostname : public CppUnit::TestFixture
- {
- public:
- /* the process of getLocalHostname: 1.gethostname (same as /bin/hostname) returned name A
- 2. search A in /etc/hosts, if there is an alias name is A, return the name in the same row
- */
-
- void getLocalHostname_000()
- {
- // _osl_getFullQualifiedDomainName( );
- oslSocketResult aResult = osl_Socket_Error;
- rtl::OUString suHostname = osl::SocketAddr::getLocalHostname(&aResult);
- CPPUNIT_ASSERT_MESSAGE("getLocalHostname failed", aResult == osl_Socket_Ok);
- }
-
- void getLocalHostname_001()
- {
- oslSocketResult *pResult = NULL;
- //printSocketResult(*pResult);
- ::rtl::OUString suResult = ::osl::SocketAddr::getLocalHostname( pResult );
-
- // LLA: IMHO localhost, or hostname by itself should be ok.
- rtl::OUString suThisHost = getThisHostname( );
- bool bOk = false;
- if ( suThisHost == "localhost" )
- {
- bOk = true;
- }
- else
- {
- if (suThisHost.equals(suResult))
- {
- bOk = true;
- }
- }
-
- ::rtl::OUString suError;
- suError = outputError(suResult, getThisHostname( ), "test for getLocalHostname() function");
-
- CPPUNIT_ASSERT_MESSAGE( STD_STRING(suError), bOk == true );
- }
-
- CPPUNIT_TEST_SUITE( getLocalHostname );
- CPPUNIT_TEST( getLocalHostname_000 );
- CPPUNIT_TEST( getLocalHostname_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getLocalHostname
-
- /** testing the method:
- static inline void SAL_CALL resolveHostname( const ::rtl::OUString & strHostName , SocketAddr & Addr );
- */
-
- class resolveHostname : public CppUnit::TestFixture
- {
- public:
- void resolveHostname_001()
- {
- ::osl::SocketAddr saSocketAddr;
- ::osl::SocketAddr::resolveHostname( rtl::OUString("127.0.0.1"), saSocketAddr );
- ::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 resolveHostname() function: try to resolve localhost to 127.0.0.1.",
- sal_True == bOK );
- }
-
- CPPUNIT_TEST_SUITE( resolveHostname );
- CPPUNIT_TEST( resolveHostname_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class resolveHostname
-
- /** testing the method:
- static inline sal_Int32 SAL_CALL getServicePort(
- const ::rtl::OUString& strServiceName,
- const ::rtl::OUString & strProtocolName= ::rtl::OUString("tcp") );
- */
-
- class gettheServicePort : public CppUnit::TestFixture
- {
- public:
- void gettheServicePort_001()
- {
- rtl::OUString suServiceFTP ("ftp");
- rtl::OUString suProtocolTCP ("tcp");
-
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get ftp service port on TCP protocol.",
- IP_PORT_FTP== ::osl::SocketAddr::getServicePort( suServiceFTP, suProtocolTCP ) );
- }
-
- void gettheServicePort_002()
- {
- rtl::OUString suServiceTELNET ("telnet");
- rtl::OUString suProtocolTCP ("tcp");
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get telnet service port on TCP protocol.",
- IP_PORT_TELNET== ::osl::SocketAddr::getServicePort( suServiceTELNET, suProtocolTCP ) );
- }
-
- void gettheServicePort_003()
- {
- //Solaris has no service called "https", please see /etc/services
- rtl::OUString suServiceNETBIOS ("netbios-dgm");
- rtl::OUString suProtocolUDP ("udp");
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get netbios-ssn service port on UDP protocol.",
- IP_PORT_NETBIOS_DGM == ::osl::SocketAddr::getServicePort( suServiceNETBIOS, suProtocolUDP ) );
- }
-
- void gettheServicePort_004()
- {
- rtl::OUString suProtocolUDP("udp" );
- CPPUNIT_ASSERT_MESSAGE( "test for getServicePort() function: try to get a service port which is not exist.",
- OSL_INVALID_PORT == ::osl::SocketAddr::getServicePort( ::rtl::OUString("notexist"), suProtocolUDP ) );
- }
-
- CPPUNIT_TEST_SUITE( gettheServicePort );
- CPPUNIT_TEST( gettheServicePort_001 );
- CPPUNIT_TEST( gettheServicePort_002 );
- CPPUNIT_TEST( gettheServicePort_003 );
- CPPUNIT_TEST( gettheServicePort_004 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class gettheServicePort
-
- /** testing the method:
-
- */
-
- class getFamilyOfSocketAddr : public CppUnit::TestFixture
- {
- public:
- void getFamilyOfSocketAddr_001()
- {
- ::osl::SocketAddr saSocketAddr( rtl::OUString("localhost"), IP_PORT_HTTP1 );
- oslSocketAddr psaOSLSocketAddr = saSocketAddr.getHandle( );
- CPPUNIT_ASSERT_EQUAL(
- osl_Socket_FamilyInet,
- osl_getFamilyOfSocketAddr( psaOSLSocketAddr ) );
-
- CPPUNIT_ASSERT_MESSAGE( "test for osl_getFamilyOfSocketAddr.",
- osl_getFamilyOfSocketAddr( psaOSLSocketAddr ) == osl_Socket_FamilyInet );
- }
-
- CPPUNIT_TEST_SUITE( getFamilyOfSocketAddr );
- CPPUNIT_TEST( getFamilyOfSocketAddr_001 );
- CPPUNIT_TEST_SUITE_END( );
-
- }; // class getFamilyOfSocketAddr
-
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::ctors);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::is);
-//TODO: enable Test with valid host names
-//CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getHostname);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getPort);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::setPort);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::setAddr);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getAddr);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::operator_equal);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getSocketAddrHandle);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getLocalHostname);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::resolveHostname);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::gettheServicePort);
-CPPUNIT_TEST_SUITE_REGISTRATION(osl_SocketAddr::getFamilyOfSocketAddr);
-
-} // namespace osl_SocketAddr
-
-// 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.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_SocketAddr.xsce b/sal/qa/osl/socket/osl_SocketAddr.xsce
deleted file mode 100644
index e69de29bb2d1..000000000000
--- a/sal/qa/osl/socket/osl_SocketAddr.xsce
+++ /dev/null
diff --git a/sal/qa/osl/socket/osl_SocketOld.xsce b/sal/qa/osl/socket/osl_SocketOld.xsce
deleted file mode 100644
index 4efad1dc57db..000000000000
--- a/sal/qa/osl/socket/osl_SocketOld.xsce
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-osl_Socket.ctors.ctors_family_Ipx
-osl_SocketAddr.getHostname.getHostname_002
-osl_StreamSocket.send_recv.write_read_001
-
-osl_ConnectorSocket.connect.connect_003 wntmsci
-osl_Socket.getLocalHost.getLocalHost_001 wntmsci
-
-# hangs within solaris
-osl_StreamSocket.send_recv.write_read_002 unxsols
-osl_StreamSocket.send_recv.write_read_003 unxsols
-osl_StreamSocket.send_recv.write_read_004 unxsols
-
-# hangs within solaris
-osl_StreamSocket.send_recv.send_recv1 unxsols
diff --git a/sal/qa/osl/socket/osl_Socket_Const.h b/sal/qa/osl/socket/osl_Socket_Const.h
deleted file mode 100644
index 768d76eb5802..000000000000
--- a/sal/qa/osl/socket/osl_Socket_Const.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _OSL_SOCKET_CONST_H_
-#define _OSL_SOCKET_CONST_H_
-
-#include <sal/types.h>
-#include <rtl/textenc.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustring.h>
-#include <osl/socket.hxx>
-#include <osl/socket.h>
-#include <osl/thread.hxx>
-#include <osl/file.hxx>
-#include <osl/mutex.hxx>
-#include <osl/time.h>
-
-const char * pTestString1 = "test socket";
-const char * pTestString2 = " Passed#OK";
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-# include <stdio.h>
-
-// OS dependent declaration and includes
-
-#if ( defined UNX ) //Unix
-# include <unistd.h>
-# include <limits.h>
-# include <string.h>
-# include <math.h>
-# include <errno.h>
-# include <fcntl.h>
-# include <sys/stat.h>
-# include <sys/statfs.h>
-# include <sys/statvfs.h>
-# include <sys/types.h>
-# include <sys/socket.h>
-# include <netdb.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
-#endif
-#if ( defined WNT ) // Windows
-# include <winsock.h>
-# include <string.h>
-#endif
-
-// macro definition for the ASCII array/OUString declarations,
-// we use p### for the ASCII array,
-// a### for the OUString,
-// n###Len for its length
-
-#define OSLTEST_DECLARE( str_name, str_value ) \
- static const sal_Char p##str_name[] = str_value; \
- static const sal_Int32 n##str_name##Len = sizeof( p##str_name ) -1; \
- ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( p##str_name )
-
-// Ip version definition
-
-#define IP_VER 4 /// currently only IPv4 is considered.
-
-// Hostnames.
-
-// OSLTEST_DECLARE( HostName1, "localhost" );
-// OSLTEST_DECLARE( HostIp1, "127.0.0.1" );
-OSLTEST_DECLARE( HostName2, "longshot.prc.sun.com" );
-OSLTEST_DECLARE( HostIp2, "129.158.217.202" );
-OSLTEST_DECLARE( HostName3, "deuce.prc.sun.com" );
-OSLTEST_DECLARE( HostIp3, "129.158.217.199" );
-OSLTEST_DECLARE( HostName4, "sceri.PRC.Sun.COM" ); //Beijing server for test
-OSLTEST_DECLARE( HostIp4, "129.158.217.107" );
-OSLTEST_DECLARE( HostName5, "koori.SFBay.Sun.COM" ); //"grande.Germany.Sun.COM" ); //Germany server for test
-OSLTEST_DECLARE( HostIp5, "10.5.32.20" );
-OSLTEST_DECLARE( HostName6, "crumple.SFBay.Sun.COM" ); //sfbay
-OSLTEST_DECLARE( HostIp6, "10.6.103.83" );
-OSLTEST_DECLARE( HostIpInval, "123.45.67.89" ); //this is valid ip number,but can not arrive --mindy
-// OSLTEST_DECLARE( HostIpInval1, "123.345.67.89" ); //this is real invalid ip number --mindy
-OSLTEST_DECLARE( HostNameInval, "www.the_hostname_that_can_not_resolvable_to_an_IP_Address.com" );
-OSLTEST_DECLARE( HostIpZero, "0.0.0.0" );
-
-// OS independent file definition
-
-OSLTEST_DECLARE( NullURL, "" );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_SOCKET_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket_Const_orig.h b/sal/qa/osl/socket/osl_Socket_Const_orig.h
deleted file mode 100644
index c59e8a2da9ed..000000000000
--- a/sal/qa/osl/socket/osl_Socket_Const_orig.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _OSL_SOCKET_CONST_H_
-#define _OSL_SOCKET_CONST_H_
-
-#include <sal/types.h>
-#include <rtl/textenc.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustring.h>
-#include <osl/socket.hxx>
-#include <osl/socket.h>
-#include <osl/thread.hxx>
-#include <osl/file.hxx>
-#include <osl/mutex.hxx>
-#include <osl/time.h>
-
-const char * pTestString1 = "test socket";
-const char * pTestString2 = " Passed#OK";
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-# include <stdio.h>
-
-// OS dependent declaration and includes
-
-#if ( defined UNX ) //Unix
-# include <unistd.h>
-# include <limits.h>
-# include <string.h>
-# include <math.h>
-# include <errno.h>
-# include <fcntl.h>
-# include <sys/stat.h>
-# include <sys/statfs.h>
-# include <sys/statvfs.h>
-# include <sys/types.h>
-# include <sys/socket.h>
-# include <netdb.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
-#endif
-#if ( defined WNT ) // Windows
-# include <winsock.h>
-# include <string.h>
-#endif
-
-// macro definition for the ASCII array/OUString declarations,
-// we use p### for the ASCII array,
-// a### for the OUString,
-// n###Len for its length
-
-#define OSLTEST_DECLARE( str_name, str_value ) \
- static const sal_Char p##str_name[] = str_value; \
- static const sal_Int32 n##str_name##Len = sizeof( p##str_name ) -1; \
- ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( p##str_name )
-
-// Ip version definition
-
-#define IP_VER 4 /// currently only IPv4 is considered.
-
-// Ip port definition
-
-#define IP_PORT_ZERO 0
-#define IP_PORT_FTP 21
-#define IP_PORT_TELNET 23
-#define IP_PORT_HTTP1 80
-#define IP_PORT_POP3 110
-#define IP_PORT_NETBIOS_DGM 138
-#define IP_PORT_NETBIOS 139
-#define IP_PORT_HTTP2 8080
-/**reference: http://www.iana.org/assignments/port-numbers */
-#define IP_PORT_MYPORT 8881 //8888
-#define IP_PORT_MYPORT1 8882 //8889
-#define IP_PORT_MYPORT2 8883 //8890
-#define IP_PORT_MYPORT3 8884 //8891
-#define IP_PORT_MYPORT4 8885 //8892
-#define IP_PORT_MYPORT5 8886 //8893
-#define IP_PORT_MYPORT6 8887 //8894
-#define IP_PORT_MYPORT7 8895
-#define IP_PORT_MYPORT8 8896
-#define IP_PORT_MYPORT9 8897
-#define IP_PORT_MYPORT10 8898
-
-#define IP_PORT_INVAL 99999
-
-// service definitions.
-
-OSLTEST_DECLARE( ServiceFTP, "ftp" );
-OSLTEST_DECLARE( ServiceTELNET, "telnet" );
-OSLTEST_DECLARE( ServiceIMAP, "imap" );
-OSLTEST_DECLARE( ServiceHTTPS, "https" );
-OSLTEST_DECLARE( ServiceNETBIOS, "netbios-dgm" );
-
-// protocol definitions.
-
-OSLTEST_DECLARE( ProtocolTCP, "tcp" );
-OSLTEST_DECLARE( ProtocolUDP, "udp" );
-
-// Hostnames.
-
-OSLTEST_DECLARE( HostName1, "localhost" );
-OSLTEST_DECLARE( HostIp1, "127.0.0.1" );
-OSLTEST_DECLARE( HostName2, "longshot.prc.sun.com" );
-OSLTEST_DECLARE( HostIp2, "129.158.217.202" );
-OSLTEST_DECLARE( HostName3, "deuce.prc.sun.com" );
-OSLTEST_DECLARE( HostIp3, "129.158.217.199" );
-OSLTEST_DECLARE( HostName4, "sceri.PRC.Sun.COM" ); //Beijing server for test
-OSLTEST_DECLARE( HostIp4, "129.158.217.107" );
-OSLTEST_DECLARE( HostName5, "koori.SFBay.Sun.COM" ); //"grande.Germany.Sun.COM" ); //Germany server for test
-OSLTEST_DECLARE( HostIp5, "10.5.32.20" );
-OSLTEST_DECLARE( HostName6, "crumple.SFBay.Sun.COM" ); //sfbay
-OSLTEST_DECLARE( HostIp6, "10.6.103.83" );
-OSLTEST_DECLARE( HostIpInval, "123.45.67.89" ); //this is valid ip number,but can not arrive --mindy
-OSLTEST_DECLARE( HostIpInval1, "123.345.67.89" ); //this is real invalid ip number --mindy
-OSLTEST_DECLARE( HostNameInval, "www.the_hostname_that_can_not_resolvable_to_an_IP_Address.com" );
-OSLTEST_DECLARE( HostIpZero, "0.0.0.0" );
-
-// OS independent file definition
-
-OSLTEST_DECLARE( NullURL, "" );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OSL_SOCKET_CONST_H_ */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket_tests.cxx b/sal/qa/osl/socket/osl_Socket_tests.cxx
deleted file mode 100644
index 2262f40177b3..000000000000
--- a/sal/qa/osl/socket/osl_Socket_tests.cxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-// include files
-
-#include <sal/types.h>
-#include <osl_Socket_Const.h>
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-#include <osl/socket.hxx>
-
-// helper functions
-
-// tests cases begins here
-
-namespace osl_Socket
-{
-
- class tests : public CppUnit::TestFixture
- {
- public:
-
- void test_001()
- {
- // _osl_getFullQualifiedDomainName( );
- oslSocketResult aResult;
- rtl::OUString suHostname = osl::SocketAddr::getLocalHostname(&aResult);
- CPPUNIT_ASSERT_MESSAGE("getLocalHostname failed", aResult == osl_Socket_Ok);
- }
-
- CPPUNIT_TEST_SUITE( tests );
- CPPUNIT_TEST( test_001 );
- CPPUNIT_TEST_SUITE_END();
- };
-
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_Socket::tests);
-}
-
-// 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.
-
-/*#if (defined LINUX)
-
-void RegisterAdditionalFunctions( FktRegFuncPtr _pFunc )
-{
- // for cover lines in _osl_getFullQualifiedDomainName( )
- // STAR_OVERRIDE_DOMAINNAME is more an internal HACK for 5.2, which should remove from sal
- setenv( "STAR_OVERRIDE_DOMAINNAME", "PRC.Sun.COM", 0 );
-}
-
-#else*/
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-//#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_Socket_tests.xsce b/sal/qa/osl/socket/osl_Socket_tests.xsce
deleted file mode 100644
index 41feee82a681..000000000000
--- a/sal/qa/osl/socket/osl_Socket_tests.xsce
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-osl_SocketTest.tests.test_001
diff --git a/sal/qa/osl/socket/osl_StreamSocket.cxx b/sal/qa/osl/socket/osl_StreamSocket.cxx
deleted file mode 100644
index 42b9b750e588..000000000000
--- a/sal/qa/osl/socket/osl_StreamSocket.cxx
+++ /dev/null
@@ -1,1364 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-/** test coder preface:
- 1. the BSD socket function will meet "unresolved external symbol error" on Windows platform
- if you are not including ws2_32.lib in makefile.mk, the including format will be like this:
-
- .IF "$(OS)" == "WNT"
- SHL1STDLIBS += $(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS += ws2_32.lib
- .ENDIF
-
- likewise on Solaris platform.
- .IF "$(OS)" != "WNT"
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- SHL1STDLIBS += -lsocket -ldl -lnsl
- .ENDIF
-
- 2. since the Socket implementation of osl is only IPv4 oriented, our test are mainly focus on IPv4
- category.
-
- 3. some fragment of Socket source implementation are lack of comment so it is hard for testers
- guess what the exact functionality or usage of a member. Hope the Socket section's comment
- will be added.
-
- 4. following functions are declared but not implemented:
- inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const;
-*/
-
-#include <sal/types.h>
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#include "sockethelper.hxx"
-#include <osl/conditn.hxx>
-
-using namespace osl;
-
-using ::rtl::OUString;
-using ::rtl::OString;
-
-#define IP_PORT_MYPORT9 8897
-#define IP_PORT_MYPORT10 18900
-
-const char * pTestString1 = "test socket";
-const char * pTestString2 = " Passed#OK";
-
-// helper functions
-
-// just used to test socket::close() when accepting
-class AcceptorThread : public Thread
-{
- ::osl::AcceptorSocket asAcceptorSocket;
- ::rtl::OUString aHostIP;
- sal_Bool bOK;
-protected:
- void SAL_CALL run( )
- {
- ::osl::SocketAddr saLocalSocketAddr( aHostIP, IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# AcceptorSocket bind address failed.\n" ) ;
- return;
- }
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# AcceptorSocket listen address failed.\n" ) ;
- return;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- bOK = sal_True;
- t_print("AcceptorThread: acceptConnection failed! \n");
- }
- }
-public:
- AcceptorThread(::osl::AcceptorSocket & asSocket, ::rtl::OUString const& aBindIP )
- : asAcceptorSocket( asSocket ), aHostIP( aBindIP )
- {
- bOK = sal_False;
- }
-
- sal_Bool isOK() { return bOK; }
-
- ~AcceptorThread( )
- {
- if ( isRunning( ) )
- {
- asAcceptorSocket.shutdown();
- t_print("# error: Acceptor thread not terminated.\n" );
- }
- }
-};
-
-/** Server Socket Thread, served as a temp little server to communicate with client.
- */
-class ServerSocketThread : public Thread
-{
- osl::Condition &m_aCondition;
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //integer not sal_Bool : sal_True);
- while ( schedule( ) == sal_True )
- {
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# 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" ) ;
- break;
- }
-
- asAcceptorSocket.enableNonBlockingMode( sal_False );
- m_aCondition.set();
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("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 );
- break;
- }
- ssStreamConnection.close();
- asAcceptorSocket.close();
-
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this server thread %d!\n", m_id );
- }
-
-public:
- // public to check if data transmition is OK
- sal_Char pReadBuffer[30];
- ServerSocketThread( osl::Condition &_aCond ):m_aCondition(_aCond)
- {
- m_aCondition.reset();
- t_print("#init ServerSocketThread\n");
- m_id = getIdentifier( );
- //t_print("# successfully create this ServerSocketThread %d!\n", m_id );
- }
-
- ~ServerSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: ServerSocketThread has not terminated.\n" );
- }
-};
-
-/** Client Socket Thread, served as a temp little client to communicate with server.
- */
-class ClientSocketThread : public Thread
-{
-protected:
- osl::Condition &m_aCondition;
- oslThreadIdentifier m_id;
- ::osl::SocketAddr m_saTargetSocketAddr;
- ::osl::ConnectorSocket m_csConnectorSocket;
-
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- /// if the thread should terminate, schedule return false
- //while ( schedule( ) == sal_True )
- //{
- if ( osl::Condition::result_ok != m_aCondition.wait( pTimeout ) )
- {
- free( pTimeout );
- return;
- }
-
- if ( osl_Socket_Ok == m_csConnectorSocket.connect( m_saTargetSocketAddr, pTimeout ))
- {
- m_csConnectorSocket.send( pTestString1, 11 ); // "test socket"
- m_csConnectorSocket.send( pTestString2, 10);
- }
- else
- t_print("# ClientSocketThread: connect failed! \n");
- // terminate();
- //}
- m_csConnectorSocket.close();
- free( pTimeout );
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
-public:
- ClientSocketThread( osl::Condition &_aCond ):
- m_aCondition(_aCond),
- m_saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT9 ),
- m_csConnectorSocket( )
- {
- m_id = getIdentifier( );
- //t_print("# successfully create this client thread %d!\n", m_id );
- }
-
- ~ClientSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- }
-
-};
-
-// Helper functions, to create buffers, check buffers
-class ValueCheckProvider
-{
- bool m_bFoundFailure;
- char *m_pBuffer;
- sal_Int32 m_nBufferSize;
-
-public:
- ValueCheckProvider()
- :m_bFoundFailure(false),
- m_pBuffer(NULL),
- m_nBufferSize(0)
- {
- }
-
- bool isFailure() {return m_bFoundFailure;}
-
- const char* getBuffer() {return m_pBuffer;}
- char* getWriteBuffer() {return m_pBuffer;}
-
- sal_Int32 getBufferSize() {return m_nBufferSize;}
-
- bool checkValues(sal_Int32 _nLength, int _nValue)
- {
- m_bFoundFailure = false;
- for(sal_Int32 i=0;i<_nLength;i++)
- {
- if (m_pBuffer[i] != _nValue)
- {
- m_bFoundFailure = true;
- }
- }
- return m_bFoundFailure;
- }
-
- void createBuffer(sal_Int32 _nLength, int _nValue)
- {
- m_nBufferSize = _nLength;
- m_pBuffer = (char*) malloc(m_nBufferSize);
- if (m_pBuffer)
- {
- memset(m_pBuffer, _nValue, m_nBufferSize);
- }
- }
-
- void freeBuffer()
- {
- if (m_pBuffer) free(m_pBuffer);
- }
-
-};
-
-/** Client Socket Thread, served as a temp little client to communicate with server.
- */
-
-class ReadSocketThread : public Thread
-{
- ValueCheckProvider m_aValues;
- int m_nValue;
- osl::Condition &m_aCondition;
-
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- ::osl::SocketAddr m_aTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT10 );
- ::osl::ConnectorSocket m_aConnectorSocket;
-
- if (! m_aTargetSocketAddr.is())
- {
- t_print("# SocketAddr was NOT created successfully!\n");
- }
- else
- {
- t_print("start ReadSocketThread\n");
-
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- m_aCondition.wait();
-
- t_print("connect()\n");
-
- oslSocketResult eResult = m_aConnectorSocket.connect( m_aTargetSocketAddr, pTimeout );
- if ( osl_Socket_Ok == eResult )
- {
- sal_Int32 nReadCount = m_aConnectorSocket.read( m_aValues.getWriteBuffer(), m_aValues.getBufferSize() );
- m_aValues.checkValues(nReadCount, m_nValue);
- }
- else
- {
- t_print("# ReadSocketThread: connect failed! \n");
- printSocketResult(eResult);
- }
-
- //remove this line for deadlock on solaris( margritte.germany )
- m_aConnectorSocket.close();
- free( pTimeout );
- }
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
-public:
- sal_Int32 getCount() {return m_aValues.getBufferSize();}
- bool isOk() {return m_aValues.isFailure() == true ? false : true;}
-
- ReadSocketThread(sal_Int32 _nBufferSize, int _nValue, osl::Condition &_aCond )
- : m_nValue( _nValue ),
- m_aCondition(_aCond)
- {
- t_print("#init ReadSocketThread\n");
- m_id = getIdentifier( );
-
- //t_print("# successfully create this client thread %d!\n", m_id );
- m_aValues.createBuffer(_nBufferSize, 0);
- }
-
- ~ReadSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- m_aValues.freeBuffer();
- }
-
-};
-
-/** Server Socket Thread, write a file which is large
- */
-class WriteSocketThread : public Thread
-{
- ValueCheckProvider m_aValues;
- osl::Condition &m_aCondition;
-
-protected:
- oslThreadIdentifier m_id;
-
- void SAL_CALL run( )
- {
- t_print("start WriteSocketThread\n");
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT10 );
- if (! saLocalSocketAddr.is())
- {
- t_print("LocalSocketAddr was NOT created successfully!\n");
- }
-
- ::osl::StreamSocket ssStreamConnection;
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- /// if the thread should terminate, schedule return false
- // while ( schedule( ) == sal_True )
- // {
- t_print("bind()\n");
- sal_Bool bOK1 = asAcceptorSocket.bind( saLocalSocketAddr );
- if ( sal_True != bOK1 )
- {
- t_print("# WriteSocketThread: AcceptorSocket bind address failed. \n" ) ;
- }
- else
- {
- t_print("listen()\n");
- sal_Bool bOK2 = asAcceptorSocket.listen( 1 );
- if ( sal_True != bOK2 )
- {
- t_print("# WriteSocketThread: AcceptorSocket listen address failed. \n" ) ;
- }
- else
- {
-
- // blocking mode, if read/recv failed, block until success
- asAcceptorSocket.enableNonBlockingMode( sal_False);
- t_print("acceptConnection()\n");
- m_aCondition.set();
-
- oslSocketResult eResult = asAcceptorSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("WriteSocketThread: acceptConnection failed! \n");
- }
- else
- {
-
- t_print("write()\n");
-
- ssStreamConnection.write( m_aValues.getBuffer(), m_aValues.getBufferSize() );
- t_print("done written.\n");
- }
- }
- }
- ssStreamConnection.close();
- asAcceptorSocket.close();
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this server thread %d!\n", m_id );
- }
-
-public:
- // public to check if data transmition is OK
- WriteSocketThread(sal_Int32 _nBufferSize, int _nValue, osl::Condition &_aCond )
- : m_aCondition(_aCond)
- {
- m_aCondition.reset();
-
- t_print("#init WriteSocketThread\n");
- m_id = getIdentifier( );
- //t_print("# successfully create this server thread %d!\n", m_id );
-
- m_aValues.createBuffer(_nBufferSize, _nValue);
- }
-
- ~WriteSocketThread( )
- {
- if ( isRunning( ) )
- t_print("# error: server thread not terminated.\n" );
- m_aValues.freeBuffer();
- }
-};
-
-namespace osl_StreamSocket
-{
-
- /** testing the methods:
- inline StreamSocket(oslAddrFamily Family = osl_Socket_FamilyInet,
- oslProtocol Protocol = osl_Socket_ProtocolIp,
- oslSocketType Type = osl_Socket_TypeStream);
-
- inline StreamSocket( const StreamSocket & );
-
- inline StreamSocket( oslSocket Socket , __sal_NoAcquire noacquire );
-
- inline StreamSocket( oslSocket Socket );
- */
-
- class ctors : public CppUnit::TestFixture
- {
- public:
- oslSocket sHandle;
- // initialization
- void setUp( )
- {
- sHandle = osl_createSocket( osl_Socket_FamilyInet, osl_Socket_TypeStream, osl_Socket_ProtocolIp );
- }
-
- void tearDown( )
- {
- sHandle = NULL;
- }
-
- void ctors_none()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_none constructor function: check if the stream socket was created successfully.",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_acquire()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( sHandle );
-
- CPPUNIT_ASSERT_MESSAGE( "test for ctors_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_no_acquire()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( sHandle, SAL_NO_ACQUIRE );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_no_acquire constructor function: check if the socket was created successfully",
- osl_Socket_TypeStream == ssSocket.getType( ) );
- }
-
- void ctors_copy_ctor()
- {
- /// Socket constructor.
- ::osl::StreamSocket ssSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- /// Socket copy constructor.
- ::osl::StreamSocket copySocket( ssSocket );
-
- CPPUNIT_ASSERT_MESSAGE(" test for ctors_copy_ctor constructor function: create new Socket instance using copy constructor",
- osl_Socket_TypeStream == copySocket.getType( ) );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_none );
- CPPUNIT_TEST( ctors_acquire );
- CPPUNIT_TEST( ctors_no_acquire );
- CPPUNIT_TEST( ctors_copy_ctor );
- CPPUNIT_TEST_SUITE_END();
-
- }; // class ctors
-
- class send_recv: public CppUnit::TestFixture
- {
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- void send_recv1()
- {
- osl::Condition aCondition;
- //client sent two strings, and server received, check the order and value
- ServerSocketThread myServerThread( aCondition );
- ClientSocketThread myClientThread( aCondition );
- myServerThread.create( );
- myClientThread.create( );
-
- //wait until the thread terminate
- myClientThread.join( );
- myServerThread.join( );
- sal_Char myStr[30] = "";
- strcat( myStr, pTestString1 );
- strcat( myStr, pTestString2 );
- sal_Int32 nRes = strcmp( myServerThread.pReadBuffer, myStr );
- CPPUNIT_ASSERT_MESSAGE(" test for send/recv with two threads: launch Server/Client threads, send data from client, check received data in Server thread.",
- nRes == 0 );
- }
-
- // error when recv
- void send_recv2()
- {
- ::osl::AcceptorSocket asAcceptorSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT9 );
- ::osl::StreamSocket ssStreamConnection;
- sal_Char pReadBuffer[30] = "";
-
- osl::Condition aCondition;
- aCondition.reset();
- ClientSocketThread myClientThread( aCondition );
- myClientThread.create( );
-
- asAcceptorSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
-
- asAcceptorSocket.bind( saLocalSocketAddr );
- asAcceptorSocket.listen( 1 );
- asAcceptorSocket.enableNonBlockingMode( sal_True );
- aCondition.set();
-
- asAcceptorSocket.acceptConnection( ssStreamConnection );
- sal_Int32 nReadNumber = ssStreamConnection.recv( pReadBuffer, 11 );
-
- myClientThread.join( ) ;
- ssStreamConnection.close();
- asAcceptorSocket.close();
- CPPUNIT_ASSERT_MESSAGE(" test for send/recv, recv error!", nReadNumber == -1 );
- }
-
- // LLA: This is a helper function, which create 2 threads, a server and a client.
- // the server writes the buffersize to the client.
-
- void write_read(sal_Int32 _nBufferSize, int _nValue)
- {
- //client sent two strings, and server received, check the order and value
- osl::Condition aCondition;
- WriteSocketThread myServerThread(_nBufferSize, _nValue, aCondition);
- ReadSocketThread myClientThread(_nBufferSize, _nValue, aCondition);
- myServerThread.create( );
-// thread_sleep( 1 );
- myClientThread.create( );
-
- //wait until the thread terminate
- myClientThread.join( );
- myServerThread.join( );
-
- //Maximum Packet Size is ( ARPANET, MILNET = 1007 Ethernet (10Mb) = 1500
- // Proteon PRONET = 2046), so here test read 4000 bytes
- sal_Int32 nLength = myClientThread.getCount();
- bool bIsOk = myClientThread.isOk(); // check if the values are right.
-
- t_print("Length:=%d\n", (int) nLength);
- t_print(" bIsOk:=%d\n", bIsOk);
-
- CPPUNIT_ASSERT_MESSAGE(" test for write/read values with two threads: send data from server, check readed data in client.",
- nLength == _nBufferSize && bIsOk == true);
- }
-
- // Tests with different values and sizes
- void write_read_001()
- {
- write_read(50, 10);
- }
- void write_read_002()
- {
- write_read(1024, 20);
- }
- void write_read_003()
- {
- write_read(4000, 1);
- }
- void write_read_004()
- {
- write_read(8192, 3);
- }
- void write_read_005()
- {
- write_read(32768, 3);
- }
-
- CPPUNIT_TEST_SUITE( send_recv );
- CPPUNIT_TEST( write_read_001 );
- CPPUNIT_TEST( write_read_002 );
- CPPUNIT_TEST( write_read_003 );
- CPPUNIT_TEST( write_read_004 );
- CPPUNIT_TEST( write_read_005 );
- CPPUNIT_TEST( send_recv1 );
- CPPUNIT_TEST( send_recv2 );
-// CPPUNIT_TEST( write_read );
- CPPUNIT_TEST_SUITE_END();
- }; // class send_recv
-
- class SendClientThread : public Thread
- {
- protected:
- ::osl::SocketAddr m_saTargetSocketAddr;
- ::osl::ConnectorSocket m_csConnectorSocket;
- void SAL_CALL run( )
- {
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 5;
- pTimeout->Nanosec = 0;
-
- if ( osl_Socket_Ok == m_csConnectorSocket.connect( m_saTargetSocketAddr, pTimeout ))
- {
-#if !SILENT_TEST
- sal_Int32 nWrite1 =
-#endif
- m_csConnectorSocket.write( pTestString1, 11 ); // "test socket"
-#if !SILENT_TEST
- sal_Int32 nWrite2 =
-#endif
- m_csConnectorSocket.write( pTestString2, strlen( pTestString2 ) + 1 );
- thread_sleep( 2 );
- m_csConnectorSocket.write( pTestString2, strlen( pTestString2 ) + 1 );
- t_print("nWrite1 is %d, nWrite2 is %d\n", (int) nWrite1, (int) nWrite2 );
- //thread_sleep( 1 );
- }
- else
- t_print("# SendClientThread: connect failed! \n");
-
- m_csConnectorSocket.close();
- free( pTimeout );
- }
- public:
- SendClientThread( ):
- m_saTargetSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT9 ),
- m_csConnectorSocket( )
- {
- //t_print("# successfully create this SendClientThread %d!\n", m_id );
- }
-
- ~SendClientThread( )
- {
- if ( isRunning( ) )
- t_print("# error: SendClientThread has not terminated.\n" );
- }
-
- };
-
- class shutdown: public CppUnit::TestFixture
- {
- public:
- // initialization
- void setUp( )
- {
- }
-
- void tearDown( )
- {
-
- }
-
- // similar to close_002
- void shutdown_001()
- {
-#if defined(LINUX)
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- AcceptorThread myAcceptorThread( asSocket, rtl::OUString("127.0.0.1") );
- myAcceptorThread.create();
-
- thread_sleep( 1 );
-
- //when accepting, shutdown the socket, the thread will not block for accepting
- asSocket.shutdown();
- myAcceptorThread.join();
-
- CPPUNIT_ASSERT_MESSAGE( "test for close when is accepting: the socket will quit accepting status.",
- myAcceptorThread.isOK( ) == sal_True );
-#endif
- }
-
- void shutdown_002()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT9);
- asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
- sal_Char pReadBuffer[40];
-// osl::Condition aCondition;
- SendClientThread mySendThread;
- mySendThread.create();
-
- asSocket.enableNonBlockingMode( sal_False );
- ::osl::StreamSocket ssConnectionSocket;
- oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
-
- /* set socket option SO_LINGER 0, so close immediately */
- linger aLingerSet;
- sal_Int32 nBufferLen = sizeof( struct linger );
- aLingerSet.l_onoff = 0;
- aLingerSet.l_linger = 0;
-
- ssConnectionSocket.setOption( osl_Socket_OptionLinger, &aLingerSet, nBufferLen );
- thread_sleep( 1 );
- //sal_uInt32 nRecv1 = 0;
- sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
-
- //shutdown read after client the first send complete
- ssConnectionSocket.shutdown( osl_Socket_DirRead );
-
- sal_Int32 nRead2 = ssConnectionSocket.read( pReadBuffer + nRead1, 12 );
- sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 + nRead2, 12 );
- t_print("after read 2, nRead1 is %d, nRead2 is %d, nRead3 is %d \n", (int) nRead1, (int) nRead2, (int) nRead3 );
- mySendThread.join();
-
- ssConnectionSocket.close();
- asSocket.close();
-
- /* on Linux, if send is before shutdown(DirRead), can read, nRecv2 still > 0,
- http://dbforums.com/arch/186/2002/12/586417
- While on Solaris, after shutdown(DirRead), all read will return 0
- */
-#ifdef LINUX
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).",
- nRead1 > 0 && nRead3 == 0 );
-#else
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not read(recv).",
- nRead1 > 0 && nRead2 == 0 && nRead3 == 0 );
-#endif
-
- }
-
- void shutdown_003()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr saLocalSocketAddr( rtl::OUString("127.0.0.1"), IP_PORT_MYPORT9);
- asSocket.setOption( osl_Socket_OptionReuseAddr, 1 );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: bind fail", asSocket.bind( saLocalSocketAddr ) == sal_True);
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: listen fail", asSocket.listen( 1 ) == sal_True );
- sal_Char pReadBuffer[40];
- osl::Condition aCondition;
- SendClientThread mySendThread;
- mySendThread.create();
-
- asSocket.enableNonBlockingMode( sal_False );
- ::osl::StreamSocket ssConnectionSocket;
- oslSocketResult eResult = asSocket.acceptConnection( ssConnectionSocket );
- CPPUNIT_ASSERT_MESSAGE("shutdown_002: acceptConnection fail", eResult == osl_Socket_Ok );
-
- thread_sleep( 1 );
- //shutdown write after client the first send complete
- ssConnectionSocket.shutdown( osl_Socket_DirWrite );
-
- // recv should not shutdown
- sal_Int32 nRead1 = ssConnectionSocket.read( pReadBuffer, 11 );
-
- sal_Int32 nWrite = ssConnectionSocket.write( pReadBuffer, 11 );
- // still can read
- sal_Int32 nRead3 = ssConnectionSocket.read( pReadBuffer + nRead1 , 12 );
- t_print("after read 2, nRead1 is %d, nWrite is %d, nRead3 is %d\n", (int) nRead1, (int) nWrite, (int) nRead3 );
- mySendThread.join();
- ssConnectionSocket.close();
- asSocket.close();
-
- CPPUNIT_ASSERT_MESSAGE( "test for shutdown read direction: the socket can not send(write).",
- nRead1 > 0 && nWrite == 0 && nRead3 > 0);
-
- }
-
- CPPUNIT_TEST_SUITE( shutdown );
- CPPUNIT_TEST( shutdown_001 );
- CPPUNIT_TEST( shutdown_002 );
- CPPUNIT_TEST( shutdown_003 );
- CPPUNIT_TEST_SUITE_END();
- }; // class shutdown
-
- class isExceptionPending: public CppUnit::TestFixture
- {
- public:
- void isExPending_001()
- {
- ::osl::AcceptorSocket asSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
- sal_Bool bOk = asSocket.isExceptionPending( pTimeout );
- free( pTimeout );
-
- CPPUNIT_ASSERT_MESSAGE( "test for isExceptionPending.",
- bOk == sal_False );
- }
-
- /**tester's comments: lack of a case that return sal_True, do not know when it will return sal_True*/
-
- CPPUNIT_TEST_SUITE( isExceptionPending );
- CPPUNIT_TEST( isExPending_001 );
- CPPUNIT_TEST_SUITE_END();
- }; // class isExceptionPending
-
-/** Client Socket Thread, served as a temp little client to communicate with server.
- */
-
-#define IP_PORT_TEST 8900
-
- class ReadSocket2Thread : public Thread
- {
- osl::Condition &m_aCondition;
- char* m_pBuffer;
- sal_Int32 m_nBufferSize;
- sal_Int32 m_nReadCount;
- rtl::OString m_sAddr;
-
- bool m_bOk;
-
- void setFailed()
- {
- m_bOk = false;
- }
-
- protected:
- oslThreadIdentifier m_id;
-
- void read()
- {
- if (m_sAddr.getLength() == 0)
- {
- setFailed();
- return;
- }
-
- // 10.16.66.252
- ::osl::SocketAddr aSocketAddr( rtl::OUString::createFromAscii(m_sAddr.getStr()), IP_PORT_TEST );
- ::osl::ConnectorSocket aSocket; // ( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
-
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- m_aCondition.wait();
- t_print("wait done\n");
-
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 20;
- pTimeout->Nanosec = 0;
-
- // blocking mode, if read/recv failed, block until success
- t_print("enableNonBlockingMode(false)\n");
- aSocket.enableNonBlockingMode( sal_False );
-
- t_print("connect()\n");
- oslSocketResult eResult = aSocket.connect( aSocketAddr, pTimeout );
- if ( osl_Socket_Ok == eResult)
- {
- if (m_pBuffer)
- {
- t_print("read()\n");
- m_nReadCount = aSocket.read( m_pBuffer, m_nBufferSize );
- t_print("%d bytes received.\n", (int) m_nReadCount);
- }
- }
- else
- {
- t_print("# ReadSocket2Thread: connect failed! \n");
- printSocketResult(eResult);
- setFailed();
- }
-
- //remove this line for deadlock on solaris( margritte.germany )
- aSocket.close();
- free( pTimeout );
- }
-
- void SAL_CALL run( )
- {
- read();
- }
-
- void SAL_CALL onTerminated( )
- {
- //t_print("# normally terminate this thread %d!\n", m_id );
- }
-
- public:
- sal_Int32 getCount() { return m_nReadCount; }
- bool isOk() { return m_nReadCount != 0; }
- bool getFailed() { return m_bOk == false; }
-
- ReadSocket2Thread(osl::Condition &_aCondition)
- :m_aCondition(_aCondition),
- m_nReadCount(0),
- m_bOk( true )
- {
- m_aCondition.reset();
- m_pBuffer = (char*) malloc(1024);
- if (m_pBuffer)
- {
- m_nBufferSize = 1024;
- }
-
- m_id = getIdentifier( );
- //t_print("# successfully create this client thread %d!\n", m_id );
- }
-
- void setAddr(rtl::OString const& _sAddr)
- {
- m_sAddr = _sAddr;
- }
-
- ~ReadSocket2Thread( )
- {
- if ( isRunning( ) )
- t_print("# error: client thread not terminated.\n" );
- free(m_pBuffer);
- }
-
- };
-
- class justtest : public CppUnit::TestFixture
- {
- void send_Acceptor(rtl::OString const& _sAddr, osl::Condition &)
- {
- ::osl::AcceptorSocket aSocket; // ( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr;
-
- if (! aSocketAddr.setPort(IP_PORT_TEST))
- {
- t_print("# can not set port\n" );
- }
-
- if (! aSocketAddr.setHostname(rtl::OUString::createFromAscii(_sAddr.getStr())))
- {
- t_print("# can not set hostname/ip\n" );
- }
-
- rtl::OUString aHostname = aSocketAddr.getHostname();
- aSocketAddr.getPort();
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True);
-
- /// if the thread should terminate, schedule return false
- // while ( schedule( ) == sal_True )
- // {
- if (! aSocket.bind( aSocketAddr ))
- {
- t_print("# can't bind.\n" );
- }
- if (! aSocket.listen( ))
- {
- t_print("# can't listen. \n" );
- }
-
- // blocking mode, if read/recv failed, block until success
- aSocket.enableNonBlockingMode( sal_False);
- ::osl::StreamSocket ssStreamConnection;
-
- oslSocketResult eResult = aSocket.acceptConnection( ssStreamConnection );
- if (eResult != osl_Socket_Ok )
- {
- t_print("WriteSocketThread: acceptConnection failed! \n");
- // break;
- }
- char const * pBuffer = "Test String\n";
- sal_Int32 nBufferSize = strlen(pBuffer);
- ssStreamConnection.write( pBuffer, nBufferSize );
- // break;
- // }
-
- // ssStreamConnection.close();
- aSocket.close();
- }
-
- void send_Connector(rtl::OString const& _sAddr, osl::Condition &/*_aCondition*/ )
- {
- ::osl::ConnectorSocket aSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr( rtl::OUString::createFromAscii(_sAddr.getStr()), IP_PORT_TEST );
-
- if (! aSocketAddr.is())
- {
- t_print("is failed.\n");
- return;
- }
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- oslSocketResult aResult = aSocket.connect( aSocketAddr );
- if ( aResult != osl_Socket_Ok )
- {
- t_print("# send_Connector: connect failed. \n" );
- }
- else
- {
- // blocking mode, if read/recv failed, block until success
-// aSocket.enableNonBlockingMode( sal_False );
-
-// _aCondition.set();
-
- ::osl::StreamSocket ssStreamConnection(aSocket);
-
- char const * pBuffer = "GET / HTTP/1.0\015\012\015\012";
- sal_Int32 nBufferSize = strlen(pBuffer);
- ssStreamConnection.write( pBuffer, nBufferSize );
-
- char *pBufferPeek = (char*) malloc(1024);
- sal_Int32 nReadNumber = ssStreamConnection.recv( pBufferPeek, 1024, osl_Socket_MsgPeek);
- free(pBufferPeek);
-
- char *pBuffer2 = (char*) malloc(nReadNumber + 1);
- sal_Int32 nReadNumberReal = ssStreamConnection.read( pBuffer2, nReadNumber );
- pBuffer2[nReadNumberReal] = '\0';
-
- t_print("received: %s\n", pBuffer2);
-
- rtl::OUString suError = ssStreamConnection.getErrorAsString();
- free(pBuffer2);
- // ssStreamConnection.close();
-
- // ssStreamConnection.close();
- }
- aSocket.shutdown(osl_Socket_DirReadWrite);
- aSocket.close();
- }
-
- public:
- // LLA: send_Connector_2_margritte works, it send strings to echo server on margritte
- // but can not receive anything
-
- void send_Connector_2_margritte(rtl::OString const& _sAddr)
- {
- ::osl::ConnectorSocket aSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr( rtl::OUString::createFromAscii(_sAddr.getStr()), IP_PORT_TEST );
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- oslSocketResult aResult = aSocket.connect( aSocketAddr );
- if ( aResult != osl_Socket_Ok )
- {
- t_print("# connect failed. \n" );
- }
- else
- {
- // blocking mode, if read/recv failed, block until success
- aSocket.enableNonBlockingMode( sal_False );
-
- ::osl::StreamSocket ssStreamConnection(aSocket);
-
- char const * pBuffer = "Test String\n";
- sal_Int32 nBufferSize = strlen(pBuffer);
- ssStreamConnection.write( pBuffer, nBufferSize );
-
- char const * pBuffer3 = "quit\n";
- nBufferSize = strlen(pBuffer3);
- ssStreamConnection.write( pBuffer3, nBufferSize );
-
- ssStreamConnection.close();
- }
- aSocket.close();
- }
-
- void send_recv_2_margritte()
- {
- rtl::OString sAddr;
- sAddr = "margritte.germany.sun.com";
- if ( ifAvailable(rtl::OUString::createFromAscii(sAddr.getStr())) == sal_True )
- {
- t_print("found %s!\n", sAddr.getStr());
- }
- send_Connector_2_margritte(sAddr);
- }
-
- void send_recv()
- {
- rtl::OString sAddr;
- // if ( ifAvailable(rtl::OUString("margritte.germany")) == sal_True )
- // {
- // t_print("margritte is alive ! \n");
- // sAddr = "margritte.germany";
- // }
-
- sAddr = "margritte.germany.sun.com";
- if ( ifAvailable(rtl::OUString::createFromAscii(sAddr.getStr())) == sal_True )
- {
- t_print("found %s!\n", sAddr.getStr());
- }
-// else
-// {
-// if ( ifAvailable(rtl::OUString("192.168.7.2")) == sal_True )
-// {
-// sAddr = "192.168.7.2";
-// t_print("moon found ! \n");
-// }
-// else
-// {
-// if ( ifAvailable(rtl::OUString("moon.linux.bogus")) == sal_True )
-// {
-// sAddr = "moon.linux.bogus";
-// t_print("moon found ! \n");
-// }
-// else
-// {
-// if ( ifAvailable(rtl::OUString("moon")) == sal_True )
-// {
-// sAddr = "moon";
-// t_print("moon found ! \n");
-// }
-// }
-// }
-// }
-
- // if ( ifAvailable(rtl::OUString("10.16.64.196")) == sal_False )
- // {
- // t_print("ip 10.16.64.196 is not alive! \n");
- // return;
- // }
-
- osl::Condition aCondition;
- ReadSocket2Thread myReadThread(aCondition);
- myReadThread.setAddr(sAddr);
-// myReadThread.create();
-
- thread_sleep( 2 );
- if (! myReadThread.getFailed())
- {
- // send_Acceptor(sAddr, aCondition);
- send_Connector(sAddr, aCondition);
-
- thread_sleep( 2 );
- if (myReadThread.isRunning())
- {
- myReadThread.join();
- }
- // termAndJoinThread(&myReadThread);
-
- // statistics
-#if !SILENT_TEST
- sal_uInt32 nLength =
-#endif
- myReadThread.getCount();
-
-#if !SILENT_TEST
- bool bIsOk =
-#endif
- myReadThread.isOk(); // check if the values are right.
-
- t_print("Length:=%d\n", (int) nLength);
- t_print(" bIsOk:=%d\n", bIsOk);
- }
- else
- {
- t_print("ERROR: No echo Server on %s found.\n", sAddr.getStr());
- }
- }
-
- void getPage(rtl::OString const& _sAddr);
- void test_getPage()
- {
- // rtl::OString sPage("lla-1.germany.sun.com");
- // getPage(sPage);
-
- rtl::OString sPage("lla-1");
- getPage(sPage);
- }
-
- CPPUNIT_TEST_SUITE( justtest );
- CPPUNIT_TEST( send_recv );
- CPPUNIT_TEST( test_getPage );
- CPPUNIT_TEST_SUITE_END();
- }; // class isExceptionPending
-
- void justtest::getPage(rtl::OString const& _sAddr)
- {
- rtl::OUString suAddr = rtl::OUString::createFromAscii(_sAddr.getStr());
- ::osl::ConnectorSocket aSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr( suAddr, 80 );
-
- {
- // some checks
- aSocketAddr.getPort();
- oslSocketResult aResult;
- rtl::ByteSequence aSeq = aSocketAddr.getAddr(&aResult);
- if (aResult != osl_Socket_Ok)
- {
- t_print("problem with getAddr: ");
- printSocketResult(aResult);
- }
-
- rtl::OUString sStr = aSocketAddr.getHostname(&aResult);
- if (aResult != osl_Socket_Ok)
- {
- t_print("problem with hostname: ");
- printSocketResult(aResult);
- }
- }
-
- oslSocketResult aResult;
-
- // SocketAddr::resolveHostname(suAddr, aSocketAddr);
- // if (! aSocketAddr.is())
- // {
- // t_print("Can't resolve Hostname.\n");
- // return;
- // }
- // rtl::OUString sStr = aSocketAddr.getHostname(&aResult);
- // if (aResult != osl_Socket_Ok)
- // {
- // t_print("problem with hostname: ");
- // printSocketResult(aResult);
- //
- // }
-
- if (! aSocketAddr.is())
- {
- t_print("SocketAddr::is() failed.\n");
- return;
- }
-
- //if has not set this option, socket addr can not be binded in some time(maybe 2 minutes) by another socket
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- aResult = aSocket.connect( aSocketAddr );
- if ( aResult != osl_Socket_Ok )
- {
- t_print("# send_Connector: connect failed. \n" );
- }
- else
- {
- // blocking mode, if read/recv failed, block until success
-// aSocket.enableNonBlockingMode( sal_False );
-
-// _aCondition.set();
-
- ::osl::StreamSocket ssStreamConnection(aSocket);
-
- char const * pBuffer = "GET / HTTP/1.0\015\012\015\012";
- sal_Int32 nBufferSize = strlen(pBuffer);
- ssStreamConnection.write( pBuffer, nBufferSize );
-
- char *pBufferPeek = (char*) malloc(1024);
- sal_Int32 nReadNumber = 1;
- while ( nReadNumber != 0)
- {
- nReadNumber = ssStreamConnection.recv( pBufferPeek, 1024, osl_Socket_MsgPeek);
- if (nReadNumber > 0)
- {
- char *pBuffer2 = (char*) malloc(nReadNumber + 1);
- sal_Int32 nReadNumberReal = ssStreamConnection.read( pBuffer2, nReadNumber );
- pBuffer2[nReadNumberReal] = '\0';
- t_print("%s", pBuffer2);
- free(pBuffer2);
- }
- }
- free(pBufferPeek);
-
- rtl::OUString suError = ssStreamConnection.getErrorAsString();
- }
- aSocket.shutdown(osl_Socket_DirReadWrite);
- aSocket.close();
- }
-
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::ctors);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::send_recv);
-// CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::shutdown);
- CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::isExceptionPending);
-
-// CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamSocket::justtest);
-
-} // namespace osl_StreamSocket
-
-// 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.
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/osl_StreamSocket.xsce b/sal/qa/osl/socket/osl_StreamSocket.xsce
deleted file mode 100644
index 45c7652fbab4..000000000000
--- a/sal/qa/osl/socket/osl_StreamSocket.xsce
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-osl_StreamSocket.send_recv.send_recv2
-osl_StreamSocket.send_recv.write_read_001 wntmsci unxsols
-osl_StreamSocket.justtest.test_getPage wntmsci
-
diff --git a/sal/qa/osl/socket/sockethelper.cxx b/sal/qa/osl/socket/sockethelper.cxx
deleted file mode 100644
index df4f5e7c11ca..000000000000
--- a/sal/qa/osl/socket/sockethelper.cxx
+++ /dev/null
@@ -1,326 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <sal/types.h>
-#include "sockethelper.hxx"
-#include <cppunit/TestFixture.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
-#if OSL_DEBUG_LEVEL > 0
-# define SILENT_TEST 0
-#else
-# define SILENT_TEST 1
-#endif
-
-#if SILENT_TEST
-# define t_print(...) { }
-#else
-# define t_print printf
-#endif
-
-// Ip version definition
-
-#define IP_VER 4 /// currently only IPv4 is considered.
-
-// helper functions
-
-/** compare two OUString.
-*/
-sal_Bool compareUString( const ::rtl::OUString & ustr1, const ::rtl::OUString & ustr2 )
-{
- sal_Bool bOk = ustr1.equalsIgnoreAsciiCase( ustr2 );
-
- return bOk;
-}
-
-/** compare a OUString and an ASCII string.
-*/
-sal_Bool compareUString( const ::rtl::OUString & ustr, const sal_Char *astr )
-{
- ::rtl::OUString ustr2 = rtl::OUString::createFromAscii( astr );
- sal_Bool bOk = ustr.equalsIgnoreAsciiCase( ustr2 );
-
- return bOk;
-}
-
-/** compare two socket address.
-*/
-sal_Bool compareSocketAddr( const ::osl::SocketAddr & addr1 , const ::osl::SocketAddr & addr2 )
-{
- return ( ( sal_True == compareUString( addr1.getHostname( 0 ), addr2.getHostname( 0 ) ) ) && ( addr2.getPort( ) == addr2.getPort( ) ) );
-}
-
-/** print a UNI_CODE String. And also print some comments of the string.
-*/
-void printUString( const ::rtl::OUString & str, const char* msg)
-{
-#if SILENT_TEST
- (void)str;
- (void)msg;
-#else
- t_print("#%s #printUString_u# ", msg );
- rtl::OString aString;
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", aString.getStr( ) );
-#endif
-}
-
-/** get the local host name.
- mindy: gethostbyname( "localhost" ), on Linux, it returns the hostname in /etc/hosts + domain name,
- if no entry in /etc/hosts, it returns "localhost" + domain name
-*/
-::rtl::OUString getHost()
-{
- struct hostent *hptr;
-
- hptr = gethostbyname( "localhost" );
- OSL_ENSURE( hptr != NULL, "#In getHostname function, error on gethostbyname()" );
- ::rtl::OUString aUString = ::rtl::OUString::createFromAscii( (const sal_Char *) hptr->h_name );
-
- return aUString;
-}
-
-/** get the full host name of the current processor, such as "aegean.prc.sun.com" --mindyliu
-*/
-::rtl::OUString getThisHostname()
-{
- ::rtl::OUString aUString;
-#ifdef WNT
- struct hostent *hptr;
- hptr = gethostbyname( "localhost" );
- OSL_ENSURE( hptr != NULL, "#In getHostname function, error on gethostbyname()" );
- rtl::OString sHostname(hptr->h_name);
- aUString = ::rtl::OStringToOUString(sHostname, RTL_TEXTENCODING_ASCII_US);
-#else
- char hostname[255];
- if (gethostname(hostname, 255) != 0) {
- OSL_FAIL( "#Error: gethostname failed." );
- }
-
- struct hostent *hptr;
- //first search /ets/hosts, then search from dns
- hptr = gethostbyname( hostname);
- if ( hptr != NULL )
- {
- strcpy( hostname, hptr->h_name );
- }
-
- t_print("hostname is %s \n", hostname );
- rtl::OString sHostname( hostname );
- aUString = ::rtl::OStringToOUString( sHostname, RTL_TEXTENCODING_ASCII_US );
- aUString.getLength();
-#endif
- return aUString;
-}
-
-/** get IP by name, search /etc/hosts first, then search from dns, fail return OUString("")
-*/
-::rtl::OUString getIPbyName( rtl::OString const& str_name )
-{
- ::rtl::OUString aUString;
- struct hostent *hptr;
- //first search /ets/hosts, then search from dns
- hptr = gethostbyname( str_name.getStr());
- if ( hptr != NULL )
- {
- struct in_addr ** addrptr;
- addrptr = (struct in_addr **) hptr->h_addr_list ;
- //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));
- aUString = ::rtl::OUString::createFromAscii( (sal_Char *) (inet_ntoa(**addrptr)) );
- }
- }
- return aUString;
-}
-
-/** get local ethernet IP
-*/
-::rtl::OUString getLocalIP( )
-{
- char hostname[255];
- gethostname(hostname, 255);
-
- return getIPbyName( hostname );
-}
-
-/** construct error message
-*/
-::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::rtl::OUString & rightVal, const sal_Char * msg )
-{
- ::rtl::OUString aUString;
- if ( returnVal.equals( rightVal ) )
- return aUString;
- aUString += ::rtl::OUString::createFromAscii(msg);
- aUString += ::rtl::OUString(": the returned value is '");
- aUString += returnVal;
- aUString += ::rtl::OUString("', but the value should be '");
- aUString += rightVal;
- aUString += ::rtl::OUString("'.");
- return aUString;
-}
-
-/** wait _nSec seconds.
-*/
-void thread_sleep( sal_Int32 _nSec )
-{
- /// print statement in thread process must use fflush() to force display.
- // printf("wait %d seconds. ", _nSec );
- // fflush(stdout);
-
-#ifdef WNT //Windows
- Sleep( _nSec * 100 );
-#endif
-#if ( defined UNX ) //Unix
- usleep(_nSec * 100000);
-#endif
- // t_print("# done\n" );
-}
-
-/** print Boolean value.
-*/
-void printBool( sal_Bool bOk )
-{
-#if SILENT_TEST
- (void)bOk;
-#else
- t_print("#printBool# " );
- t_print ("%s", (sal_True == bOk) ? "YES!\n" : "NO!\n");
-#endif
-}
-
-/** print content of a ByteSequence.
-*/
-void printByteSequence_IP( const ::rtl::ByteSequence & bsByteSeq, sal_Int32 nLen )
-{
-#if SILENT_TEST
- (void)bsByteSeq;
- (void)nLen;
-#else
- t_print("#ByteSequence is: " );
- for ( int i = 0; i < nLen; i++ ){
- if ( bsByteSeq[i] < 0 )
- t_print("%d ", 256 + bsByteSeq[i] );
- else
- t_print("%d ", bsByteSeq[i] );
- }
- t_print(" .\n" );
-#endif
-}
-
-/** convert an IP which is stored as a UString format to a ByteSequence array for later use.
-*/
-::rtl::ByteSequence UStringIPToByteSequence( ::rtl::OUString aUStr )
-{
-
- rtl::OString aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US );
- const sal_Char *pChar = aString.getStr( ) ;
- sal_Char tmpBuffer[4];
- sal_Int32 nCharCounter = 0;
- ::rtl::ByteSequence bsByteSequence( IP_VER );
- sal_Int32 nByteSeqCounter = 0;
-
- for ( int i = 0; i < aString.getLength( ) + 1 ; i++ )
- {
- if ( ( *pChar != '.' ) && ( i !=aString.getLength( ) ) )
- tmpBuffer[nCharCounter++] = *pChar;
- else
- {
- tmpBuffer[nCharCounter] = '\0';
- nCharCounter = 0;
- bsByteSequence[nByteSeqCounter++] = static_cast<sal_Int8>(atoi( tmpBuffer ));
- }
- pChar++;
- }
- return bsByteSequence;
-}
-
-/** print a socket result name.
-*/
-void printSocketResult( oslSocketResult eResult )
-{
- t_print("printSocketResult: " );
- if (!eResult)
- switch (eResult)
- {
- case osl_Socket_Ok:
- t_print("client connected\n");
- break;
- case osl_Socket_Error:
- t_print("got an error ... exiting\r\n\r\n" );
- break;
- case osl_Socket_TimedOut:
- t_print("timeout\n");
- break;
- case osl_Socket_Interrupted:
- t_print("interrupted\n");
- break;
- case osl_Socket_InProgress:
- t_print("in progress\n");
- break;
- default:
- t_print("unknown result\n");
- break;
- }
-}
-
-/** if 4 parts of an IP addr are equal to specified values
-*/
-sal_Bool ifIpv4is( const ::rtl::ByteSequence Ipaddr, sal_Int8 seq1, sal_Int8 seq2, sal_Int8 seq3, sal_Int8 seq4 )
-{
- if ( ( Ipaddr[0] == seq1 ) && ( Ipaddr[1] == seq2 ) && ( Ipaddr[2] == seq3 ) && ( Ipaddr[3] == seq4 ) )
- return sal_True;
- return sal_False;
-}
-
-sal_Bool ifAvailable( rtl::OUString const& strAddrOrHostName )
-{
- ::osl::ConnectorSocket aSocket( osl_Socket_FamilyInet, osl_Socket_ProtocolIp, osl_Socket_TypeStream );
- ::osl::SocketAddr aSocketAddr( strAddrOrHostName, 7 );
-
- if (! aSocketAddr.is())
- {
- aSocket.close();
- return sal_False;
- }
-
- aSocket.setOption( osl_Socket_OptionReuseAddr, 1 ); //sal_True;
-
- TimeValue *pTimeout;
- pTimeout = ( TimeValue* )malloc( sizeof( TimeValue ) );
- pTimeout->Seconds = 3;
- pTimeout->Nanosec = 0;
-
- oslSocketResult aResult = aSocket.connect( aSocketAddr, pTimeout );
- free( pTimeout );
- aSocket.close();
- if ( aResult != osl_Socket_Ok )
- {
- t_print("Error: ");
- printSocketResult(aResult);
- t_print("\n");
-
- return sal_False;
- }
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/qa/osl/socket/sockethelper.hxx b/sal/qa/osl/socket/sockethelper.hxx
deleted file mode 100644
index 9e400d8f3c05..000000000000
--- a/sal/qa/osl/socket/sockethelper.hxx
+++ /dev/null
@@ -1,158 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_SAL_QA_OSL_SOCKET_SOCKETHELPER_HXX
-#define INCLUDED_SAL_QA_OSL_SOCKET_SOCKETHELPER_HXX
-
-#include <sal/types.h>
-#include <rtl/textenc.h>
-#include <rtl/ustring.hxx>
-#include <rtl/ustring.h>
-
-#include <osl/socket.hxx>
-#include <osl/socket.h>
-
-#include <osl/thread.hxx>
-
-#include <osl/file.hxx>
-
-#include <osl/mutex.hxx>
-#include <osl/time.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-// OS dependent declaration and includes
-
-#if ( defined UNX ) //Unix
-
-#include <unistd.h>
-#include <limits.h>
-#include <string.h>
-#include <math.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/statfs.h>
-#include <sys/statvfs.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <sys/wait.h>
-#endif
-
-#ifndef _OSL_SOCKET_CONST_H_
-
-#if ( defined WNT ) // Windows
-#include <winsock.h>
-#include <string.h>
-#endif
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** test output if SILENT_TEST is 0
-*/
-#if OSL_DEBUG_LEVEL > 0
-# define SILENT_TEST 0
-#else
-# define SILENT_TEST 1
-#endif
-
-#if SILENT_TEST
-# define t_print(...) { }
-#else
-# define t_print printf
-#endif
-
-/** convert UString and OUString to std::string
-*/
-#define STD_STRING(s) (std::string((const char *)s.getStr()))
-
-/** compare two OUString.
-*/
-sal_Bool compareUString( const ::rtl::OUString & ustr1, const ::rtl::OUString & ustr2 );
-/** compare a OUString and an ASCII string.
-*/
-sal_Bool compareUString( const ::rtl::OUString & ustr, const sal_Char *astr );
-/** compare two socket address.
-*/
-sal_Bool compareSocketAddr( const ::osl::SocketAddr & addr1 , const ::osl::SocketAddr & addr2 );
-//char * oustring2char( const ::rtl::OUString & str );
-/** print a UNI_CODE String. And also print some comments of the string.
-*/
-void printUString( const ::rtl::OUString & str, const char * msg = "" );
-/** get the local host name.
- mindy: gethostbyname( "localhost" ), on Linux, it returns the hostname in /etc/hosts + domain name,
- if no entry in /etc/hosts, it returns "localhost" + domain name
-*/
-::rtl::OUString getHost();
-/** get the full host name of the current processor, such as "aegean.prc.sun.com" --mindyliu
-*/
-::rtl::OUString getThisHostname();
-/** get IP by name, search /etc/hosts first, then search from dns, fail return OUString("")
-*/
-::rtl::OUString getIPbyName( rtl::OString const& str_name );
-/** get local ethernet IP
-*/
-::rtl::OUString getLocalIP( );
-/** construct error message
-*/
-::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::rtl::OUString & rightVal, const sal_Char * msg = "");
-void thread_sleep( sal_Int32 _nSec );
-/** print Boolean value.
-*/
-void printBool( sal_Bool bOk );
-/** print content of a ByteSequence.
-*/
-void printByteSequence_IP( const ::rtl::ByteSequence & bsByteSeq, sal_Int32 nLen );
-/** convert an IP which is stored as a UString format to a ByteSequence array for later use.
-*/
-::rtl::ByteSequence UStringIPToByteSequence( ::rtl::OUString aUStr );
-/** print a socket result name.
-*/
-void printSocketResult( oslSocketResult eResult );
-/** if 4 parts of an IP addr are equal to specified values
-*/
-sal_Bool ifIpv4is( const ::rtl::ByteSequence Ipaddr, sal_Int8 seq1, sal_Int8 seq2, sal_Int8 seq3, sal_Int8 seq4 );
-/** if the IP or hostname is available( alive )
-*/
-//sal_Bool ifAvailable( const char * stringAddrOrHostName );
-sal_Bool ifAvailable( rtl::OUString const& strAddrOrHostName );
-/*
-class ClientSocketThread : public Thread
-class ServerSocketThread : public Thread
-class ValueCheckProvider
-class ClientReadSocketThread : public Thread
-class ServerWriteSocketThread : public Thread
-class AcceptorThread : public Thread
-class CloseSocketThread : public Thread
-
-*/
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */