summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/Notify/Blocking/run_test.pl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/tests/Notify/Blocking/run_test.pl')
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Blocking/run_test.pl122
1 files changed, 122 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/Notify/Blocking/run_test.pl b/TAO/orbsvcs/tests/Notify/Blocking/run_test.pl
new file mode 100755
index 00000000000..a41a049b9ab
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Blocking/run_test.pl
@@ -0,0 +1,122 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+PerlACE::check_privilege_group();
+
+$ior = PerlACE::LocalFile ("supplier.ior");
+$namingior = PerlACE::LocalFile ("naming.ior");
+$notifyior = PerlACE::LocalFile ("notify.ior");
+$notify_conf = PerlACE::LocalFile ("notify$PerlACE::svcconf_ext");
+$status = 0;
+
+$port = PerlACE::uniqueid () + 10001;
+$NS = new PerlACE::Process ("../../../Naming_Service/Naming_Service",
+ "-ORBEndpoint iiop://localhost:$port " .
+ "-o $namingior");
+$TS = new PerlACE::Process ("../../../Notify_Service/Notify_Service",
+ "-ORBInitRef NameService=iioploc://" .
+ "localhost:$port/NameService " .
+ "-IORoutput $notifyior -ORBSvcConf " .
+ "$notify_conf");
+$STS = new PerlACE::Process ("Structured_Supplier",
+ "-ORBInitRef NameService=iioploc://" .
+ "localhost:$port/NameService");
+$STC = new PerlACE::Process ("Structured_Consumer");
+
+unlink $ior;
+unlink $notifyior;
+unlink $namingior;
+
+$client_args = "-ORBInitRef NameService=iioploc://localhost:" .
+ "$port/NameService";
+$NS->Spawn ();
+
+if (PerlACE::waitforfile_timed ($namingior, 20) == -1) {
+ print STDERR "ERROR: waiting for the naming service to start\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$TS->Spawn ();
+
+if (PerlACE::waitforfile_timed ($notifyior, 20) == -1) {
+ print STDERR "ERROR: waiting for the notify service to start\n";
+ $TS->Kill ();
+ $NS->Kill ();
+ exit 1;
+}
+
+print "****** Running consumer long blocking timeout ******\n";
+
+unlink $ior;
+$STS->Arguments($STS->Arguments());
+$STS->Spawn ();
+if (PerlACE::waitforfile_timed ($ior, 5) == -1) {
+ print STDERR "ERROR: waiting for the supplier to start\n";
+ $STS->Kill ();
+ $TS->Kill ();
+ $NS->Kill ();
+ exit 1;
+}
+
+$STC->Arguments($client_args . " -t 2000");
+$client = $STC->SpawnWaitKill (10);
+if ($client != 0) {
+ $STS->Kill ();
+ $TS->Kill ();
+ $NS->Kill ();
+ exit 1;
+}
+$server = $STS->WaitKill(5);
+if ($server != 0) {
+ $TS->Kill ();
+ $NS->Kill ();
+ exit 1;
+}
+
+print "****** Running consumer with short blocking timeout ******\n";
+
+unlink $ior;
+$STS->Arguments($STS->Arguments());
+$STS->Spawn ();
+
+if (PerlACE::waitforfile_timed ($ior, 5) == -1) {
+ print STDERR "ERROR: waiting for the supplier to start\n";
+ $STS->Kill ();
+ $TS->Kill ();
+ $NS->Kill ();
+ exit 1;
+}
+
+$STC->Arguments($client_args . " -e 19 -t 500");
+$client = $STC->SpawnWaitKill (10);
+if ($client != 0) {
+ print STDERR "ERROR: Structured_Consumer did not run properly\n";
+ $STS->Kill ();
+ $TS->Kill ();
+ $NS->Kill ();
+ exit 1;
+}
+$server = $STS->WaitKill(5);
+if ($server != 0) {
+ $TS->Kill ();
+ $NS->Kill ();
+ exit 1;
+}
+
+$TS->Kill ();
+$NS->Kill ();
+
+unlink $ior;
+unlink $notifyior;
+unlink $namingior;
+
+
+exit $status;