]> err.no Git - varnish/commitdiff
Rather than start and stop the engine for every test case, just stop (and
authordes <des@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 14 Jun 2007 16:38:58 +0000 (16:38 +0000)
committerdes <des@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 14 Jun 2007 16:38:58 +0000 (16:38 +0000)
restart) it if a test failed.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1516 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-tools/regress/lib/Varnish/Test.pm
varnish-tools/regress/lib/Varnish/Test/Case.pm
varnish-tools/regress/varnish-regress.pl

index 2bf963c4a916619da80ff4c77b121bc86b2cf752..1ae8da2452ea5cfb07ad3c8b5f95327468a54805 100644 (file)
@@ -67,8 +67,6 @@ flow related to the select-loop.
 
 package Varnish::Test;
 
-use Carp 'croak';
-
 use Varnish::Test::Engine;
 
 sub new($) {
@@ -89,7 +87,10 @@ sub start_engine($;@) {
 sub stop_engine($;$) {
     my ($self) = @_;
 
-    (delete $self->{'engine'})->shutdown if defined $self->{'engine'};
+    if (defined($self->{'engine'})) {
+       $self->{'engine'}->shutdown();
+       delete $self->{'engine'};
+    }
 }
 
 sub run_case($$) {
@@ -98,19 +99,23 @@ sub run_case($$) {
     my $module = 'Varnish::Test::Case::' . $name;
 
     eval 'use ' . $module;
-    croak $@ if $@;
+    die $@ if $@;
 
-    $self->start_engine;
+    $self->start_engine();
 
     my $case = $module->new($self->{'engine'});
 
     push(@{$self->{'cases'}}, $case);
 
-    $case->init;
-    $case->run;
-    $case->fini;
-
-    $self->stop_engine;
+    eval {
+       $case->init();
+       $case->run();
+       $case->fini();
+    };
+    if ($@) {
+       $self->{'engine'}->log($self, 'TST: ', $@);
+       $self->stop_engine();
+    }
 }
 
 1;
index 7a8606059170a51f25ec64af7c6af1e3c3521d64..5d352ae446d2190c3e5a9c3e95c9a3fc2cbf522a 100644 (file)
@@ -97,6 +97,11 @@ sub fini($) {
     }
 
     delete $self->{'engine'}->{'case'};
+
+    if ($self->{'failed'}) {
+       die sprintf("%d out of %d tests failed\n",
+                   $self->{'failed'}, $self->{'count'});
+    }
 }
 
 sub run($;@) {
index 81e512e4123d4b6e75bf1b91ff6da7a9a98aa5b9..4c5efe57c4fb08bf5335629b55a60b4d4715ff73 100755 (executable)
@@ -86,16 +86,18 @@ MAIN:{
        }
     }
 
-    my $controller = Varnish::Test->new;
+    my $controller = new Varnish::Test;
 
+    $controller->start_engine();
     foreach my $casename (@casenames) {
        $controller->run_case($casename);
     }
+    $controller->stop_engine();
 
     foreach my $case (@{$controller->{'cases'}}) {
        (my $name = ref($case)) =~ s/.*://;
 
-       print sprintf("%s: Successful: %d Failed: %d\n",
-                     $name, $case->{'successful'}, $case->{'failed'});
+       printf("%s: Successful: %d Failed: %d\n",
+              $name, $case->{'successful'}, $case->{'failed'});
     }
 }