#!./perl -Tw
# Testing Cwd under taint mode.
use strict;
use Cwd;
chdir 't' unless $ENV{PERL_CORE};
use File::Spec;
use lib File::Spec->catdir('t', 'lib');
use Test::More;
BEGIN {
plan(
${^TAINT}
? (tests => 17)
: (skip_all => "A perl without taint support")
);
}
use Scalar::Util qw/tainted/;
my @Functions = qw(getcwd cwd fastcwd fastgetcwd
abs_path fast_abs_path
realpath fast_realpath
);
foreach my $func (@Functions) {
no strict 'refs';
my $cwd;
eval { $cwd = &{'Cwd::'.$func} };
is( $@, '', "$func() should not explode under taint mode" );
ok( tainted($cwd), "its return value should be tainted" );
}
# Previous versions of Cwd tainted $^O
is !tainted($^O), 1, "\$^O should not be tainted";