}
} else {
my %plan = @_;
- $n = $plan{tests};
+ $n = $plan{tests};
}
print STDOUT "1..$n\n" unless $noplan;
$planned = $n;
}
}
-# Use this instead of "print STDERR" when outputing failure diagnostic
+# Use this instead of "print STDERR" when outputing failure diagnostic
# messages
sub _diag {
return unless @_;
- my @mess = map { /^#/ ? "$_\n" : "# $_\n" }
+ my @mess = map { /^#/ ? "$_\n" : "# $_\n" }
map { split /\n/ } @_;
my $fh = $TODO ? *STDOUT : *STDERR;
print $fh @mess;
my ($ra, $rb) = @_;
return 0 unless $#$ra == $#$rb;
for my $i (0..$#$ra) {
- next if !defined $ra->[$i] && !defined $rb->[$i];
+ next if !defined $ra->[$i] && !defined $rb->[$i];
return 0 if !defined $ra->[$i];
return 0 if !defined $rb->[$i];
return 0 unless $ra->[$i] eq $rb->[$i];
$fail = 1;
}
} else {
- print STDOUT "# key ", _qq($key), " is ", _qq($value),
+ print STDOUT "# key ", _qq($key), " is ", _qq($value),
", not in original.\n";
$fail = 1;
}
my $runperl = &_create_runperl;
my $result;
- if (${^TAINT}) {
+ my $tainted = ${^TAINT};
+ my %args = @_;
+ exists $args{switches} && grep m/^-T$/, @{$args{switches}} and $tainted++;
+
+ if ($tainted) {
# We will assume that if you're running under -T, you really mean to
# run a fresh perl, so we'll brute force launder everything for you
my $sep;
local @ENV{@keys} = ();
# Untaint, plus take out . and empty string:
$ENV{PATH} =~ /(.*)/s;
- local $ENV{PATH}
- = join $sep, grep {$_ ne "" and $_ ne "."}
- split quotemeta ($sep), $1;
+ local $ENV{PATH} =
+ join $sep, grep { $_ ne "" and $_ ne "." and
+ ($is_mswin or !((stat$_)[2]&0020)) }
+ split quotemeta ($sep), $1;
$runperl =~ /(.*)/s;
$runperl = $1;
sub which_perl {
unless (defined $Perl) {
$Perl = $^X;
-
+
# VMS should have 'perl' aliased properly
return $Perl if $^O eq 'VMS';
$exe = $Config{_exe};
}
$exe = '' unless defined $exe;
-
+
# This doesn't absolutize the path: beware of future chdirs().
# We could do File::Spec->abs2rel() but that does getcwd()s,
# which is a bit heavyweight to do here.
-
+
if ($Perl =~ /^perl\Q$exe\E$/i) {
my $perl = "perl$exe";
eval "require File::Spec";
}
warn "which_perl: cannot find $Perl from $^X" unless -f $Perl;
-
+
# For subcommands to use.
$ENV{PERLEXE} = $Perl;
}
if( $^O eq 'VMS' ) {
$prog =~ s#/dev/null#NL:#;
- # VMS file locking
+ # VMS file locking
$prog =~ s{if \(-e _ and -f _ and -r _\)}
{if (-e _ and -f _)}
}
}
my $name;
- $name = @methods == 1 ? "$class->can('$methods[0]')"
+ $name = @methods == 1 ? "$class->can('$methods[0]')"
: "$class->can(...)";
-
+
_ok( !@nok, _where(), $name );
}