1N/A#!./perl -t
1N/A
1N/ABEGIN {
1N/A chdir 't';
1N/A @INC = '../lib';
1N/A require './test.pl';
1N/A}
1N/A
1N/Aplan tests => 11;
1N/A
1N/Amy $Perl = which_perl();
1N/A
1N/Amy $warning;
1N/Alocal $SIG{__WARN__} = sub { $warning = join "\n", @_; };
1N/Amy $Tmsg = 'while running with -t switch';
1N/A
1N/Ais( ${^TAINT}, -1, '${^TAINT} == -1' );
1N/A
1N/Amy $out = `$Perl -le "print q(Hello)"`;
1N/Ais( $out, "Hello\n", '`` worked' );
1N/Alike( $warning, qr/^Insecure .* $Tmsg/, ' taint warn' );
1N/A
1N/A{
1N/A no warnings 'taint';
1N/A $warning = '';
1N/A my $out = `$Perl -le "print q(Hello)"`;
1N/A is( $out, "Hello\n", '`` worked' );
1N/A is( $warning, '', ' no warnings "taint"' );
1N/A}
1N/A
1N/A# Get ourselves a tainted variable.
1N/A$file = $0;
1N/A$file =~ s/.*/some.tmp/;
1N/Aok( open(FILE, ">$file"), 'open >' ) or DIE $!;
1N/Aprint FILE "Stuff\n";
1N/Aclose FILE;
1N/Alike( $warning, qr/^Insecure dependency in open $Tmsg/, 'open > taint warn' );
1N/Aok( -e $file, ' file written' );
1N/A
1N/Aunlink($file);
1N/Alike( $warning, qr/^Insecure dependency in unlink $Tmsg/,
1N/A 'unlink() taint warn' );
1N/Aok( !-e $file, 'unlink worked' );
1N/A
1N/Aok( !$^W, "-t doesn't enable regular warnings" );