diff options
author | Perl 5 Porters <perl5-porters@africa.nicoh.com> | 1997-02-22 04:41:00 +1200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1997-02-22 04:41:00 +1200 |
commit | aa6893958c2bfb6fa4ab923c8466c188c65748fd (patch) | |
tree | 012b1f5dd2622b8c322606df0fa2de1a7ec582b1 /lib/Test | |
parent | d53f8f1cc3de155a009198bbc7c01e2741aa70ac (diff) | |
download | perl-aa6893958c2bfb6fa4ab923c8466c188c65748fd.tar.gz |
[inseparable changes from patch from perl5.003_27 to perl5.003_28]
CORE LANGUAGE CHANGES
Subject: Don't let C<sub foo;> undefine &foo
From: Chip Salzenberg <chip@perl.com>
Files: op.c
Subject: Make code, doc agree on $ENV{PATH} and `cmd`
From: Chip Salzenberg <chip@perl.com>
Files: pod/perlsec.pod pp_sys.c
Subject: Optimize keys() and values() in void context
From: Chip Salzenberg <chip@perl.com>
Files: doop.c op.c
CORE PORTABILITY
Subject: VMS patches post _27
Date: Thu, 20 Feb 1997 01:58:46 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: MANIFEST dosish.h hv.c lib/ExtUtils/MM_VMS.pm lib/ExtUtils/xsubpp perl.c perlsdio.h pod/perldelta.pod pod/perlvar.pod t/op/closure.t unixish.h vms/Makefile vms/descrip.mms vms/ext/filespec.t vms/genconfig.pl vms/vms.c vms/vmsish.h
private-msgid: <01IFMEMPN1IU0057E2@hmivax.humgen.upenn.edu>
Subject: Re: OS/2 patch for _27
Date: Thu, 20 Feb 1997 19:24:16 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: INSTALL README.os2 lib/Test/Harness.pm os2/Changes os2/OS2/PrfDB/t/os2_prfdb.t os2/os2.c os2/os2ish.h os2/perl2cmd.pl perl.c pod/perldelta.pod t/TEST t/harness t/op/magic.t
Msg-ID: <199702210024.TAA03174@monk.mps.ohio-state.edu>
(applied based on p5p patch as commit 833d3f255ed68b969f062cec63d33f853ed9237c)
DOCUMENTATION
Subject: INSTALL updates since _26
Date: Tue, 18 Feb 1997 16:00:08 -0500 (EST)
From: Andy Dougherty <doughera@fractal.phys.lafayette.edu>
Files: INSTALL
Msg-ID: <Pine.SOL.3.95q.970218155815.2014F-100000@fractal.lafayette.e
(applied based on p5p patch as commit a8247d96fd6167a3b920e63aedee5592cd6e29a7)
Subject: Document "$$0" change
From: Chip Salzenberg <chip@perl.com>
Files: pod/perldelta.pod
Subject: Don't recommend impossible //o for C<$x =~ $y>
From: Chip Salzenberg <chip@perl.com>
Files: pod/perlop.pod
Subject: Correct doc that claimed that <FH> was never false
From: Chip Salzenberg <chip@perl.com>
Files: pod/perldelta.pod pod/perlop.pod
Subject: Document C<$?> vs. $SIG{CHLD}
From: Ulrich Pfeifer <pfeifer@charly.informatik.uni-dortmund.de>
Files: pod/perlvar.pod
Subject: Add pumpkin.pod
From: Chip Salzenberg <chip@perl.com>
Files: MANIFEST Porting/pumpkin.pod
Subject: Don't say "associat*ve arr*y"
From: Chip Salzenberg <chip@perl.com>
Files: MANIFEST gv.h hv.c lib/Env.pm lib/overload.pm opcode.pl pod/perl.pod pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod pod/perlguts.pod pod/perlmod.pod pod/perltie.pod pod/perltoc.pod pod/perltrap.pod x2p/a2p.pod
OTHER CORE CHANGES
Subject: Fix a typo
From: Chip Salzenberg <chip@perl.com>
Files: pp_sys.c
Subject: Fix perl_call_sv(..., G_NOARGS)
From: Chip Salzenberg <chip@perl.com>
Files: perl.c
Subject: Fix SIGSEGV when cloning sub with complex expression
From: Chip Salzenberg <chip@perl.com>
Files: op.c
Diffstat (limited to 'lib/Test')
-rw-r--r-- | lib/Test/Harness.pm | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/lib/Test/Harness.pm b/lib/Test/Harness.pm index ba0683a02e..1bc791be3e 100644 --- a/lib/Test/Harness.pm +++ b/lib/Test/Harness.pm @@ -11,7 +11,7 @@ use vars qw($VERSION $verbose $switches $have_devel_corestack $curtest @ISA @EXPORT @EXPORT_OK); $have_devel_corestack = 0; -$VERSION = "1.15"; +$VERSION = "1.1501"; @ISA=('Exporter'); @EXPORT= qw(&runtests); @@ -60,9 +60,14 @@ sub runtests { chop($te); print "$te" . '.' x (20 - length($te)); my $fh = new FileHandle; - my $cmd = "$^X $switches $test|"; + $fh->open($test) or print "can't open $test. $!\n"; + my $first = <$fh>; + my $s = $switches; + $s .= " -T" if $first =~ /^#!.*\bperl.*-\w*T/; + $fh->close or print "can't close $test. $!\n"; + my $cmd = "$^X $s $test|"; $cmd = "MCR $cmd" if $^O eq 'VMS'; - $fh->open($cmd) or print "can't run. $!\n"; + $fh->open($cmd) or print "can't run $test. $!\n"; $ok = $next = $max = 0; @failed = (); while (<$fh>) { @@ -100,6 +105,7 @@ sub runtests { my $wstatus = $?; my $estatus = $^O eq 'VMS' ? $wstatus : $wstatus >> 8; if ($^O eq 'VMS' ? !($wstatus & 1) : $wstatus) { + my ($failed, $canon, $percent) = ('??', '??'); print "dubious\n\tTest returned status $estatus (wstat $wstatus)\n"; if (corestatus($wstatus)) { # until we have a wait module if ($have_devel_corestack) { @@ -109,9 +115,22 @@ sub runtests { } } $bad++; - $failedtests{$test} = { canon => '??', max => $max || '??', - failed => '??', - name => $test, percent => undef, + if ($max) { + if ($next == $max + 1 and not @failed) { + print "\tafter all the subtests completed successfully\n"; + $percent = 0; + $failed = 0; # But we do not set $canon! + } else { + push @failed, $next..$max; + $failed = @failed; + (my $txt, $canon) = canonfailed($max,@failed); + $percent = 100*(scalar @failed)/$max; + print "DIED. ",$txt; + } + } + $failedtests{$test} = { canon => $canon, max => $max || '??', + failed => $failed, + name => $test, percent => $percent, estat => $estatus, wstat => $wstatus, }; } elsif ($ok == $max && $next == $max+1) { @@ -186,6 +205,7 @@ sub runtests { return ($bad == 0 && $totmax) ; } +my $tried_devel_corestack; sub corestatus { my($st) = @_; my($ret); @@ -199,8 +219,8 @@ sub corestatus { $ret = WCOREDUMP($st); } - eval {require Devel::CoreStack}; - $have_devel_corestack++ unless $@; + eval { require Devel::CoreStack; $have_devel_corestack++ } + unless $tried_devel_corestack++; $ret; } |