summaryrefslogtreecommitdiff
path: root/t/harness
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2004-10-31 14:37:46 +0000
committerNicholas Clark <nick@ccl4.org>2004-10-31 14:37:46 +0000
commit6234cb77344e822f4c34885de4971401d9a78b0b (patch)
tree4a153412e25e23eb8b1c02e556f8db60b3cd0b33 /t/harness
parent181f6ff5f88de6db5f8bade64a581afc9c32fcfc (diff)
downloadperl-6234cb77344e822f4c34885de4971401d9a78b0b.tar.gz
Make TEST and harness skip tests for extensions that were not
configured. Currently this skipping is silent - maybe they should report what they are skipping. p4raw-id: //depot/perl@23448
Diffstat (limited to 't/harness')
-rw-r--r--t/harness23
1 files changed, 21 insertions, 2 deletions
diff --git a/t/harness b/t/harness
index e745db8a34..4fc77460e7 100644
--- a/t/harness
+++ b/t/harness
@@ -50,6 +50,10 @@ my @tests = ();
# [.VMS]TEST.COM calls harness with empty arguments, so clean-up @ARGV
@ARGV = grep $_ && length( $_ ) => @ARGV;
+sub _populate_hash {
+ return map {$_, 1} split /\s+/, $_[0];
+}
+
if (@ARGV) {
if ($^O eq 'MSWin32') {
@tests = map(glob($_),@ARGV);
@@ -69,13 +73,28 @@ if (@ARGV) {
push @tests, <lib/*.t>;
push @tests, <japh/*.t> if $torture;
push @tests, <win32/*.t> if $^O eq 'MSWin32';
+ use Config;
+ my %skip;
+ {
+ my %extensions = _populate_hash $Config{'extensions'};
+ my %known_extensions = _populate_hash $Config{'known_extensions'};
+ foreach (keys %known_extensions) {
+ $skip{$_}++ unless $extensions{$_};
+ }
+ }
use File::Spec;
my $updir = File::Spec->updir;
my $mani = File::Spec->catfile(File::Spec->updir, "MANIFEST");
if (open(MANI, $mani)) {
while (<MANI>) { # similar code in t/TEST
- if (m!^(ext/\S+/?(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\s!) {
- push @tests, File::Spec->catfile($updir, $1);
+ if (m!^(ext/(\S+)/+(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\s!) {
+ my ($test, $extension) = ($1, $2);
+ if (defined $extension) {
+ $extension =~ s!/t$!!;
+ # XXX Do I want to warn that I'm skipping these?
+ next if $skip{$extension};
+ }
+ push @tests, File::Spec->catfile($updir, $test);
}
}
close MANI;