summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xselftest/selftest.pl13
1 files changed, 8 insertions, 5 deletions
diff --git a/selftest/selftest.pl b/selftest/selftest.pl
index 2d936e24ca..00db9518cc 100755
--- a/selftest/selftest.pl
+++ b/selftest/selftest.pl
@@ -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";
}
}