37 lines
622 B
Perl
37 lines
622 B
Perl
#!./perl -T
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Config;
|
|
use Test::More;
|
|
use Scalar::Util qw(tainted);
|
|
|
|
if (exists($Config{taint_support}) && not $Config{taint_support}) {
|
|
plan skip_all => "your perl was built without taint support";
|
|
}
|
|
else {
|
|
plan tests => 5;
|
|
}
|
|
|
|
|
|
ok( !tainted(1), 'constant number');
|
|
|
|
my $var = 2;
|
|
|
|
ok( !tainted($var), 'known variable');
|
|
|
|
ok( tainted($^X), 'interpreter variable');
|
|
|
|
$var = $^X;
|
|
ok( tainted($var), 'copy of interpreter variable');
|
|
|
|
{
|
|
package Tainted;
|
|
sub TIESCALAR { bless {} }
|
|
sub FETCH { $^X }
|
|
}
|
|
|
|
tie my $tiedvar, 'Tainted';
|
|
ok( tainted($tiedvar), 'for magic variables');
|