summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TAO/OCI_RE_ChangeLog11
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/run_test.pl68
2 files changed, 75 insertions, 4 deletions
diff --git a/TAO/OCI_RE_ChangeLog b/TAO/OCI_RE_ChangeLog
index 993a4f78ae7..23ef42bc7c1 100644
--- a/TAO/OCI_RE_ChangeLog
+++ b/TAO/OCI_RE_ChangeLog
@@ -1,3 +1,14 @@
+Fri Feb 1 21:44:54 UTC 2013 Marc Neeley <neeley_m@ociweb.com>
+
+ * orbsvcs/tests/ImplRepo/run_test.pl:
+ Changed the way the backup files were cleaned up in
+ run script as it was causing an indirect error to occur
+ in the scoreboard log.
+
+ Trapped XML parse errors in run script for tests where
+ the XML persistence files were purposefully corrupted
+ causing false tests fail condition in the scoreboard log.
+
Thu Jan 31 23:31:54 UTC 2013 Marc Neeley <neeley_m@ociweb.com>
* bin/tao_other_tests.lst:
diff --git a/TAO/orbsvcs/tests/ImplRepo/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/run_test.pl
index ef0edbd9f0f..43edcf5be04 100755
--- a/TAO/orbsvcs/tests/ImplRepo/run_test.pl
+++ b/TAO/orbsvcs/tests/ImplRepo/run_test.pl
@@ -77,6 +77,9 @@ my $replica_imriorfile = "replica_imr_locator.ior";
my $nesteaiorfile = "nestea.ior";
my $nestea_dat = "nestea.dat";
+my $stdout_file = "test.out";
+my $stderr_file = "test.err";
+
my $n_cli_nesteaiorfile = $n_cli->LocalFile ($nesteaiorfile);
my $refstyle = " -ORBObjRefStyle URL";
@@ -211,18 +214,39 @@ sub cleanup_replication
}
my $listings = "$dir/imr_listing.xml";
+ my $fnd = 0;
if (open FILE, "<$listings") {
while (<FILE>) {
if ($_ =~ /fname="([^"]+)"?/) {
+ $fnd = 1;
my $file = "$dir/$1";
test_info("deleting $file\n");
$imr->DeleteFile ($file);
+ $imr->DeleteFile ($file . ".bak");
}
}
- close FILE;
+ close FILE;
+ }
+
+# If the primary listings file has been corrupt then perform the
+# deletions from the backup file.
+
+ if (!$fnd) {
+ if (open FILE, "<$listings" . ".bak") {
+ while (<FILE>) {
+ if ($_ =~ /fname="([^"]+)"?/) {
+ my $file = "$dir/$1";
+ test_info("deleting $file\n");
+ $imr->DeleteFile ($file);
+ $imr->DeleteFile ($file . ".bak");
+ }
+ }
+ close FILE;
+ }
}
test_info("deleting $listings\n");
$imr->DeleteFile ("$listings");
+ $imr->DeleteFile ("$listings" . ".bak");
$imr->DeleteFile ("$dir/$primaryiorfile");
$imr->DeleteFile ("$dir/$backupiorfile");
}
@@ -448,6 +472,28 @@ sub kill_then_timed_wait
###############################################################################
+
+sub redirect_output
+{
+
+ my $test_stdout_file = shift;
+ my $test_stderr_file = shift;
+ open (OLDOUT, ">&", \*STDOUT) or die "Can't dup STDOUT: $!";
+ open (OLDERR, ">&", \*STDERR) or die "Can't dup STDERR: $!";
+ open STDOUT, '>', $test_stdout_file;
+ open STDERR, '>', $test_stderr_file;
+}
+
+###############################################################################
+
+sub restore_output()
+{
+ open (STDERR, ">&OLDERR") or die "Can't dup OLDERR: $!";
+ open (STDOUT, ">&OLDOUT") or die "Can't dup OLDOUT: $!";
+}
+
+
+###############################################################################
# The Tests
###############################################################################
@@ -1371,7 +1417,6 @@ sub perclient
return $status;
}
-
###############################################################################
sub shutdown_repo
@@ -1909,10 +1954,10 @@ sub persistent_ir_test
}
}
elsif ($backing_store_flag eq "--directory") {
-# cleanup_replication($backing_store);
+ cleanup_replication($backing_store);
}
else {
-# $imr->DeleteFile ($backing_store);
+ $imr->DeleteFile ($backing_store);
}
$imr->DeleteFile ($imriorfile);
$act->DeleteFile ($imriorfile);
@@ -2461,7 +2506,18 @@ print "Comment line arguments: -d $test_debug_level -o $repo{imr_imriorfile} " .
print "\n\nstarting primary tao_imr_locator again\n";
$repo{IMR}->Arguments ("-d $test_debug_level -o $repo{imr_imriorfile} " .
"$imr_refstyle $repo{imr_endpoint_flag} $repo{imr_backing_store_flag}");
+
+ my $test_stdout_file = $imr->LocalFile ($stdout_file);
+ my $test_stderr_file = $imr->LocalFile ($stderr_file);
+
+ $imr->DeleteFile ($stdout_file);
+ $imr->DeleteFile ($stderr_file);
+
+# Rely on return value only, so redirect output
+ redirect_output($test_stdout_file,$test_stderr_file);
$IMR_status = $repo{IMR}->Spawn ();
+ restore_output();
+
if ($IMR_status != 0) {
print STDERR "ERROR: ImR Service returned $IMR_status\n";
return 1;
@@ -2477,7 +2533,11 @@ print "Comment line arguments: -d $test_debug_level -o $repo{imr_imriorfile} " .
"$backup_repo{imriorfile} $imr_refstyle " .
"$backup_repo{imr_endpoint_flag} " .
"$backup_repo{imr_backing_store_flag}");
+
+ redirect_output($test_stdout_file,$test_stderr_file);
$replica_IMR_status = $backup_repo{IMR}->Spawn ();
+ restore_output();
+
if ($replica_IMR_status != 0) {
print STDERR "ERROR: ImR Service replica returned $replica_IMR_status\n";
return 1;