summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Mesnier <mesnier_p@ociweb.com>2013-05-14 14:56:18 +0000
committerPhil Mesnier <mesnier_p@ociweb.com>2013-05-14 14:56:18 +0000
commit816c2398910386fddb12cfa016e577534b78fbb3 (patch)
tree18c1f69b525f6e97881eb279acab85e10dd1a268
parent759c54f0aad5a1e92cc03d431cf310a9cae61528 (diff)
downloadATCD-816c2398910386fddb12cfa016e577534b78fbb3.tar.gz
Tue May 14 14:53:28 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
-rw-r--r--TAO/ChangeLog9
-rw-r--r--TAO/bin/tao_other_tests.lst1
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl50
3 files changed, 59 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index c1cd517825b..8c1deaf009f 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,12 @@
+Tue May 14 14:53:28 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * bin/tao_other_tests.lst:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl:
+
+ Added a test scenario where multiple concurrent start requests
+ are issued for the same server. This test insures that only a
+ single instance is actually started.
+
Mon May 13 21:38:06 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
* orbsvcs/ImplRepo_Service/AsyncListManager.cpp:
diff --git a/TAO/bin/tao_other_tests.lst b/TAO/bin/tao_other_tests.lst
index 0796abdac63..deca7a3ed5a 100644
--- a/TAO/bin/tao_other_tests.lst
+++ b/TAO/bin/tao_other_tests.lst
@@ -140,6 +140,7 @@ TAO/orbsvcs/tests/ImplRepo/RestartServer/run_test.pl: !ST !MINIMUM !CORBA_E_COMP
TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS !OpenVMS
TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl -delay 20 -imr_start: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS !OpenVMS
TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl -hide_server -imr_start: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS !OpenVMS
+TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl -multistart: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS !OpenVMS
TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ST !ACE_FOR_TAO !LynxOS
TAO/orbsvcs/examples/CosEC/TypedSimple/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NO_IFR !ACE_FOR_TAO !WCHAR
TAO/orbsvcs/tests/CosEvent/Timeout/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !NO_MESSAGING !ACE_FOR_TAO !LynxOS
diff --git a/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl
index 086d8a350d2..ccd1f3d2d1b 100755
--- a/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl
+++ b/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl
@@ -21,6 +21,7 @@ my $usage = 0;
my $use_imr_start = 0;
my $restart_loc = 0;
my $list_test = 0;
+my $multistart = 0;
my $hide_server = 0;
my $expect_transient = "";
my $notify_locator = "";
@@ -62,6 +63,9 @@ if ($#ARGV >= 0) {
$hide_server = 1;
$notify_locator = "-l";
}
+ elsif ($ARGV[$i] eq "-multistart") {
+ $multistart = 1;
+ }
elsif ($ARGV[$i] eq "-imr_start") {
$use_imr_start = 1;
}
@@ -417,10 +421,51 @@ sub run_imr_start_test
return $result;
}
-sub run_list_test
+sub run_multistart_test
{
init_test ();
+ print_msg ("Running multistart test");
+
+ my @TICMD;
+ print "First async start request\n";
+ $TICMD[0] = $ti->CreateProcess ("$ENV{ACE_ROOT}/bin/tao_imr");
+ $TICMD[0]->Arguments ("-ORBInitRef ImplRepoService=file://$ti_imriorfile start $obj[1]");
+ $TICMD[0]->Spawn();
+ print "sleep 1 sec\n";
+ sleep (1);
+ print "Second async start request\n";
+ $TICMD[1] = $ti->CreateProcess ("$ENV{ACE_ROOT}/bin/tao_imr");
+ $TICMD[1]->Arguments ("-ORBInitRef ImplRepoService=file://$ti_imriorfile start $obj[1]");
+ $TICMD[1]->Spawn();
+ print "sleep 7 sec\n";
+ sleep (7);
run_imr_util ("start $obj[1]");
+
+ open (STATUS, $srvstatusfile[1]);
+ @lines = <STATUS>;
+ close (STATUS);
+
+ $count = @lines;
+
+ if ($count == 1) {
+ print "SUCCESS: multiple start requests result in only 1 server\n";
+ }
+ else {
+ print "FAILURE: multiple start requests expected 1 start, got $count\n";
+ }
+
+ for ($i = 0; $i < 2; $i++) {
+ $TICMD[$i]->WaitKill ($ti->ProcessStartWaitInterval() +$server_reply_delay);
+ }
+
+ fini_test ();
+}
+
+sub run_list_test
+{
+ init_test ();
+ print_msg ("Running list test");
+ spawn_imr_util ("start $obj[1]");
run_imr_util ("start $obj[0]");
run_imr_util ("list -a");
run_imr_util ("shutdown $obj[1]");
@@ -502,6 +547,9 @@ if ($use_imr_start == 1) {
elsif ($list_test == 1) {
$ret = run_list_test ();
}
+elsif ($multistart == 1) {
+ $ret = run_multistart_test ();
+}
else {
$ret = run_client_activate_test ();
}