]> err.no Git - varnish/commitdiff
Add code to enumerate all available cases. If no case name is specified,
authordes <des@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 14 Jun 2007 17:07:46 +0000 (17:07 +0000)
committerdes <des@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 14 Jun 2007 17:07:46 +0000 (17:07 +0000)
varnish-regress.pl will now run them all.  Also simplify MAIN a bit.

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

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

index defd5af824951472c5c218a1dd498d446da9be4b..6e31b07c02dfac90480cf8a24873f1147f70ab8a 100644 (file)
@@ -67,6 +67,7 @@ flow related to the select-loop.
 
 package Varnish::Test;
 
+use Varnish::Test::Case;
 use Varnish::Test::Engine;
 
 sub new($) {
@@ -93,6 +94,19 @@ sub stop_engine($;$) {
     }
 }
 
+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) = @_;
 
index 9d576f5c467cb92ad2b2682bfaa227f66b9639a8..f0d9dce78d94f35acf14f23f2fcb94897a6a300b 100755 (executable)
@@ -32,20 +32,13 @@ use strict;
 
 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 @@ Examples:
   $0 102
 
 EOU
+    exit 1;
+}
 
 MAIN:{
-    $help = 1 unless GetOptions('help|h!' => \$help);
-
-    if (!$help and @ARGV == 0) {
-       print STDERR "ERROR: Need at least one case name (or ticket number)\n\n";
-       $help = 1;
-    }
+    GetOptions('help|h!' => \&usage)
+       or usage();
 
-    if ($help) {
-       print STDERR $usage;
-       exit 1;
-    }
-
-    my @casenames = ();
-
-    foreach my $arg (@ARGV) {
-       my $case;
+    my $controller = new Varnish::Test;
 
-       if ($arg =~ /^(\d+)$/) {
-           push(@casenames, sprintf('Ticket%03d', $1));
-       }
-       else {
-           $arg =~ /^(.*)$/;
-           push(@casenames, $1);
-       }
+    if (!@ARGV) {
+       @ARGV = $controller->cases();
+    } else {
+       map { s/^(\d+)$/sprintf('Ticket%03d', $1)/e } @ARGV;
     }
 
-    my $controller = new Varnish::Test;
-
     $controller->start_engine();
-    foreach my $casename (@casenames) {
+    foreach my $casename (@ARGV) {
        $controller->run_case($casename);
     }
     $controller->stop_engine();