summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorneeleym <neeleym@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2013-02-01 21:50:18 +0000
committerneeleym <neeleym@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2013-02-01 21:50:18 +0000
commite5f22f8ff3dda27cf0a7406affff3b41c3001dd6 (patch)
treecf710092987dc12432640a4b57ee3a7891353fab
parentd46a753948452ad94faaebe0ca15bfa08d05dbdd (diff)
downloadATCD-e5f22f8ff3dda27cf0a7406affff3b41c3001dd6.tar.gz
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.
-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;