X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fharness;h=fafba45c2ae4ec3ece47f523f70e27b7c93274e3;hb=efe6c6a19b7c016fee2f63a93a8d6f569c5793ba;hp=e1a4dd7861b2718ebe1cc205e73e0ca17a31912a;hpb=c529f79d594c53d3968d464c57ac24a21137dd09;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/harness b/t/harness index e1a4dd7..fafba45 100644 --- a/t/harness +++ b/t/harness @@ -5,16 +5,26 @@ BEGIN { chdir 't' if -d 't'; - unshift @INC, '../lib'; + @INC = '../lib'; # pick up only this build's lib $ENV{PERL5LIB} = '../lib'; # so children will see it too } -use lib '../lib'; + +my $torture; # torture testing? use Test::Harness; $Test::Harness::switches = ""; # Too much noise otherwise $Test::Harness::verbose = shift if @ARGV && $ARGV[0] eq '-v'; +if ($ARGV[0] eq '-torture') { + shift; + $torture = 1; +} + +# Let tests know they're running in the perl core. Useful for modules +# which live dual lives on CPAN. +$ENV{PERL_CORE} = 1; + #fudge DATA for now. %datahandle = qw( lib/bigint.t 1 @@ -29,25 +39,61 @@ $Test::Harness::verbose = shift if @ARGV && $ARGV[0] eq '-v'; op/runlevel.t 1 op/tie.t 1 op/lex_assign.t 1 - pragma/subs.t 1 ); foreach (keys %datahandle) { unlink "$_.t"; } -@tests = @ARGV; -@tests = unless @tests; +my @tests = (); +if (@ARGV) { + if ($^O eq 'MSWin32') { + @tests = map(glob($_),@ARGV); + } + else { + @tests = @ARGV; + } +} else { + unless (@tests) { + push @tests, ; + push @tests, ; + push @tests, ; + push @tests, ; + push @tests, ; + push @tests, ; + push @tests, ; + push @tests, ; + push @tests, if $torture; + push @tests, if $^O eq 'MSWin32'; + use File::Spec; + my $updir = File::Spec->updir; + my $mani = File::Spec->catfile(File::Spec->updir, "MANIFEST"); + if (open(MANI, $mani)) { + while () { # similar code in t/TEST + if (m!^(ext/\S+/?([^/]+\.t|test\.pl)|lib/\S+?(\.t|test\.pl))\s!) { + push @tests, File::Spec->catfile($updir, $1); + } + } + close MANI; + } else { + warn "$0: cannot open $mani: $!\n"; + } + push @tests, ; + } +} +if ($^O eq 'MSWin32') { + s,\\,/,g for @tests; +} Test::Harness::runtests @tests; exit(0) unless -e "../testcompile"; -%infinite = qw ( - op/bop.t 1 - lib/hostname.t 1 - op/lex_assign.t 1 - lib/ph.t 1 - ); +# %infinite = qw ( +# op/bop.t 1 +# lib/hostname.t 1 +# op/lex_assign.t 1 +# lib/ph.t 1 +# ); my $dhwrapper = <<'EOT'; open DATA,"<".__FILE__; @@ -72,10 +118,10 @@ EOT print "The tests ", join(' ', keys(%infinite)), " generate infinite loops! Skipping!\n"; -$ENV{'HARNESS_COMPILE_TEST'} = 1; +$ENV{'HARNESS_COMPILE_TEST'} = 1; $ENV{'PERLCC_TIMEOUT'} = 120 unless $ENV{'PERLCC_TIMEOUT'}; -Test::Harness::runtests @tests; +Test::Harness::runtests @tests; foreach (keys %datahandle) { unlink "$_.t"; }