r1519 - in trunk/varnish-tools/regress: . lib/Varnish

des at projects.linpro.no des at projects.linpro.no
Thu Jun 14 19:07:46 CEST 2007


Author: des
Date: 2007-06-14 19:07:46 +0200 (Thu, 14 Jun 2007)
New Revision: 1519

Modified:
   trunk/varnish-tools/regress/lib/Varnish/Test.pm
   trunk/varnish-tools/regress/varnish-regress.pl
Log:
Add code to enumerate all available cases.  If no case name is specified,
varnish-regress.pl will now run them all.  Also simplify MAIN a bit.


Modified: trunk/varnish-tools/regress/lib/Varnish/Test.pm
===================================================================
--- trunk/varnish-tools/regress/lib/Varnish/Test.pm	2007-06-14 16:47:13 UTC (rev 1518)
+++ trunk/varnish-tools/regress/lib/Varnish/Test.pm	2007-06-14 17:07:46 UTC (rev 1519)
@@ -67,6 +67,7 @@
 
 package Varnish::Test;
 
+use Varnish::Test::Case;
 use Varnish::Test::Engine;
 
 sub new($) {
@@ -93,6 +94,19 @@
     }
 }
 
+sub cases($) {
+    my ($self) = @_;
+
+    my $dir = $INC{'Varnish/Test/Case.pm'};
+    $dir =~ s/\.pm$/\//;
+    local *DIR;
+    opendir(DIR, $dir)
+	or die("$dir: $!\n");
+    my @cases = sort grep { s/^(\w+)\.pm$/$1/ } readdir(DIR);
+    closedir(DIR);
+    return @cases;
+}
+
 sub run_case($$) {
     my ($self, $name) = @_;
 

Modified: trunk/varnish-tools/regress/varnish-regress.pl
===================================================================
--- trunk/varnish-tools/regress/varnish-regress.pl	2007-06-14 16:47:13 UTC (rev 1518)
+++ trunk/varnish-tools/regress/varnish-regress.pl	2007-06-14 17:07:46 UTC (rev 1519)
@@ -32,20 +32,13 @@
 
 use FindBin;
 
-BEGIN {
-    $FindBin::Bin =~ /^(.*)$/;
-    $FindBin::Bin = $1;
-}
-
 use lib "$FindBin::Bin/lib";
 
 use Getopt::Long;
 use Varnish::Test;
 
-my $verbose = 0;
-my $help = 0;
-
-my $usage = <<"EOU";
+sub usage() {
+    print STDERR <<EOU;
 USAGE:
 
   $0 CASE1 [ CASE2 ... ]
@@ -58,38 +51,23 @@
   $0 102
 
 EOU
+    exit 1;
+}
 
 MAIN:{
-    $help = 1 unless GetOptions('help|h!' => \$help);
+    GetOptions('help|h!' => \&usage)
+	or usage();
 
-    if (!$help and @ARGV == 0) {
-	print STDERR "ERROR: Need at least one case name (or ticket number)\n\n";
-	$help = 1;
-    }
+    my $controller = new Varnish::Test;
 
-    if ($help) {
-	print STDERR $usage;
-	exit 1;
+    if (!@ARGV) {
+	@ARGV = $controller->cases();
+    } else {
+	map { s/^(\d+)$/sprintf('Ticket%03d', $1)/e } @ARGV;
     }
 
-    my @casenames = ();
-
-    foreach my $arg (@ARGV) {
-	my $case;
-
-	if ($arg =~ /^(\d+)$/) {
-	    push(@casenames, sprintf('Ticket%03d', $1));
-	}
-	else {
-	    $arg =~ /^(.*)$/;
-	    push(@casenames, $1);
-	}
-    }
-
-    my $controller = new Varnish::Test;
-
     $controller->start_engine();
-    foreach my $casename (@casenames) {
+    foreach my $casename (@ARGV) {
 	$controller->run_case($casename);
     }
     $controller->stop_engine();




More information about the varnish-commit mailing list