X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FTest%2FResultSet%2FNamed.pm;h=eb3a342fb853248c0287d30d8ac43365b05d9549;hb=83e42c009f2456be9bab5f096cf50e11e7e0cebf;hp=61596aeace97f07afd809fe2c36a949cc4fab039;hpb=b28a3e2fedcd43d72cd164b0953b4589b8566678;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy/Test/ResultSet/Named.pm b/lib/ZOOM/IRSpy/Test/ResultSet/Named.pm index 61596ae..eb3a342 100644 --- a/lib/ZOOM/IRSpy/Test/ResultSet/Named.pm +++ b/lib/ZOOM/IRSpy/Test/ResultSet/Named.pm @@ -1,4 +1,4 @@ -# $Id: Named.pm,v 1.4 2007-03-08 14:51:01 mike Exp $ +# $Id: Named.pm,v 1.6 2007-08-01 15:11:20 mike Exp $ # See the "Main" test package for documentation @@ -19,7 +19,7 @@ sub start { $conn->log('irspy_test', 'Testing for named resultset support'); $conn->irspy_search_pqf("\@attr 1=4 mineral", {}, - {'setname' => 'a', 'start' => 0, 'count' => 0}, + {'setname' => 'a', 'start' => 0, 'count' => 0}, ZOOM::Event::ZEND, \&completed_search_a, exception => \&error); } @@ -31,13 +31,17 @@ sub completed_search_a { my $record = ''; my $hits = $rs->size(); - ## How should we handle the situation when there is 0 hits? - if ($hits > 0) { + if ($hits == 0) { + ### We should try other searches as in Record::Fetch + $rs->destroy(); + return ZOOM::IRSpy::Status::TEST_BAD; + } else { my $rsrec = $rs->record(0); if (!defined $rsrec) { # I thought this was a "can't happen", but it sometimes # does, as for example documented for # kat.vkol.cz:9909/svk02 at ../../../../../tmp/bad-run-1 + $rs->destroy(); eval { $conn->check() }; return error($conn, $task, $test_args, $@); } @@ -61,12 +65,16 @@ sub completed_search_b { my $record = ''; my $error = ''; + $task->{rs}->destroy(); # We only care about the original search $rs->cache_reset(); - if ($test_args->{'hits_a'} > 0) { + if ($test_args->{'hits_a'} == 0) { + die "can't happen: hits_a == 0"; + } else { my $hits = $rs->size(); my $rsrec = $rs->record(0); if (!defined $rsrec) { + $rs->destroy(); eval { $conn->check() }; return error($conn, $task, $test_args, $@); } @@ -78,7 +86,7 @@ sub completed_search_b { $error = 'hitcount'; } - if ($record ne $test_args->{'record_a'}) { + if (!defined $record || $record ne $test_args->{'record_a'}) { $conn->log('irspy_test', 'Named result set not supported: ', 'Mis-matching records'); $error = 'record'; @@ -87,6 +95,7 @@ sub completed_search_b { update($conn, $error eq '' ? 1 : 0, $error); + $rs->destroy(); return ZOOM::IRSpy::Status::TASK_DONE; }