fixed TESTS= in make test to allow multiple tests
authorAndrew Tridgell <tridge@samba.org>
Fri, 14 Aug 2009 03:04:21 +0000 (13:04 +1000)
committerAndrew Tridgell <tridge@samba.org>
Fri, 14 Aug 2009 03:05:06 +0000 (13:05 +1000)
Now you can do: make test TESTS="test1 test2" and it will run those
two tests, each matching tests using a case insensitive substring
match

selftest/selftest.pl

index 75afbdd9a996670b16f61902b8321957a926145b..1cae9eaa7dbdb590620b32f0b1989fecbc58032d 100755 (executable)
@@ -348,7 +348,7 @@ exit(1) if (not $result);
 
 ShowHelp() if ($opt_help);
 
-my $tests = shift;
+my @tests = @ARGV;
 
 # quick hack to disable rpc validation when using valgrind - its way too slow
 unless (defined($ENV{VALGRIND})) {
@@ -591,6 +591,20 @@ my $testsdir = "$srcdir/selftest";
 
 my %required_envs = ();
 
+sub should_run_test($)
+{
+       my $name = shift;
+       if ($#tests == -1) {
+               return 1;
+       }
+       for (my $i=0; $i <= $#tests; $i++) {
+               if ($name =~ /$tests[$i]/i) {
+                       return 1;
+               }
+       }
+       return 0;
+}
+
 sub read_testlist($)
 {
        my ($filename) = @_;
@@ -606,7 +620,7 @@ sub read_testlist($)
                        $env =~ s/\n//g;
                        my $cmdline = <IN>;
                        $cmdline =~ s/\n//g;
-                       if (not defined($tests) or $name =~ /$tests/) {
+                       if (should_run_test($name) == 1) {
                                $required_envs{$env} = 1;
                                push (@ret, [$name, $env, $cmdline]);
                        }