diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-04-10 19:59:37 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-04-10 19:59:37 +0000 |
commit | 3df4acfa816441fc28a95dee6d0191a927145d95 (patch) | |
tree | b5ae7ca44662cfd8e5c95f1826e4406021a606f5 /performance-tests/TCP | |
parent | 60a5612b83d856fc0adc52b9f39fac9960ec9818 (diff) | |
download | ATCD-pre-subset.tar.gz |
This commit was manufactured by cvs2svn to create tag 'pre-subset'.pre-subset
Diffstat (limited to 'performance-tests/TCP')
-rw-r--r-- | performance-tests/TCP/Makefile | 219 | ||||
-rw-r--r-- | performance-tests/TCP/README | 17 | ||||
-rw-r--r-- | performance-tests/TCP/TCP.dsp | 104 | ||||
-rw-r--r-- | performance-tests/TCP/TCP.dsw | 29 | ||||
-rw-r--r-- | performance-tests/TCP/makefile.bor | 17 | ||||
-rwxr-xr-x | performance-tests/TCP/run_test.pl | 34 | ||||
-rw-r--r-- | performance-tests/TCP/tcp_test.cpp | 686 |
7 files changed, 0 insertions, 1106 deletions
diff --git a/performance-tests/TCP/Makefile b/performance-tests/TCP/Makefile deleted file mode 100644 index 09de8f1b000..00000000000 --- a/performance-tests/TCP/Makefile +++ /dev/null @@ -1,219 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for tests of the miscellaneous ACE performance tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = tcp_test -LDLIBS = $(MATHLIB) - -BUILD = $(VBIN) - -# For make depend. -SRC = $(addsuffix .cpp, $(BIN)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - - -.obj/tcp_test.o .obj/tcp_test.so .shobj/tcp_test.o .shobj/tcp_test.so: tcp_test.cpp \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/pre.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ - $(ACE_ROOT)/ace/Default_Constants.h \ - $(ACE_ROOT)/ace/Global_Macros.h \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Test_and_Set.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Test_and_Set.i \ - $(ACE_ROOT)/ace/Test_and_Set.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Select_Reactor.h \ - $(ACE_ROOT)/ace/Select_Reactor_T.h \ - $(ACE_ROOT)/ace/Select_Reactor_Base.h \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/Select_Reactor_Base.i \ - $(ACE_ROOT)/ace/Select_Reactor_T.cpp \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Unbounded_Set.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ - $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Select_Reactor_T.i \ - $(ACE_ROOT)/ace/TP_Reactor.h \ - $(ACE_ROOT)/ace/TP_Reactor.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/String_Base.h \ - $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/String_Base.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Array_Base.h \ - $(ACE_ROOT)/ace/Array_Base.inl \ - $(ACE_ROOT)/ace/Array_Base.cpp \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Containers_T.i \ - $(ACE_ROOT)/ace/Containers_T.cpp \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Exit.h \ - $(ACE_ROOT)/ace/Thread_Control.h \ - $(ACE_ROOT)/ace/Thread_Control.inl \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Framework_Component.h \ - $(ACE_ROOT)/ace/Framework_Component.inl \ - $(ACE_ROOT)/ace/Framework_Component_T.h \ - $(ACE_ROOT)/ace/Framework_Component_T.inl \ - $(ACE_ROOT)/ace/Framework_Component_T.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Sched_Params.h \ - $(ACE_ROOT)/ace/Sched_Params.i \ - $(ACE_ROOT)/ace/Stats.h \ - $(ACE_ROOT)/ace/Basic_Stats.h \ - $(ACE_ROOT)/ace/Basic_Stats.inl \ - $(ACE_ROOT)/ace/Stats.i \ - $(ACE_ROOT)/ace/Sample_History.h \ - $(ACE_ROOT)/ace/Sample_History.inl - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/performance-tests/TCP/README b/performance-tests/TCP/README deleted file mode 100644 index ac486524c78..00000000000 --- a/performance-tests/TCP/README +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -udp_test sends TCP messages and records round-trip latency. The client -records the latencies and provides nice summary statistics. The server -simply echos packets back to the client. - -To run: - 1) On server host: - % ./tcp_test -s - - 2) On client host: - % ./tcp_test -i 10000 <server host> - -The -i option specifies the number of samples (packets to send). -Other command line options are available: ./tcp_test -? to -list them. - diff --git a/performance-tests/TCP/TCP.dsp b/performance-tests/TCP/TCP.dsp deleted file mode 100644 index c872bc0f9db..00000000000 --- a/performance-tests/TCP/TCP.dsp +++ /dev/null @@ -1,104 +0,0 @@ -# Microsoft Developer Studio Project File - Name="TCP" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=TCP - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "TCP.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "TCP.mak" CFG="TCP - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "TCP - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "TCP - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "TCP - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /out:"Release/tcp_test.exe" /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "TCP - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"tcp_test.exe" /pdbtype:sept /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "TCP - Win32 Release"
-# Name "TCP - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\tcp_test.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/performance-tests/TCP/TCP.dsw b/performance-tests/TCP/TCP.dsw deleted file mode 100644 index 48a2819201a..00000000000 --- a/performance-tests/TCP/TCP.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "TCP"=".\TCP.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/performance-tests/TCP/makefile.bor b/performance-tests/TCP/makefile.bor deleted file mode 100644 index 0e02029462f..00000000000 --- a/performance-tests/TCP/makefile.bor +++ /dev/null @@ -1,17 +0,0 @@ -# -# Makefile for building the tcp performance-tests -# - -NAME = tcp_test - -OBJFILES = \ - $(OBJDIR)\tcp_test.obj - -CPPDIR = . - -CFLAGS = $(ACE_CFLAGS) - -LIBFILES = $(ACE_LIB) - -!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> - diff --git a/performance-tests/TCP/run_test.pl b/performance-tests/TCP/run_test.pl deleted file mode 100755 index 34c4f416c39..00000000000 --- a/performance-tests/TCP/run_test.pl +++ /dev/null @@ -1,34 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../bin'; -use PerlACE::Run_Test; - -$SV = new PerlACE::Process ("tcp_test", "-s"); -$CL = new PerlACE::Process ("tcp_test", "-c localhost -i 50000 -b 64"); - -$status = 0; - -$SV->Spawn (); - -sleep 5; - -$client = $CL->SpawnWaitKill (60); - -$server = $SV->WaitKill (5); - -if ($server != 0) { - print "ERROR: server returned $server\n"; - $status = 1; -} - -if ($client != 0) { - print "ERROR: client returned $client\n"; - $status = 1; -} - -exit $status; diff --git a/performance-tests/TCP/tcp_test.cpp b/performance-tests/TCP/tcp_test.cpp deleted file mode 100644 index 3af48a8f0c5..00000000000 --- a/performance-tests/TCP/tcp_test.cpp +++ /dev/null @@ -1,686 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// performance-tests/TCP -// -// = FILENAME -// tcp_test.cpp -// -// = DESCRIPTION -// Measures TCP round-trip performance. -// -// = AUTHORS -// Based on udp_test by Fred Kuhns and David L. Levine -// Modified by Carlos O'Ryan and Nanbor Wang. -// -// ============================================================================ - -#include "ace/Reactor.h" -#include "ace/Select_Reactor.h" -#include "ace/TP_Reactor.h" -#include "ace/SOCK_Stream.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Connector.h" -#include "ace/INET_Addr.h" -#include "ace/ACE.h" -#include "ace/Get_Opt.h" -#include "ace/High_Res_Timer.h" -#include "ace/Thread_Manager.h" -#include "ace/Sched_Params.h" -#include "ace/Stats.h" -#include "ace/Sample_History.h" - -// FUZZ: disable check_for_math_include -#include <math.h> - -ACE_RCSID(TCP, tcp_test, "$Id$") - -// Global variables (evil). -static const u_short DEFPORT = 5050; -static const int MAXPKTSZ = 65536; -static const int DEFPKTSZ = 64; -static const int DEFITERATIONS = 1000; -static const int DEFINTERVAL = 0; -static const int DEFAULT_THRNO = 10; - -static char sbuf[MAXPKTSZ]; -static char rbuf[MAXPKTSZ]; - -static int usdelay = DEFINTERVAL; -static int bufsz = DEFPKTSZ; -static int VERBOSE = 0; -static int dump_history = 0; -static int svr_thrno = DEFAULT_THRNO; -static int server = 0; -static int client = 0; -static int nsamples = DEFITERATIONS; -static int so_bufsz = 0; -static u_int use_reactor = 0; -static int usecs = 0; - -enum { - SELECT = 1, - TP, - WFMO -}; - - -static void -usage (void) -{ - ACE_ERROR ((LM_ERROR, - "tcp_test\n" - " [-v] (Verbose)\n" - " [-h] (dump all the samples)\n" - " [-m message size]\n" - " [-i iterations]\n" - " [-I usdelay]\n" - " [-b socket bufsz] \n" - " [-p port]\n" - " [-s]\n" - " [-c]\n" - // " [-x max_sample_allowed]\n" - " [-t number of threads]\n" - " [-a to use the ACE Select reactor]\n" - " [-x to use the ACE TP reactor]\n" - " [-w to use the ACE WFMO reactor]\n" - " targethost \n")); -} - -// **************************************************************** - -class Client : public ACE_Event_Handler -{ -public: - Client (const ACE_INET_Addr &remote_addr); - - virtual ~Client (void); - - // = Override <ACE_Event_Handler> methods. - virtual ACE_HANDLE get_handle (void) const; - virtual int handle_input (ACE_HANDLE); - virtual int handle_close (ACE_HANDLE handle, - ACE_Reactor_Mask close_mask); - - int send (const char *buf, size_t len); - // Send the <buf> to the server. - - int get_response (char *buf, size_t len); - // Wait for the response. - - int run (void); - // Send messages to server and record statistics. - - int shutdown (void); - // Send shutdown message to server. - -private: - ACE_SOCK_Stream endpoint_; - // To send messages and receive responses. - - ACE_INET_Addr remote_addr_; - // The address to send messages to. - - ACE_UNIMPLEMENTED_FUNC (Client (void)) - ACE_UNIMPLEMENTED_FUNC (Client (const Client &)) - ACE_UNIMPLEMENTED_FUNC (Client &operator= (const Client &)) -}; - -Client::Client (const ACE_INET_Addr &remote_addr) - : remote_addr_ (remote_addr) -{ - ACE_SOCK_Connector connector; - if (connector.connect (this->endpoint_, remote_addr) == -1) - { - ACE_ERROR ((LM_ERROR, "Client - %p\n", - "connect failed")); - } - - if (use_reactor) - { - if (ACE_Reactor::instance ()->register_handler - (this, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR ((LM_ERROR, - "ACE_Reactor::register_handler: Client\n")); - } -} - -Client::~Client (void) -{ -} - -ACE_HANDLE -Client::get_handle (void) const -{ - return this->endpoint_.get_handle (); -} - -int -Client::handle_input (ACE_HANDLE) -{ - char buf[BUFSIZ]; - - ssize_t n = this->endpoint_.recv (buf, sizeof buf); - - if (n == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "handle_input")); - else - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) buf of size %d = %*s\n", - n, - n, - buf)); - - return 0; -} - -int -Client::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - this->endpoint_.close (); - return 0; -} - -int -Client::send (const char *buf, size_t len) -{ - return this->endpoint_.send (buf, len); -} - -int -Client::get_response (char *buf, size_t len) -{ - return this->endpoint_.recv (buf, len); -} - -int -Client::run (void) -{ - ACE_OS::memset (sbuf, 0, bufsz); - ACE_OS::memset (rbuf, 0, bufsz); - - for (int j = 0; j != 100; ++j) - { - if (this->send (sbuf, bufsz) <= 0) - ACE_ERROR_RETURN ((LM_ERROR, "(%P) %p\n", "send"), -1); - - // ssize_t n; - if ((this->get_response (rbuf, bufsz)) <= 0) - ACE_ERROR_RETURN ((LM_ERROR, "(%P) %p\n", "get_response"), -1); - } - - ACE_Sample_History history (nsamples); - - ACE_hrtime_t test_start = ACE_OS::gethrtime (); - for (int i = 0; i != nsamples; ++i) - { - if (usecs != 0) - { - ACE_Time_Value tv (0, usecs); - ACE_OS::sleep (tv); - } - - ACE_hrtime_t start = ACE_OS::gethrtime (); - if (this->send (sbuf, bufsz) <= 0) - ACE_ERROR_RETURN ((LM_ERROR, "(%P) %p\n", "send"), -1); - - // ssize_t n; - if ((this->get_response (rbuf, bufsz)) <= 0) - ACE_ERROR_RETURN ((LM_ERROR, "(%P) %p\n", "get_response"), -1); - - ACE_hrtime_t end = ACE_OS::gethrtime (); - - history.sample (end - start); - - if (VERBOSE && i % 500 == 0) - { - ACE_DEBUG ((LM_DEBUG, - "Send %d / %d events\n", i, nsamples)); - } - } - ACE_hrtime_t test_end = ACE_OS::gethrtime (); - - ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor (); - - if (dump_history) - { - history.dump_samples (ACE_TEXT("HISTORY"), gsf); - } - - ACE_Basic_Stats latency; - history.collect_basic_stats (latency); - latency.dump_results (ACE_TEXT("Client"), gsf); - ACE_Throughput_Stats::dump_throughput (ACE_TEXT("Client"), - gsf, - test_end - test_start, - latency.samples_count ()); - - - return 0; -} - -int -Client::shutdown (void) -{ - const char buf = 'S'; - int n = this->endpoint_.send (&buf, 1u); - - if (use_reactor) - { - if (ACE_Reactor::instance ()->remove_handler - (this, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "ACE_Reactor::remove_handler: Client\n"), - -1); - } - - return n; -} - -// **************************************************************** - -class Server : public ACE_Event_Handler -{ -public: - Server (const ACE_INET_Addr &addr); - - virtual ~Server (void); - - // = Override <ACE_Event_Handler> methods. - virtual ACE_HANDLE get_handle (void) const; - virtual int handle_input (ACE_HANDLE); - virtual int handle_close (ACE_HANDLE handle, - ACE_Reactor_Mask close_mask); - -private: - ACE_SOCK_Stream endpoint_; - // Receives datagrams. - - ACE_UNIMPLEMENTED_FUNC (Server (void)) - ACE_UNIMPLEMENTED_FUNC (Server (const Server &)) - ACE_UNIMPLEMENTED_FUNC (Server &operator= (const Server &)) -}; - -Server::Server (const ACE_INET_Addr &addr) -{ - ACE_SOCK_Acceptor acceptor; - - if (acceptor.open (addr, 1) == -1) - ACE_DEBUG ((LM_DEBUG, "%p\n", "open")); - - ACE_DEBUG ((LM_DEBUG, "Listening on %s:%d\n", - addr.get_host_name (), - addr.get_port_number ())); - if (acceptor.accept (this->endpoint_) == -1) - ACE_ERROR ((LM_ERROR, "Server::Server %p\n", - "accept failed")); - - if (use_reactor) - { - if (ACE_Reactor::instance ()->register_handler - (this, - ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR ((LM_ERROR, - "ACE_Reactor::register_handler: Server\n")); - } - -#if !defined (ACE_LACKS_SOCKET_BUFSIZ) - if (so_bufsz != 0) - { - if (this->endpoint_.set_option (SOL_SOCKET, - SO_SNDBUF, - (void *) &so_bufsz, - sizeof (so_bufsz)) == -1 - && errno != ENOTSUP) - ACE_ERROR ((LM_ERROR, "Server::Server: SO_SNDBUF %p\n", - "set_option failed")); - else if (this->endpoint_.set_option (SOL_SOCKET, - SO_RCVBUF, - (void *) &so_bufsz, - sizeof (so_bufsz)) == -1 - && errno != ENOTSUP) - ACE_ERROR ((LM_ERROR, "Server::Server: SO_RCVBUF %p\n", - "set_option failed")); - } -#endif /* !ACE_LACKS_SOCKET_BUFSIZ */ - if (acceptor.close () == -1) - ACE_ERROR ((LM_ERROR, "Server::Server %p\n", - "close failed")); -} - -Server::~Server (void) -{ - this->endpoint_.close (); -} - -ACE_HANDLE -Server::get_handle (void) const -{ - return this->endpoint_.get_handle (); -} - -int -Server::handle_input (ACE_HANDLE) -{ - char buf[BUFSIZ]; - - ssize_t n = this->endpoint_.recv (buf, bufsz); - - if (n == -1) - ACE_DEBUG ((LM_ERROR, - "%p\n", - "handle_input: recv")); - - // Send the message back as the response. - if (this->endpoint_.send (buf, n) == n) - { - if (n == 1 && buf[0] == 'S') - { - if (!use_reactor) - { - // Indicate done by returning 1. - return 1; - } - - if (ACE_Reactor::instance ()->remove_handler - (this, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "ACE_Reactor::remove_handler: server\n"), - -1); - - ACE_Reactor::end_event_loop (); - } - - return 0; - } - - ACE_DEBUG ((LM_ERROR, - "%p\n", - "handle_input: send")); - return -1; -} - -int -Server::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - this->endpoint_.close (); - - return 0; -} - -static ACE_THR_FUNC_RETURN -thread_pool_worker (void *) -{ - // Server thread function. - - while (!ACE_Reactor::event_loop_done ()) - { - if (ACE_Reactor::instance ()->handle_events () == -1) - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%t) %p\n"), - ACE_TEXT ("Error handling events"))); - } - - return 0; -} - -int -run_server (ACE_INET_Addr &addr) -{ - if (use_reactor) - { - ACE_Reactor *new_reactor = 0; - - switch (use_reactor) - { - case SELECT: - { - ACE_Select_Reactor *sr = new ACE_Select_Reactor (); - new_reactor = new ACE_Reactor (sr, 1); - } - break; - case TP: - { - ACE_TP_Reactor *sr = new ACE_TP_Reactor (); - new_reactor = new ACE_Reactor (sr, 1); - } - break; - case WFMO: -#if defined (ACE_WIN32) - -#else - -#endif /* ACE_WIN32 */ - default: - ACE_ERROR_RETURN ((LM_ERROR, "Invalid reactor type selected\n"), -1); - } - ACE_Reactor::instance (new_reactor, 1); - } - - Server server (addr); - - if (!use_reactor) - { - // Handle input in the current thread. - // This is actually equivalent to thread-per-connection model. - while (server.handle_input (0) != 1) - continue; - } - else - { - switch (use_reactor) - { - case SELECT: - // Run the reactor event loop. - ACE_Reactor::run_event_loop (); - break; - case TP: - ACE_Thread_Manager::instance ()->spawn_n (svr_thrno, - thread_pool_worker); - ACE_Thread_Manager::instance ()->wait (); - break; - case WFMO: - break; - default: - break; // won't happen here. - } - } - - return 0; -} - -int -ACE_TMAIN (int argc, ACE_TCHAR *argv[]) -{ - int c, dstport = DEFPORT; - int priority = - (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO) - + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2; - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority); - // Enable FIFO scheduling, e.g., RT scheduling class on Solaris. - - if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - { - ACE_DEBUG ((LM_DEBUG, - "server (%P|%t): user is not superuser, " - "test runs in time-shared class\n")); - } - else - ACE_ERROR ((LM_ERROR, - "server (%P|%t): sched_params failed\n")); - } - - - ACE_Get_Opt getopt (argc, argv, ACE_TEXT("hxwvb:I:p:sci:m:at:")); - - while ((c = getopt ()) != -1) - { - switch ((char) c) - { - case 'v': - VERBOSE = 1; - break; - - case 'h': - dump_history = 1; - break; - - case 'm': - bufsz = ACE_OS::atoi (getopt.opt_arg ()); - - if (bufsz <= 0) - ACE_ERROR_RETURN ((LM_ERROR, - "\nMessage size must be greater than 0!\n\n"), - 1); - else if (bufsz > BUFSIZ) - ACE_ERROR_RETURN ((LM_ERROR, - "\nbufsz must be <= %d\n", - BUFSIZ), - 1); - - case 'i': - nsamples = ACE_OS::atoi (getopt.opt_arg ()); - if (nsamples <= 0) - ACE_ERROR_RETURN ((LM_ERROR, - "\nIterations must be greater than 0!\n\n"), - 1); - break; - - case 'a': - use_reactor = SELECT; - break; - - case 'x': - use_reactor = TP; - break; - - case 'w': -#if defined (ACE_WIN32) - use_reactor = WFMO; - break; -#else - ACE_ERROR_RETURN ((LM_ERROR, "WFMO_Reactor is not supported\n"), -1); -#endif /* ACE_WIN32 */ - - case 'b': - so_bufsz = ACE_OS::atoi (getopt.opt_arg ()); - - if (so_bufsz <= 0) - ACE_ERROR_RETURN ((LM_ERROR, - "\nInvalid socket buffer size!\n\n"), - 1); - break; - - case 'I': - usdelay = ACE_OS::atoi (getopt.opt_arg ()); - - if (usdelay < 0) - { - usdelay = 0; - ACE_ERROR_RETURN ((LM_ERROR, - "%s: bad usdelay: %s\n", - argv[0], - getopt.opt_arg ()), - 1); - } - break; - - case 'p': - dstport = ACE_OS::atoi (getopt.opt_arg ()); - if (dstport <= 0) - ACE_ERROR_RETURN ((LM_ERROR, - "\nInvalid port number!\n\n"), - 1); - break; - case 't': - svr_thrno = ACE_OS::atoi (getopt.opt_arg ()); - - if (svr_thrno <= 0) - ACE_ERROR_RETURN ((LM_ERROR, - "\nInvalid server thread number!\n\n"), - 1); - break; - - case 'c': - server = 0; - client = 1; - break; - case 's': - client = 0; - server = 1; - break; - default: - usage (); - return 1; - } - } - - if (getopt.opt_ind () >= argc && client || argc == 1) - { - usage (); - return 1; - } - - ACE_INET_Addr addr (dstport); - - if (server) - return run_server (addr); - - if ((u_int) bufsz < sizeof (ACE_hrtime_t)) - ACE_ERROR_RETURN ((LM_ERROR, - "\nbufsz must be >= %d\n", - sizeof (ACE_hrtime_t)), - 1); - - ACE_INET_Addr remote_addr; - - if (isdigit(argv[getopt.opt_ind ()][0])) - { - if (remote_addr.set (dstport, - (ACE_UINT32) ACE_OS::inet_addr - (ACE_TEXT_ALWAYS_CHAR(argv[getopt.opt_ind ()]))) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid IP address: %s\n", - argv[getopt.opt_ind ()]), - 1); - } - else - { - if (remote_addr.set (dstport, argv[getopt.opt_ind ()]) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid IP address: %s\n", - argv[getopt.opt_ind ()]), - 1); - } - getopt.opt_ind ()++; - - ACE_DEBUG ((LM_DEBUG, "Connecting to %s:%d\n", - remote_addr.get_host_name (), - remote_addr.get_port_number ())); - - Client client (remote_addr); - - ACE_DEBUG ((LM_DEBUG, - "\nSending %d byte packets to %s:%d " - "with so_bufsz = %d\n\n", - bufsz, - addr.get_host_name (), - dstport, - so_bufsz)); - - client.run (); - client.shutdown (); - - return 0; -} |