-# $Id: IRSpy.pm,v 1.46 2006-11-01 10:14:09 mike Exp $
+# $Id: IRSpy.pm,v 1.49 2006-11-16 17:19:28 mike Exp $
package ZOOM::IRSpy;
use ZOOM::IRSpy::Node;
use ZOOM::IRSpy::Connection;
use ZOOM::IRSpy::Record;
-use ZOOM::IRSpy::Utils;
+use ZOOM::IRSpy::Utils qw(cql_target);
our @ISA = qw();
our $VERSION = '0.02';
sub TASK_DONE { 18 } # Task is complete, next task should begin
sub TEST_GOOD { 8 } # Whole test is complete, and succeeded
sub TEST_BAD { 31 } # Whole test is complete, and failed
+sub TEST_SKIPPED { 12 } # Test couldn't be run
package ZOOM::IRSpy;
$this->log("irspy_debug", "rewriting '$target' to '$newtarget'");
$target = $newtarget; # This is written through the ref
}
- push @qlist, (qq[(host="$host" and port="$port" and path="$db")]);
+ push @qlist, cql_target($host, $port, $db);
}
$this->{targets} = \@targets;
$conn->log("irspy", "has no more tests: removing");
splice @conn, $i0, 1;
$this->_rewrite_record($conn);
+ $conn->option(rewrote_record => 1);
next;
}
$nskipped += $n;
}
}
+
+ } elsif ($res == ZOOM::IRSpy::Status::TEST_SKIPPED) {
+ $conn->log("irspy_task", "test skipped during task $task");
+ $conn->current_task(0);
+ $conn->next_task(0);
+ # I think that's all we need to do
+
} else {
die "unknown callback return-value '$res'";
}
}
$this->log("irspy", "exiting main loop");
+ # Sanity checks: none of the following should ever happen
+ foreach my $conn (@{ $this->{connections} }) {
+ my $test = $conn->option("current_test_address");
+ my $next = $this->_next_test($test);
+ if (defined $next) {
+ warn "$conn (in test '$test') has queued test '$next'";
+ }
+ if (my $task = $conn->current_task()) {
+ warn "$conn still has an active task $task";
+ }
+ if (my $task = $conn->next_task()) {
+ warn "$conn still has a queued task $task";
+ }
+ if (!$conn->is_idle()) {
+ warn "$conn is not idle (still has ZOOM-C level tasks queued)";
+ }
+ if (!$conn->option("rewrote_record")) {
+ warn "$conn did not rewrite its ZeeRex record";
+ }
+ }
+
return $nskipped;
}