mirror of
https://github.com/Perl/perl5.git
synced 2026-01-26 08:38:23 +00:00
41 lines
946 B
Perl
41 lines
946 B
Perl
#!./perl -T
|
|
|
|
BEGIN {
|
|
chdir 't' if -d 't';
|
|
require './test.pl';
|
|
set_up_inc('../lib');
|
|
}
|
|
|
|
use v5.36;
|
|
no warnings 'experimental::builtin';
|
|
|
|
package FetchStoreCounter {
|
|
sub TIESCALAR($class, @args) { bless \@args, $class }
|
|
|
|
sub FETCH($self) { $self->[0]->$*++ }
|
|
sub STORE($self, $) { $self->[1]->$*++ }
|
|
}
|
|
|
|
# is_tainted
|
|
{
|
|
use builtin qw( is_tainted );
|
|
|
|
is(is_tainted($0), !!${^TAINT}, "\$0 is tainted (if tainting is supported)");
|
|
ok(!is_tainted($1), "\$1 isn't tainted");
|
|
|
|
# Invokes magic
|
|
tie my $tied, FetchStoreCounter => (\my $fetchcount, \my $storecount);
|
|
|
|
my $_dummy = is_tainted($tied);
|
|
is($fetchcount, 1, 'is_tainted() invokes FETCH magic');
|
|
|
|
$tied = is_tainted($0);
|
|
is($storecount, 1, 'is_tainted() invokes STORE magic');
|
|
|
|
is(prototype(\&builtin::is_tainted), '$', 'is_tainted prototype');
|
|
}
|
|
|
|
# vim: tabstop=4 shiftwidth=4 expandtab autoindent softtabstop=4
|
|
|
|
done_testing();
|