End test early if the Explain database is unavailable.
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Test / Search / Explain.pm
index b665541..fb3433b 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Explain.pm,v 1.1 2006-10-25 12:44:55 sondberg Exp $
+# $Id: Explain.pm,v 1.5 2007-02-26 18:48:50 mike Exp $
 
 # See the "Main" test package for documentation
 
@@ -22,10 +22,10 @@ sub start {
                      Processing VariantSetInfo UnitSet);
 
     foreach my $category (@explain) {
-        $conn->option('databaseName', 'IR-Explain-1');
        $conn->irspy_search_pqf('@attr exp-1 1=1 ' . $category,
-                                {'category' => $category}, {},
-                               ZOOM::Event::RECV_SEARCH, \&found,
+                                {'category' => $category},
+                               { databaseName => 'IR-Explain-1' },
+                               ZOOM::Event::ZEND, \&found,
                                exception => \&error);
     }
 }
@@ -37,7 +37,7 @@ sub found {
     my $n = $task->{rs}->size();
     my $ok = 0;
 
-    $conn->log("irspy_test", "Explain category ", $category, " gave, ", $n,
+    $conn->log("irspy_test", "Explain category ", $category, " gave ", $n,
                " hit(s).");
     if ($n > 0) {
         $ok = 1;
@@ -56,6 +56,9 @@ sub error {
     $conn->log("irspy_test", "Explain category lookup failed: ", $exception);
     update($conn, $category, 0);
 
+    return ZOOM::IRSpy::Status::TEST_BAD
+       if $exception->code() == 109; # Database unavailable
+
     return ZOOM::IRSpy::Status::TASK_DONE;
 }