Do not return TEST_BAD when diagnostic is 1 (permanent system error).
authorMike Taylor <mike@indexdata.com>
Mon, 25 Mar 2013 18:04:20 +0000 (18:04 +0000)
committerMike Taylor <mike@indexdata.com>
Mon, 25 Mar 2013 18:04:20 +0000 (18:04 +0000)
Fixes the second part of IR-338.

This probably needs some deeper thought. There seems to be some
uncertainty over whether returning TEST_BAD means "skip the rest of
this test" (which is what was intended here) or "skip this and all
sibling tests" (which is what's implemented). Do ANY instances of
TEST_BAD intend the latter? If not, we can just change the behaviour.

lib/ZOOM/IRSpy/Test/Search/Bib1.pm

index fd4d1d6..1d5c0e7 100644 (file)
@@ -53,10 +53,11 @@ sub error {
     update($conn, $attr, 0);
     zoom_error_timeout_update($conn, $exception);
 
     update($conn, $attr, 0);
     zoom_error_timeout_update($conn, $exception);
 
-    return ZOOM::IRSpy::Status::TEST_BAD
-       if ($exception->code() == 1 || # permanent system error
-           $exception->code() == 235 || # Database does not exist
-           $exception->code() == 109); # Database unavailable
+# Commented out because TEST_BAD causes sibling tests to be skipped.
+#    return ZOOM::IRSpy::Status::TEST_BAD
+#      if ($exception->code() == 1 || # permanent system error
+#          $exception->code() == 235 || # Database does not exist
+#          $exception->code() == 109); # Database unavailable
 
     return ZOOM::IRSpy::Status::TASK_DONE;
 }
 
     return ZOOM::IRSpy::Status::TASK_DONE;
 }