summaryrefslogtreecommitdiff
path: root/tests/RMCast
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-08-21 16:09:37 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-08-21 16:09:37 +0000
commit71638b50fdc367c2d98e05eccd290058fdb2cc9f (patch)
treeb9bc524019091a267284dd35b7eaa23c4971d4ce /tests/RMCast
parentd5705c3b52b6c14d046bcae31639f02b32900152 (diff)
downloadATCD-71638b50fdc367c2d98e05eccd290058fdb2cc9f.tar.gz
ChangeLogTag:Mon Aug 21 08:58:19 2000 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'tests/RMCast')
-rw-r--r--tests/RMCast/RMCast_Fragment_Test.cpp10
-rw-r--r--tests/RMCast/RMCast_Reassembly_Test.cpp6
-rw-r--r--tests/RMCast/RMCast_Tests.dsw12
-rw-r--r--tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp146
-rw-r--r--tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp96
5 files changed, 202 insertions, 68 deletions
diff --git a/tests/RMCast/RMCast_Fragment_Test.cpp b/tests/RMCast/RMCast_Fragment_Test.cpp
index 36b52255e6f..909bab01f05 100644
--- a/tests/RMCast/RMCast_Fragment_Test.cpp
+++ b/tests/RMCast/RMCast_Fragment_Test.cpp
@@ -23,7 +23,7 @@ class ACE_RMCast_Fragment_Tester
public:
ACE_RMCast_Fragment_Tester (void);
- virtual int put_data (ACE_RMCast::Data &data);
+ virtual int data (ACE_RMCast::Data &data);
virtual int svc (void);
private:
@@ -84,7 +84,7 @@ ACE_RMCast_Fragment_Tester::svc (void)
ACE_RMCast::Data data;
data.payload = &big_blob;
- if (this->fragment_.put_data (data) == -1)
+ if (this->fragment_.data (data) == -1)
return -1;
if (this->received_bytes_ != n)
@@ -126,7 +126,7 @@ ACE_RMCast_Fragment_Tester::svc (void)
ACE_RMCast::Data data;
data.payload = small;
- if (this->fragment_.put_data (data) == -1)
+ if (this->fragment_.data (data) == -1)
return -1;
ACE_UINT32 total = n * size;
@@ -176,7 +176,7 @@ ACE_RMCast_Fragment_Tester::svc (void)
ACE_RMCast::Data data;
data.payload = small;
- if (this->fragment_.put_data (data) == -1)
+ if (this->fragment_.data (data) == -1)
return -1;
if (this->received_bytes_ != total)
@@ -246,7 +246,7 @@ ACE_RMCast_Fragment_Tester::compare (ACE_Message_Block *mb)
}
int
-ACE_RMCast_Fragment_Tester::put_data (ACE_RMCast::Data &data)
+ACE_RMCast_Fragment_Tester::data (ACE_RMCast::Data &data)
{
ACE_UINT32 sequence_number = data.sequence_number;
ACE_UINT32 message_size = data.total_size;
diff --git a/tests/RMCast/RMCast_Reassembly_Test.cpp b/tests/RMCast/RMCast_Reassembly_Test.cpp
index 12b148cae0d..34a262cb617 100644
--- a/tests/RMCast/RMCast_Reassembly_Test.cpp
+++ b/tests/RMCast/RMCast_Reassembly_Test.cpp
@@ -23,7 +23,7 @@ class ACE_RMCast_Reassembly_Tester
public:
ACE_RMCast_Reassembly_Tester (void);
- virtual int put_data (ACE_RMCast::Data &data);
+ virtual int data (ACE_RMCast::Data &data);
virtual int svc (void);
private:
@@ -250,7 +250,7 @@ ACE_RMCast_Reassembly_Tester::compare (ACE_Message_Block *received,
}
int
-ACE_RMCast_Reassembly_Tester::put_data (ACE_RMCast::Data &data)
+ACE_RMCast_Reassembly_Tester::data (ACE_RMCast::Data &data)
{
ACE_Message_Block *mb = data.payload;
@@ -286,7 +286,7 @@ ACE_RMCast_Reassembly_Tester::put_fragment (ACE_UINT32 sequence_number,
data.total_size = total_length;
data.fragment_offset = offset;
data.payload = &p;
- return this->reassembly_.put_data (data);
+ return this->reassembly_.data (data);
}
ACE_UINT32
diff --git a/tests/RMCast/RMCast_Tests.dsw b/tests/RMCast/RMCast_Tests.dsw
index 7471a20220b..f001518bff9 100644
--- a/tests/RMCast/RMCast_Tests.dsw
+++ b/tests/RMCast/RMCast_Tests.dsw
@@ -27,6 +27,18 @@ Package=<4>
###############################################################################
+Project: "RMCast_UDP_Best_Effort_Test"=.\RMCast_UDP_Best_Effort_Test.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
Global:
Package=<5>
diff --git a/tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp b/tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp
index 3467d4062d4..2358b3a3acb 100644
--- a/tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp
+++ b/tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp
@@ -11,12 +11,11 @@
// ============================================================================
#include "test_config.h"
-#include "ace/RMCast/RMCast_UDP_Sender.h"
+#include "ace/RMCast/RMCast_IO_UDP.h"
#include "ace/RMCast/RMCast_Fragment.h"
-#include "ace/RMCast/RMCast_UDP_Receiver.h"
-#include "ace/RMCast/RMCast_Sender_Proxy_Best_Effort.h"
-#include "ace/RMCast/RMCast_Sender_Proxy_Factory.h"
+#include "ace/RMCast/RMCast_Module_Factory.h"
+#include "ace/RMCast/RMCast_Fragment.h"
#include "ace/RMCast/RMCast_Reassembly.h"
#include "ace/Task.h"
@@ -24,33 +23,69 @@
ACE_RCSID(tests, RMCast_UDP_Best_Effort_Test, "$Id$")
const size_t message_size = 8 * 1024;
+const int total_message_count = 40;
// ****************************************************************
-class Sender : public ACE_Task_Base
+class Sender_Factory : public ACE_RMCast_Module_Factory
{
public:
- Sender (const ACE_INET_Addr &mcast_group);
+ Sender_Factory (void)
+ {
+ }
+
+ virtual ACE_RMCast_Module *create (ACE_RMCast_IO_UDP *)
+ {
+ return new ACE_RMCast_Reassembly;
+ }
+
+ virtual void destroy (ACE_RMCast_Module *module)
+ {
+ delete module;
+ }
+};
- virtual int svc (void);
+// ****************************************************************
+
+class Receiver_Factory : public ACE_RMCast_Module_Factory
+{
+public:
+ Receiver_Factory (ACE_RMCast_Module *module)
+ : module_ (module)
+ {
+ }
+
+ virtual ACE_RMCast_Module *create (ACE_RMCast_IO_UDP *)
+ {
+ ACE_RMCast_Module *x = new ACE_RMCast_Reassembly;
+ x->next (this->module_);
+ return x;
+ }
+
+ virtual void destroy (ACE_RMCast_Module *module)
+ {
+ delete module;
+ }
private:
- ACE_RMCast_UDP_Sender sender_;
- ACE_RMCast_Fragment fragment_;
+ ACE_RMCast_Module *module_;
};
// ****************************************************************
-class Sender_Proxy_Factory : public ACE_RMCast_Sender_Proxy_Factory
+class Sender : public ACE_Task_Base
{
public:
- Sender_Proxy_Factory (ACE_RMCast_Module *user_module);
+ Sender (const ACE_INET_Addr &mcast_group);
+
+ virtual int svc (void);
- virtual ACE_RMCast_Sender_Proxy *create (void);
- virtual void destroy (ACE_RMCast_Sender_Proxy *);
-
private:
- ACE_RMCast_Module *user_module_;
+ Sender_Factory factory_;
+ ACE_RMCast_IO_UDP io_udp_;
+ ACE_RMCast_Fragment fragment_;
+
+ ACE_INET_Addr mcast_group_;
};
// ****************************************************************
@@ -60,16 +95,22 @@ class Receiver : public ACE_RMCast_Module
public:
Receiver (const ACE_INET_Addr &mcast_group);
+ void dump (void);
+ // Print the results of the test
+
int handle_events (ACE_Time_Value *tv);
// Invoke the UDP Receiver handle_events function
virtual int open (void);
- virtual int put_data (ACE_RMCast::Data &data);
+ virtual int data (ACE_RMCast::Data &data);
private:
- Sender_Proxy_Factory factory_;
- ACE_RMCast_UDP_Receiver udp_receiver_;
+ Receiver_Factory factory_;
+ ACE_RMCast_IO_UDP io_udp_;
+
ACE_INET_Addr mcast_group_;
+
+ int message_count_;
};
// ****************************************************************
@@ -114,65 +155,38 @@ main (int, ACE_TCHAR *[])
if (ACE_Thread_Manager::instance ()->wait () != 0)
ACE_ERROR_RETURN ((LM_ERROR, "Error in Thread_Manager::wait\n"), 1);
+ receiver.dump ();
+
ACE_END_TEST;
return 0;
}
// ****************************************************************
-Sender_Proxy_Factory::Sender_Proxy_Factory (ACE_RMCast_Module *m)
- : user_module_ (m)
-{
-}
-
-ACE_RMCast_Sender_Proxy *
-Sender_Proxy_Factory::create (void)
-{
- ACE_RMCast_Module *top =
- new ACE_RMCast_Reassembly;
- top->next (this->user_module_);
-
- ACE_RMCast_Sender_Proxy *proxy =
- new ACE_RMCast_Sender_Proxy_Best_Effort (top);
-
- ACE_DEBUG ((LM_DEBUG, "Created proxy = %x\n", long(proxy)));
- return proxy;
-}
-
-void
-Sender_Proxy_Factory::destroy (ACE_RMCast_Sender_Proxy *proxy)
-{
- ACE_RMCast_Module *module = proxy->module ();
- delete module;
- delete proxy;
- ACE_DEBUG ((LM_DEBUG, "Destroyed proxy = %x\n", long(proxy)));
-}
-
-// ****************************************************************
-
Receiver::Receiver (const ACE_INET_Addr &mcast_group)
: factory_ (this)
- , udp_receiver_ (&factory_)
+ , io_udp_ (&factory_)
, mcast_group_ (mcast_group)
+ , message_count_ (0)
{
}
int
Receiver::handle_events (ACE_Time_Value *tv)
{
- return this->udp_receiver_.handle_events (tv);
+ return this->io_udp_.handle_events (tv);
}
int
Receiver::open (void)
{
- if (this->udp_receiver_.subscribe (this->mcast_group_) != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "Error subscribing routine\n"), -1);
+ if (this->io_udp_.subscribe (this->mcast_group_) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR, "Error in IO_UDP::subscribe\n"), -1);
return 0;
}
int
-Receiver::put_data (ACE_RMCast::Data &data)
+Receiver::data (ACE_RMCast::Data &data)
{
if (data.total_size != message_size)
ACE_ERROR_RETURN ((LM_ERROR,
@@ -198,25 +212,37 @@ Receiver::put_data (ACE_RMCast::Data &data)
long(j - data.payload->rd_ptr ())), -1);
}
+ this->message_count_++;
+
return 0;
}
+void
+Receiver::dump (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "Message count = %d/%d",
+ this->message_count_,
+ total_message_count));
+}
+
// ****************************************************************
Sender::Sender (const ACE_INET_Addr &mcast_group)
- : sender_ (mcast_group)
+ : io_udp_ (&factory_)
+ , mcast_group_ (mcast_group)
{
}
int
Sender::svc ()
{
- if (this->sender_.open () != 0)
- ACE_ERROR ((LM_ERROR, "Error in Sender::open()\n"));
-
- if (this->fragment_.next (&this->sender_) != 0)
+ if (this->fragment_.next (&this->io_udp_) != 0)
ACE_ERROR ((LM_ERROR, "Error in Fragment::next()\n"));
+ if (this->io_udp_.subscribe (this->mcast_group_) != 0)
+ ACE_ERROR ((LM_ERROR, "Error in IO_UDP::subscribe()\n"));
+
ACE_Message_Block big_blob (message_size);
big_blob.wr_ptr (message_size);
@@ -226,12 +252,12 @@ Sender::svc ()
*j = filler++;
}
- for (int i = 0; i != 20; ++i)
+ for (int i = 0; i != total_message_count; ++i)
{
ACE_RMCast::Data data;
data.sequence_number = i;
data.payload = &big_blob;
- this->fragment_.put_data (data);
+ this->fragment_.data (data);
}
return 0;
}
diff --git a/tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp b/tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp
new file mode 100644
index 00000000000..3771278b950
--- /dev/null
+++ b/tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp
@@ -0,0 +1,96 @@
+# Microsoft Developer Studio Project File - Name="RMCast_UDP_Best_Effort_Test" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=RMCast_UDP_Best_Effort_Test - 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 "RMCast_UDP_Best_Effort_Test.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 "RMCast_UDP_Best_Effort_Test.mak" CFG="RMCast_UDP_Best_Effort_Test - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "RMCast_UDP_Best_Effort_Test - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "RMCast_UDP_Best_Effort_Test - 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)" == "RMCast_UDP_Best_Effort_Test - 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 "..\.." /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 ACE_RMCast.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace" /libpath:"..\..\ace\RMCast"
+
+!ELSEIF "$(CFG)" == "RMCast_UDP_Best_Effort_Test - 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 "Debug"
+# 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 "..\.." /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 ACE_RMCastd.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"RMCast_UDP_Best_Effort_Test.exe" /pdbtype:sept /libpath:"..\..\ace" /libpath:"..\..\ace\RMCast"
+
+!ENDIF
+
+# Begin Target
+
+# Name "RMCast_UDP_Best_Effort_Test - Win32 Release"
+# Name "RMCast_UDP_Best_Effort_Test - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\RMCast_UDP_Best_Effort_Test.cpp
+# End Source File
+# End Group
+# End Target
+# End Project