summaryrefslogtreecommitdiff
path: root/performance-tests/TCP
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-10 19:59:37 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-10 19:59:37 +0000
commit3df4acfa816441fc28a95dee6d0191a927145d95 (patch)
treeb5ae7ca44662cfd8e5c95f1826e4406021a606f5 /performance-tests/TCP
parent60a5612b83d856fc0adc52b9f39fac9960ec9818 (diff)
downloadATCD-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/Makefile219
-rw-r--r--performance-tests/TCP/README17
-rw-r--r--performance-tests/TCP/TCP.dsp104
-rw-r--r--performance-tests/TCP/TCP.dsw29
-rw-r--r--performance-tests/TCP/makefile.bor17
-rwxr-xr-xperformance-tests/TCP/run_test.pl34
-rw-r--r--performance-tests/TCP/tcp_test.cpp686
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;
-}