}
unless (@ARGV) {
- foreach my $dir (qw(base comp cmd run io op uni)) {
+ foreach my $dir (qw(base comp cmd run io op uni mro)) {
_find_tests($dir);
}
_find_tests("lib") unless $::core;
warn "$0: cannot open $mani: $!\n";
}
unless ($::core) {
+ _find_tests('Module_Pluggable');
_find_tests('pod');
_find_tests('x2p');
_find_tests('japh') if $::torture;
my $redir = $^O eq 'VMS' ? '2>&1' : '';
if ($ENV{PERL_VALGRIND}) {
my $valgrind = $ENV{VALGRIND} // 'valgrind';
- $perl = "$valgrind --suppressions=perl.supp --leak-check=yes "
- . "--leak-resolution=high --show-reachable=yes "
- . "--num-callers=50 --log-fd=3 $perl";
+ my $vg_opts = $ENV{VG_OPTS}
+ // "--suppressions=perl.supp --leak-check=yes "
+ . "--leak-resolution=high --show-reachable=yes "
+ . "--num-callers=50";
+ $perl = "$valgrind --log-fd=3 $vg_opts $perl";
$redir = "3>$valgrind_log";
}
my $run = "$perl" . _quote_args("$testswitch $switch $utf8")
# SKIP is essentially the same as TODO for t/TEST
# this still conforms to TAP:
- # http://search.cpan.org/dist/Test-Harness/lib/Test/Harness/TAP.pod
+ # http://search.cpan.org/dist/TAP/TAP.pod
$extra and $istodo = $extra =~ /#\s*(?:TODO|SKIP)\b/;
$istodo = 1 if $todo{$num};
warn "$0: Failed to open '$valgrind_log': $!\n";
}
}
- if (@valgrind) {
+ if ($ENV{VG_OPTS} =~ /cachegrind/) {
+ if (rename $valgrind_log, "$test.valgrind") {
+ $valgrind++;
+ } else {
+ warn "$0: Failed to create '$test.valgrind': $!\n";
+ }
+ }
+ elsif (@valgrind) {
my $leaks = 0;
my $errors = 0;
for my $i (0..$#valgrind) {
$failure="FAILED--expected $max tests, saw $next";
}
+ if( !defined $failure # don't mask a test failure
+ and $? )
+ {
+ $failure = "FAILED--non-zero wait status: $?";
+ }
+
if (defined $failure) {
print "${te}$failure\n";
$::bad_files++;
$good_files++;
}
else {
- print "${te}skipping test on this platform\n";
+ print "${te}skipped\n";
$tested_files -= 1;
}
}