Better method of skipping all the tests in 00-check_testexes.t

Before trying to read MINFO, we have no idea how many to test for, and
because skip expects to get an exact number somehow, it's better to
use 'plan skip_all'.

Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
Richard Levitte 2015-08-09 05:35:57 +02:00
parent 8de4f3d3a6
commit 2511c12bf2

View File

@ -10,36 +10,34 @@ setup("check_testexes");
my $MINFO = top_file("MINFO"); my $MINFO = top_file("MINFO");
SKIP: { plan skip_all => "because MINFO not found. If you want this test to run, please do 'perl util/mkfiles.pl > MINFO'"
skip "because $MINFO not found. If you want this test to run, please do 'perl util/mkfiles.pl > $MINFO'" unless open(FH,$MINFO);
unless open(FH,$MINFO);
while(<FH>) { while(<FH>) {
chomp; chomp;
last if /^RELATIVE_DIRECTORY=test$/; last if /^RELATIVE_DIRECTORY=test$/;
} }
while(<FH>) { while(<FH>) {
chomp; chomp;
last if /^EXE=/; last if /^EXE=/;
} }
close FH; close FH;
s/^EXE=\s*//; s/^EXE=\s*//;
s/\s*$//; s/\s*$//;
my @expected_tests = my @expected_tests =
map { s/\..*$//; # Remove extension map { s/\..*$//; # Remove extension
s/_?test$//; # Remove possible underscore s/_?test$//; # Remove 'test', possibly prefixed with '_'
s/(sha\d+)t/$1/; # sha comes with no t at the end s/(sha\d+)t/$1/; # sha comes with no t at the end
$_; } split(/\s+/, $_); $_; } split(/\s+/, $_);
plan tests => scalar @expected_tests; plan tests => scalar @expected_tests;
my @found_tests = my @found_tests =
map { basename($_) } glob(top_file("test", "recipes", "*.t")); map { basename($_) } glob(top_file("test", "recipes", "*.t"));
foreach my $test (sort @expected_tests) { foreach my $test (sort @expected_tests) {
ok(scalar(grep(/^[0-9][0-9]-test_$test\.t$/, @found_tests)), ok(scalar(grep(/^[0-9][0-9]-test_$test\.t$/, @found_tests)),
"check that a test for $test exists") "check that a test for $test exists")
|| diag("Expected to find something matching '[0-9][0-9]-test_$test.t'"); || diag("Expected to find something matching '[0-9][0-9]-test_$test.t'");
}
} }