Hash-SharedMem
view release on metacpan or search on metacpan
ok $sh;
ok is_shash($sh);
my $magic;
my $fetched;
{
package t::TiedScalar;
sub TIESCALAR { bless({ value => $_[1] }, $_[0]) }
sub FETCH { $fetched++; $_[0]->{value} }
}
sub tm1(&$;$) {
untie $magic;
$magic = $_[2];
tie $magic, "t::TiedScalar", $_[1];
$fetched = 0;
$_[0]->();
is $fetched, 1;
}
foreach my $cval ("a19", [], undef, $sh) {
foreach my $rval ("a20", [], undef) {
ok !is_tainted(undef);
is tainted(undef), undef;
ok is_tainted(tainted(undef));
is tainted(tainted(undef)), undef;
ok is_tainted(tainted(tainted(undef)));
is untainted(undef), undef;
ok !is_tainted(untainted(undef));
is untainted(tainted(undef)), undef;
ok !is_tainted(untainted(tainted(undef)));
sub is_tnt(&$) {
my $v = eval { $_[0]->() };
is $@, "";
ok is_tainted($v);
is $v, $_[1];
}
sub is_unt(&$) {
my $v = eval { $_[0]->() };
is $@, "";
ok !is_tainted($v);
is $v, $_[1];
}
sub is_mbt(&$) {
my $v = eval { $_[0]->() };
is $@, "";
is $v, $_[1];
}
BEGIN { $ENV{$_} = untainted($ENV{$_}) foreach keys %ENV; }
BEGIN { use_ok "Hash::SharedMem", qw(
shash_referential_handle
is_shash check_shash
( run in 0.807 second using v1.01-cache-2.11-cpan-49f99fa48dc )