selftest: Cope with parentheses in testnames in --load-list.
authorJelmer Vernooij <jelmer@samba.org>
Sun, 5 Sep 2010 01:16:48 +0000 (03:16 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Sun, 5 Sep 2010 01:16:48 +0000 (03:16 +0200)
selftest/selftest.pl

index 2d936e24caeed7e24c048d0f3ad72ea418d6d36c..00db9518ccbb45b724d1b9a52359813b099cafb7 100755 (executable)
@@ -694,6 +694,7 @@ foreach my $fn (@testlists) {
 }
 
 my $restricted = undef;
+my $restricted_used = {};
 
 if ($opt_load_list) {
        $restricted = [];
@@ -718,14 +719,16 @@ foreach my $testsuite (@available) {
                Subunit::skip_testsuite($name, $skipreason);
        } elsif (defined($restricted)) {
                # Find the testsuite for this test
-               my $match = 0;
+               my $match = undef;
                foreach my $r (@$restricted) {
                        if ($r eq $name) {
                                $individual_tests->{$name} = [];
-                               $match = 1;
-                       } elsif ($r =~ /^$name\.(.*)$/) {
+                               $match = $r;
+                               $restricted_used->{$r} = 1;
+                       } elsif (substr($r, $name, length($name)+1) eq "$name.") {
                                push(@{$individual_tests->{$name}}, $1);
-                               $match = 1;
+                               $match = $r;
+                               $restricted_used->{$r} = 1;
                        }
                }
                push(@todo, $testsuite) if ($match);
@@ -736,7 +739,7 @@ foreach my $testsuite (@available) {
 
 if (defined($restricted)) {
        foreach (@$restricted) {
-               unless (defined($individual_tests->{$_})) {
+               unless (defined($restricted_used->{$_})) {
                        print "No test or testsuite found matching $_\n";
                }
        }