X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FTest.pm;h=0bf89bd6b63206cafc5e5648fb7540a4ddd0a146;hb=4f36c963da80271ffea671999e41aaa04ea9a36f;hp=d306b29735f143ef6823d336d320423d97295b32;hpb=d18f6c2cbf1d5afff1d16a0524581d8cccd2ddb9;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy/Test.pm b/lib/ZOOM/IRSpy/Test.pm index d306b29..0bf89bd 100644 --- a/lib/ZOOM/IRSpy/Test.pm +++ b/lib/ZOOM/IRSpy/Test.pm @@ -1,4 +1,3 @@ -# $Id: Test.pm,v 1.1 2006-06-20 16:32:42 mike Exp $ package ZOOM::IRSpy::Test; @@ -6,56 +5,61 @@ use 5.008; use strict; use warnings; +use Scalar::Util; + +use Exporter 'import'; +our @EXPORT = qw(zoom_error_timeout_update zoom_error_timeout_check); + =head1 NAME ZOOM::IRSpy::Test - base class for tests in IRSpy =head1 SYNOPSIS - ### To follow + ## To follow =head1 DESCRIPTION -I<### To follow> +I<## To follow> =cut -sub new { + +sub subtests { () } + +sub timeout { undef } + +sub start { my $class = shift(); - my($irspy) = @_; + my($conn) = @_; - return bless { - irspy => $irspy, - }, $class; + die "can't start the base-class test"; } -sub irspy { - my $this = shift(); - return $this->{irspy}; -} +our $max_timeout_errors = $ZOOM::IRSpy::max_timeout_errors; +sub zoom_error_timeout_update { + my ($conn, $exception) = @_; -sub run { - my $this = shift(); - die "can't run the base-class test"; + if ($exception =~ /Timeout/i) { + $conn->record->zoom_error->{TIMEOUT}++; + $conn->log("irspy_test", "Increase timeout error counter to: " . + $conn->record->zoom_error->{TIMEOUT}); + } } -### Could include loop detection -sub run_tests { - my $this = shift(); - my @tname = @_; +sub zoom_error_timeout_check { + my $conn = shift; - my $res = 0; - foreach my $tname (@tname) { - my $sub = $this->irspy()->_run_test($tname); - $res = $sub if $sub > $res; + if ($conn->record->zoom_error->{TIMEOUT} >= $max_timeout_errors) { + $conn->log("irspy_test", "Got $max_timeout_errors or more timeouts, give up..."); + return 1; } - return $res; + return 0; } - =head1 SEE ALSO ZOOM::IRSpy