plan skip_all => "Symbol::gensym required for testing magic for globs";
} else {
plan tests => 7;
+ diag "Using Symbol $Symbol::VERSION" if defined $Symbol::VERSION;
}
use Variable::Magic qw/wizard cast dispell/;
-my @c = (0) x 5;
-my @x = (0) x 5;
+my @c = (0) x 12;
+my @x = (0) x 12;
sub check {
- for (0 .. 4) { return 0 unless $c[$_] == $x[$_]; }
- return 1;
+ is join(':', map { (defined) ? $_ : 'u' } @c[0 .. 11]),
+ join(':', map { (defined) ? $_ : 'u' } @x[0 .. 11]),
+ $_[0];
}
my $i = -1;
set => sub { ++$c[1] },
len => sub { ++$c[2] },
clear => sub { ++$c[3] },
- free => sub { ++$c[4] };
-ok(check(), 'glob : create wizard');
+ free => sub { ++$c[4] },
+ copy => sub { ++$c[5] },
+ dup => sub { ++$c[6] },
+ local => sub { ++$c[7] },
+ fetch => sub { ++$c[8] },
+ store => sub { ++$c[9] },
+ 'exists' => sub { ++$c[10] },
+ 'delete' => sub { ++$c[11] };
+check('glob : create wizard');
local *a = gensym();
cast *a, $wiz;
-ok(check(), 'glob : cast');
+check('glob : cast');
local *b = *a;
-ok(check(), 'glob : assign to');
+check('glob : assign to');
*a = gensym();
++$x[1];
-ok(check(), 'glob : assign');
+check('glob : assign');
{
local *b = gensym();
cast *b, $wiz;
}
-ok(check(), 'glob : scope end');
+check('glob : scope end');
undef *a;
-ok(check(), 'glob : undef');
+check('glob : undef');
dispell *a, $wiz;
-ok(check(), 'glob : dispell');
+check('glob : dispell');