summaryrefslogtreecommitdiff
path: root/t/harness
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2009-08-26 20:43:11 +0100
committerNicholas Clark <nick@ccl4.org>2009-08-26 20:43:11 +0100
commita3323f52209391b4b2c45b3e1feb26c6f51fb6fa (patch)
treec1c1f1e62c31ade2433009dfc84df0ea6de8c1e7 /t/harness
parentb6c76eb092676935ff9ecf94c2c277e48998e560 (diff)
downloadperl-a3323f52209391b4b2c45b3e1feb26c6f51fb6fa.tar.gz
Break out the code that finds tests in MANIFEST into _tests_from_manifest().
Diffstat (limited to 't/harness')
-rw-r--r--t/harness72
1 files changed, 38 insertions, 34 deletions
diff --git a/t/harness b/t/harness
index afd4b6fc3b..ee47fff619 100644
--- a/t/harness
+++ b/t/harness
@@ -103,6 +103,42 @@ if ($ENV{HARNESS_OPTIONS}) {
}
}
+sub _tests_from_manifest {
+ my ($extensions, $known_extensions) = @_;
+ my %skip;
+ my %extensions = _populate_hash($extensions);
+ my %known_extensions = _populate_hash($known_extensions);
+
+ foreach (keys %known_extensions) {
+ $skip{$_}++ unless $extensions{$_};
+ }
+
+ my @results;
+ 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!) {
+ 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};
+ my $flat_extension = $extension;
+ $flat_extension =~ s!-!/!g;
+ next if $skip{$flat_extension}; # Foo/Bar may live in Foo-Bar
+ }
+ push @results, File::Spec->catfile($updir, $test);
+ }
+ }
+ close MANI;
+ } else {
+ warn "$0: cannot open $mani: $!\n";
+ }
+ return @results;
+}
+
if (@ARGV) {
# If you want these run in speed order, just use prove
if ($^O eq 'MSWin32') {
@@ -160,40 +196,8 @@ if (@ARGV) {
my @last;
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)) {
- my @manitests = ();
- while (<MANI>) { # similar code in t/TEST
- 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};
- my $flat_extension = $extension;
- $flat_extension =~ s!-!/!g;
- next if $skip{$flat_extension}; # Foo/Bar may live in Foo-Bar
- }
- push @manitests, File::Spec->catfile($updir, $test);
- }
- }
- close MANI;
- # Sort the list of test files read from MANIFEST into a sensible
- # order instead of using the order in which they are listed there
- push @last, sort { lc $a cmp lc $b } @manitests;
- } else {
- warn "$0: cannot open $mani: $!\n";
- }
+ push @last, sort { lc $a cmp lc $b }
+ _tests_from_manifest($Config{extensions}, $Config{known_extensions});
push @last, <pod/*.t>;
push @last, <x2p/*.t>;