summaryrefslogtreecommitdiff
path: root/TAO/DevGuideExamples
diff options
context:
space:
mode:
authordbudko <dbudko@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-11-18 13:00:45 +0000
committerdbudko <dbudko@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-11-18 13:00:45 +0000
commiteb7fca8b20d0b1fbd1096788568cfb858630f65d (patch)
treeafaf955e01118cd59e07cc10479ed80b8e09d084 /TAO/DevGuideExamples
parent7f064ce91e9c759204b504b923d021c81f3dc9c7 (diff)
downloadATCD-eb7fca8b20d0b1fbd1096788568cfb858630f65d.tar.gz
Wed Nov 18 12:58:16 UTC 2009 Denis Budko <denis.budko@remedy.nl>
* orbsvcs/tests/Bug_2925_Regression/run_test_ipv6.pl: * orbsvcs/tests/Bug_2925_Regression/run_test.pl: * orbsvcs/tests/Security/Secure_Invocation/run_test.pl: * orbsvcs/tests/Security/Bug_2908_Regression/MessengerServer.cpp: * orbsvcs/tests/Security/Bug_2908_Regression/MessengerClient.cpp: * orbsvcs/tests/Security/Bug_2908_Regression/run_test.pl: * orbsvcs/tests/Security/BiDirectional/run_test.pl: * orbsvcs/tests/Security/Big_Request/run_test.pl: * orbsvcs/tests/HTIOP/BiDirectional/run_test.pl: * orbsvcs/tests/Property/run_test.pl: * orbsvcs/tests/Bug_2316_Regression/client.cpp: * orbsvcs/tests/Bug_2316_Regression/server.cpp: * orbsvcs/tests/Bug_2316_Regression/run_test.pl: * orbsvcs/tests/Bug_2615_Regression/client.cpp: * orbsvcs/tests/Bug_2615_Regression/server.cpp: * orbsvcs/tests/Bug_2615_Regression/run_test.pl: * orbsvcs/tests/Bug_3216_Regression/run_test.pl: * orbsvcs/tests/Bug_2709_Regression/client.cpp: * orbsvcs/tests/Bug_2709_Regression/server.cpp: * orbsvcs/tests/Bug_2709_Regression/run_test.pl: * orbsvcs/tests/IOR_MCast/run_test_ipv6.pl: * orbsvcs/tests/Bug_3215_Regression/run_test.pl: * orbsvcs/tests/Bug_2287_Regression/run_test.pl: * DevGuideExamples/SmartProxies/MessengerServer.cpp: * DevGuideExamples/SmartProxies/LoggerServer.cpp: * DevGuideExamples/SmartProxies/MessengerClient.cpp: * DevGuideExamples/SmartProxies/run_test.pl: * performance-tests/Latency/DSI/run_test.pl: * performance-tests/Latency/Deferred/run_test.pl: * performance-tests/Latency/DII/run_test.pl: * performance-tests/Latency/AMI/run_test.pl: * performance-tests/Throughput/run_test.pl: * tests/AMI_Buffering/run_message_count.pl: * tests/Bug_1495_Regression/run_test_complex.pl: * tests/Bug_1495_Regression/run_test.pl: * tests/Crashed_Callback/run_test.pl: * tests/BiDirectional/run_test_bug3282.pl: * tests/Bug_1020_Basic_Regression/run_test.pl: * tests/CallbackTest/run_test_ipv6.pl: * tests/CallbackTest/run_test_mixed_ip.pl: * tests/Bug_2289_Regression/run_test.pl: * tests/DIOP/run_test_ipv6.pl: * tests/DIOP/run_test.pl: * tests/NestedUpcall/Triangle_Test/run_test.pl: * tests/MT_Timeout/run_test.pl: * tests/Single_Read/server.cpp: * tests/Single_Read/test_i.cpp: * tests/Single_Read/run_test.pl: * tests/Single_Read/test_i.h: * examples/Logging/run_test.pl: * examples/Simple/time-date/run_test.pl: * examples/PluggableUDP/tests/Performance/run_test_ipv6.pl: * examples/PluggableUDP/tests/Performance/run_test.pl: Tests are converted to use new test framework and added to fuzz build.
Diffstat (limited to 'TAO/DevGuideExamples')
-rw-r--r--TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp37
-rw-r--r--TAO/DevGuideExamples/SmartProxies/MessengerClient.cpp36
-rw-r--r--TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp37
-rwxr-xr-xTAO/DevGuideExamples/SmartProxies/run_test.pl123
4 files changed, 191 insertions, 42 deletions
diff --git a/TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp b/TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp
index f3f818cc430..d29453ef576 100644
--- a/TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp
+++ b/TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp
@@ -5,6 +5,36 @@
#include "Logger_i.h"
#include <iostream>
#include <fstream>
+#include "ace/Get_Opt.h"
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT ("Logger.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
int
ACE_TMAIN (int argc, ACE_TCHAR *argv [])
{
@@ -12,6 +42,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
// Initialize the ORB.
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
// Get a reference to Root POA.
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
@@ -28,10 +61,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
PortableServer::ObjectId_var oid = poa->activate_object(logger_servant.in());
CORBA::Object_var logger_obj = poa->id_to_reference(oid.in());
CORBA::String_var str = orb->object_to_string(logger_obj.in());
- std::ofstream iorFile("Logger.ior");
+ std::ofstream iorFile(ACE_TEXT_ALWAYS_CHAR(ior_output_file));
iorFile << str.in() << std::endl;
iorFile.close();
- std::cout << "IOR written to file Logger.ior" << std::endl;
+ std::cout << "IOR written to file " << ACE_TEXT_ALWAYS_CHAR(ior_output_file) << std::endl;
// Accept requests from clients.
orb->run();
diff --git a/TAO/DevGuideExamples/SmartProxies/MessengerClient.cpp b/TAO/DevGuideExamples/SmartProxies/MessengerClient.cpp
index d45f36fc96b..add68848b60 100644
--- a/TAO/DevGuideExamples/SmartProxies/MessengerClient.cpp
+++ b/TAO/DevGuideExamples/SmartProxies/MessengerClient.cpp
@@ -2,14 +2,46 @@
#include "MessengerC.h"
#include "Smart_Messenger_Proxy.h"
-
#include <iostream>
+#include "ace/Get_Opt.h"
+
+const ACE_TCHAR *ior = ACE_TEXT ("file://Messenger.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-k <ior> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates successful parsing of the command line
+ return 0;
+}
+
int ACE_TMAIN(int argc, ACE_TCHAR * argv[])
{
try {
// Initialize the ORB
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
// Create a smart proxy factory. It will register itself with the
// smart proxy factory adapter so it can be used to create
// Messenger proxies. It must be created on the heap, but is
@@ -17,7 +49,7 @@ int ACE_TMAIN(int argc, ACE_TCHAR * argv[])
new Smart_Messenger_Proxy_Factory(orb.in());
// Convert the contents of the Messenger.ior file to an object reference.
- CORBA::Object_var obj = orb->string_to_object("file://Messenger.ior");
+ CORBA::Object_var obj = orb->string_to_object(ior);
if (CORBA::is_nil(obj.in())) {
std::cerr << "Nil Messenger reference" << std::endl;
return 1;
diff --git a/TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp b/TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp
index b332e2ca65a..5e0fc0b2cbb 100644
--- a/TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp
@@ -3,6 +3,36 @@
#include "Messenger_i.h"
#include <iostream>
#include <fstream>
+#include "ace/Get_Opt.h"
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT ("Messenger.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
@@ -10,6 +40,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Initialize orb
CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
//Get reference to Root POA
CORBA::Object_var obj = orb->resolve_initial_references( "RootPOA" );
PortableServer::POA_var poa = PortableServer::POA::_narrow( obj.in() );
@@ -26,10 +59,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
- std::ofstream iorFile( "Messenger.ior" );
+ std::ofstream iorFile(ACE_TEXT_ALWAYS_CHAR(ior_output_file));
iorFile << str.in() << std::endl;
iorFile.close();
- std::cout << "IOR written to file Messenger.ior" << std::endl;
+ std::cout << "IOR written to file " << ACE_TEXT_ALWAYS_CHAR(ior_output_file) << std::endl;
// Accept requests
orb->run();
diff --git a/TAO/DevGuideExamples/SmartProxies/run_test.pl b/TAO/DevGuideExamples/SmartProxies/run_test.pl
index 43f207bf703..e83e2e21d0d 100755
--- a/TAO/DevGuideExamples/SmartProxies/run_test.pl
+++ b/TAO/DevGuideExamples/SmartProxies/run_test.pl
@@ -1,54 +1,105 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
# $Id$
+# -*- perl -*-
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$debug_level = '0';
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
+my $logger = PerlACE::TestTarget::create_target (3) || die "Create target 3 failed\n";
+
+my $iorbase = "Messenger.ior";
+my $iorlogger = "Logger.ior";
+
+my $server_iorfile_base = $server->LocalFile ($iorbase);
+my $client_iorfile_base = $client->LocalFile ($iorbase);
+my $logger_iorfile_logger = $logger->LocalFile ($iorlogger);
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+$logger->DeleteFile($iorlogger);
+
+$SV = $server->CreateProcess ("MessengerServer", "-ORBdebuglevel $debug_level ".
+ "-o $server_iorfile_base");
+$CL = $client->CreateProcess ("MessengerClient", "-k file://$client_iorfile_base");
+$LR = $logger->CreateProcess ("LoggerServer", "-ORBdebuglevel $debug_level ".
+ "-o $logger_iorfile_logger");
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
-use Env (ACE_ROOT);
-use lib "$ACE_ROOT/bin";
-use PerlACE::Run_Test;
+if ($server->WaitForFileTimed ($iorbase,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile_base>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+if ($server->GetFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$server_iorfile_base>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
-$M_ior = "Messenger.ior";
-$L_ior = "Logger.ior";
+if ($client->PutFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot set file <$client_iorfile_base>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
-unlink $M_ior;
-unlink $L_ior;
+$logger_status = $LR->Spawn ();
-# start MessengerServer
-$S = new PerlACE::Process("MessengerServer");
-$S->Spawn();
-if (PerlACE::waitforfile_timed ($M_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
- print STDERR "ERROR: cannot find file $M_ior\n";
- $S->Kill();
+if ($logger_status != 0) {
+ print STDERR "ERROR: logger returned $logger_status\n";
exit 1;
}
-# start LoggerServer
-$L = new PerlACE::Process("LoggerServer");
-$L->Spawn();
-if (PerlACE::waitforfile_timed ($L_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
- print STDERR "ERROR: cannot find file $L_ior\n";
- $L->Kill();
- $S->Kill();
+if ($logger->WaitForFileTimed ($iorlogger,
+ $logger->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$logger_iorfile_logger>\n";
+ $LR->Kill (); $LR->TimedWait (1);
+ $SV->Kill (); $SV->TimedWait (1);
exit 1;
}
-
-# start MessengerClient
-$C = new PerlACE::Process("MessengerClient");
-if ($C->SpawnWaitKill(20) != 0) {
- $S->Kill();
- $L->Kill();
- exit (1);
+
+$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval());
+
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
}
-# clean-up
-$S->Kill();
-$L->Kill();
-unlink $M_ior;
-unlink $L_ior;
+$server_status = $SV->Kill ();
-exit 0;
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+$logger_status = $LR->Kill ();
+if ($logger_status != 0) {
+ print STDERR "ERROR: logger returned $logger_status\n";
+ $status = 1;
+}
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+$logger->DeleteFile($iorlogger);
+exit $status;