X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2FTEST;h=c2bfb9f5fac27f458d6df986ac01e45cf220a9e5;hb=945c54fd8d2501611a8e97dae49e901ff9478cad;hp=0b674af3e7ca3a50cca70c2dcedaa8dfab94d5cf;hpb=04c8f6e462a3eb253e8719ac5f99fd699185cae9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/TEST b/t/TEST index 0b674af..c2bfb9f 100755 --- a/t/TEST +++ b/t/TEST @@ -1,15 +1,18 @@ #!./perl -# Last change: Fri May 28 03:16:57 BST 1999 - # This is written in a peculiar style, since we're trying to avoid # most of the constructs we'll be testing for. $| = 1; -if ($#ARGV >= 0 && $ARGV[0] eq '-v') { - $verbose = 1; - shift; +# Cheesy version of Getopt::Std. Maybe we should replace it with that. +if ($#ARGV >= 0) { + foreach my $idx (0..$#ARGV) { + next unless $ARGV[$idx] =~ /^-(\w+)$/; + $verbose = 1 if $1 eq 'v'; + $with_utf= 1 if $1 eq 'utf8'; + splice(@ARGV, $idx, 1); + } } chdir 't' if -f 't/TEST'; @@ -24,10 +27,10 @@ $ENV{EMXSHELL} = 'sh'; # For OS/2 if ($#ARGV == -1) { @ARGV = split(/[ \n]/, - `echo base/*.t comp/*.t cmd/*.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`); } -%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"); @@ -86,13 +89,21 @@ EOT $switch = ''; } + my $utf = $with_utf ? '-I../lib -Mutf8' + : ''; + my $testswitch = '-I. -MTestInit'; # -T will strict . from @INC if ($type eq 'perl') { - open(RESULTS,"./perl$switch $test |") or print "can't run.\n"; + my $run = "./perl $testswitch $switch $utf $test |"; + open(RESULTS,$run) or print "can't run '$run': $!.\n"; } else { - open(RESULTS, "./perl -I../lib ../utils/perlcc ./$test " - ."-run -verbose dcf -log ../compilelog |") - or print "can't compile.\n"; + my $compile = + "./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"; } $ok = 0; @@ -110,9 +121,23 @@ EOT $ok = 1; } else { - $next = $1, $ok = 0, last if /^not ok ([0-9]*)/; - if (/^ok (\d+)(\s*#.*)?$/ && $1 == $next) { - $next = $next + 1; + if (/^(not )?ok (\d+)(\s*#.*)?/ && + $2 == $next) + { + my($not, $num, $extra) = ($1, $2, $3); + my($istodo) = $extra =~ /^\s*#\s*TODO/ if $extra; + + if( $not && !$istodo ) { + $ok = 0; + $next = $num; + last; + } + else { + $next = $next + 1; + } + } + elsif (/^Bail out!\s*(.*)/i) { # magic words + die "FAILED--Further testing stopped" . ($1 ? ": $1\n" : ".\n"); } else { $ok = 0;