r1516 - in trunk/varnish-tools/regress: . lib/Varnish lib/Varnish/Test

des at projects.linpro.no des at projects.linpro.no
Thu Jun 14 18:38:59 CEST 2007


Author: des
Date: 2007-06-14 18:38:58 +0200 (Thu, 14 Jun 2007)
New Revision: 1516

Modified:
   trunk/varnish-tools/regress/lib/Varnish/Test.pm
   trunk/varnish-tools/regress/lib/Varnish/Test/Case.pm
   trunk/varnish-tools/regress/varnish-regress.pl
Log:
Rather than start and stop the engine for every test case, just stop (and
restart) it if a test failed.


Modified: trunk/varnish-tools/regress/lib/Varnish/Test/Case.pm
===================================================================
--- trunk/varnish-tools/regress/lib/Varnish/Test/Case.pm	2007-06-14 14:14:12 UTC (rev 1515)
+++ trunk/varnish-tools/regress/lib/Varnish/Test/Case.pm	2007-06-14 16:38:58 UTC (rev 1516)
@@ -97,6 +97,11 @@
     }
 
     delete $self->{'engine'}->{'case'};
+
+    if ($self->{'failed'}) {
+	die sprintf("%d out of %d tests failed\n",
+		    $self->{'failed'}, $self->{'count'});
+    }
 }
 
 sub run($;@) {

Modified: trunk/varnish-tools/regress/lib/Varnish/Test.pm
===================================================================
--- trunk/varnish-tools/regress/lib/Varnish/Test.pm	2007-06-14 14:14:12 UTC (rev 1515)
+++ trunk/varnish-tools/regress/lib/Varnish/Test.pm	2007-06-14 16:38:58 UTC (rev 1516)
@@ -67,8 +67,6 @@
 
 package Varnish::Test;
 
-use Carp 'croak';
-
 use Varnish::Test::Engine;
 
 sub new($) {
@@ -89,7 +87,10 @@
 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 @@
     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;

Modified: trunk/varnish-tools/regress/varnish-regress.pl
===================================================================
--- trunk/varnish-tools/regress/varnish-regress.pl	2007-06-14 14:14:12 UTC (rev 1515)
+++ trunk/varnish-tools/regress/varnish-regress.pl	2007-06-14 16:38:58 UTC (rev 1516)
@@ -86,16 +86,18 @@
 	}
     }
 
-    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'});
     }
 }




More information about the varnish-commit mailing list