From: des Date: Thu, 14 Jun 2007 17:07:46 +0000 (+0000) Subject: Add code to enumerate all available cases. If no case name is specified, X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92c8e7f655c4d1f6273456c7f4bd5ef9687af52a;p=varnish 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. git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1519 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- diff --git a/varnish-tools/regress/lib/Varnish/Test.pm b/varnish-tools/regress/lib/Varnish/Test.pm index defd5af8..6e31b07c 100644 --- a/varnish-tools/regress/lib/Varnish/Test.pm +++ b/varnish-tools/regress/lib/Varnish/Test.pm @@ -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) = @_; diff --git a/varnish-tools/regress/varnish-regress.pl b/varnish-tools/regress/varnish-regress.pl index 9d576f5c..f0d9dce7 100755 --- a/varnish-tools/regress/varnish-regress.pl +++ b/varnish-tools/regress/varnish-regress.pl @@ -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 < \$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();