Do not return TEST_BAD when diagnostic is 1 (permanent system error).
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Test / Search / Bib1.pm
index 1b51773..1d5c0e7 100644 (file)
@@ -1,4 +1,3 @@
-# $Id: Bib1.pm,v 1.14 2006-10-27 09:56:07 sondberg Exp $
 
 # See the "Main" test package for documentation
 
@@ -24,7 +23,7 @@ sub start {
     foreach my $attr (@attrs) {
        $conn->irspy_search_pqf("\@attr 1=$attr mineral",
                                 {'attr' => $attr}, {},
-                               ZOOM::Event::RECV_SEARCH, \&found,
+                               ZOOM::Event::ZEND, \&found,
                                exception => \&error);
     }
 }
@@ -33,8 +32,9 @@ sub start {
 sub found {
     my($conn, $task, $test_args, $event) = @_;
     my $attr = $test_args->{'attr'};
-    my $n = $task->{rs}->size();
 
+    my $n = $task->{rs}->size();
+    $task->{rs}->destroy();
     $conn->log("irspy_test", "search on access-point $attr found $n record",
               $n==1 ? "" : "s");
     update($conn, $attr, 1);
@@ -47,9 +47,17 @@ sub error {
     my($conn, $task, $test_args, $exception) = @_;
     my $attr = $test_args->{'attr'};
 
+    $task->{rs}->destroy();
     $conn->log("irspy_test", "search on access-point $attr had error: ",
               $exception);
     update($conn, $attr, 0);
+    zoom_error_timeout_update($conn, $exception);
+
+# 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;
 }
@@ -62,5 +70,4 @@ sub update {
                                             'ok'        => $ok);
 }
 
-
 1;