X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2FTEST;h=122bd96a864700722b4045cefb4ccd2089f7a563;hb=8ff950ac4dd6a40327ca0d02f43bd42adf4f89ec;hp=acefb54a19303d630114969f1a5606827627855b;hpb=37ce32a705db2abf918fb9f1a8653161f4a1806f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/TEST b/t/TEST index acefb54..122bd96 100755 --- a/t/TEST +++ b/t/TEST @@ -20,6 +20,21 @@ chdir 't' if -f 't/TEST'; die "You need to run \"make test\" first to set things up.\n" unless -e 'perl' or -e 'perl.exe'; +if ($ENV{PERL_3LOG}) { + unless (-x 'perl.third') { + unless (-x '../perl.third') { + die "You need to run \"make perl.third first.\n"; + } + else { + print "Symlinking ../perl.third as perl.third...\n"; + die "Failed to symlink: $!\n" + unless symlink("../perl.third", "perl.third"); + die "Symlinked but no executable perl.third: $!\n" + unless -x 'perl.third'; + } + } +} + # check leakage for embedders $ENV{PERL_DESTRUCT_LEVEL} = 2 unless exists $ENV{PERL_DESTRUCT_LEVEL}; @@ -27,13 +42,13 @@ $ENV{EMXSHELL} = 'sh'; # For OS/2 if ($#ARGV == -1) { @ARGV = split(/[ \n]/, - `echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t; echo op/*.t pragma/*.t lib/*.t`); + `echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t; echo op/*.t pragma/*.t lib/*.t pod/*.t camel-III/*.t`); } -%infinite = ( 'comp/require.t', 1, 'op/bop.t', 1, 'lib/hostname.t', 1 ); +# %infinite = ( 'comp/require.t', 1, 'op/bop.t', 1, 'lib/hostname.t', 1 ); _testprogs('perl', @ARGV); -_testprogs('compile', @ARGV) if (-e "../testcompile"); +_testprogs('compile', @ARGV) if (-e "../testcompile"); sub _testprogs { $type = shift @_; @@ -46,7 +61,7 @@ TESTING COMPILER -------------------------------------------------------------------------------- EOT - $ENV{PERLCC_TIMEOUT} = 120 + $ENV{PERLCC_TIMEOUT} = 120 if ($type eq 'compile' && !$ENV{PERLCC_TIMEOUT}); $bad = 0; @@ -65,7 +80,7 @@ EOT while ($test = shift @tests) { if ( $infinite{$test} && $type eq 'compile' ) { - print STDERR "$test creates infinite loop! Skipping.\n"; + print STDERR "$test creates infinite loop! Skipping.\n"; next; } if ($test =~ /^$/) { @@ -91,14 +106,16 @@ EOT my $utf = $with_utf ? '-I../lib -Mutf8' : ''; + my $testswitch = '-I. -MTestInit'; # -T will strict . from @INC if ($type eq 'perl') { - my $run = "./perl$switch $utf $test |"; + my $run = "./perl $testswitch $switch $utf $test |"; open(RESULTS,$run) or print "can't run '$run': $!.\n"; } else { my $compile = - "./perl -I../lib ../utils/perlcc -o ./$test.plc $utf ./$test " - ." && ./$test.plc |"; + "./perl $testswitch -I../lib ../utils/perlcc -o ". + "./$test.plc $utf ./$test ". + " && ./$test.plc |"; open(RESULTS, $compile) or print "can't compile '$compile': $!.\n"; unlink "./$test.plc"; @@ -120,7 +137,7 @@ EOT } else { if (/^(not )?ok (\d+)(\s*#.*)?/ && - $2 == $next) + $2 == $next) { my($not, $num, $extra) = ($1, $2, $3); my($istodo) = $extra =~ /^\s*#\s*TODO/ if $extra; @@ -144,6 +161,12 @@ EOT } } close RESULTS; + if ($ENV{PERL_3LOG}) { + my $tpp = $test; + $tpp =~ s:/:_:g; + $tpp =~ s:\.t$::; + rename("perl.3log", "perl.3log.$tpp"); + } $next = $next - 1; if ($ok && $next == $max) { if ($max) { @@ -187,8 +210,8 @@ EOT ### Since not all tests were successful, you may want to run some ### of them individually and examine any diagnostic messages they ### produce. See the INSTALL document's section on "make test". - ### If you are testing the compiler, then ignore this message - ### and run + ### If you are testing the compiler, then ignore this message + ### and run ### ./perl harness ### in the directory ./t. SHRDLU @@ -196,7 +219,7 @@ SHRDLU ### ### Since most tests were successful, you have a good chance to ### get information with better granularity by running - ### ./perl harness + ### ./perl harness ### in directory ./t. SHRDLU }