X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F34-glob.t;h=de5c64cdf16ed408e3be995775656dfbf860f9e8;hb=cf48e6bb084037da1980bde10e21dca795fd84d0;hp=d5d62d81b8d1d02628c3de6c90c3773c8254f514;hpb=a8d75011f6169928695d9fda6cf5e8ebc1cc6e92;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/34-glob.t b/t/34-glob.t index d5d62d8..de5c64c 100644 --- a/t/34-glob.t +++ b/t/34-glob.t @@ -9,56 +9,34 @@ eval "use Symbol qw/gensym/"; if ($@) { plan skip_all => "Symbol::gensym required for testing magic for globs"; } else { - plan tests => 7; + plan tests => 2 * 8 + 1; diag "Using Symbol $Symbol::VERSION" if defined $Symbol::VERSION; } -use Variable::Magic qw/wizard cast dispell/; +use Variable::Magic qw/cast dispell VMG_COMPAT_GLOB_GET/; -my @c = (0) x 12; -my @x = (0) x 12; +my %get = VMG_COMPAT_GLOB_GET ? (get => 1) : (); -sub check { - is join(':', map { (defined) ? $_ : 'u' } @c[0 .. 11]), - join(':', map { (defined) ? $_ : 'u' } @x[0 .. 11]), - $_[0]; -} +use lib 't/lib'; +use Variable::Magic::TestWatcher; -my $i = -1; -my $wiz = wizard get => sub { ++$c[0] }, - set => sub { ++$c[1] }, - len => sub { ++$c[2] }, - clear => sub { ++$c[3] }, - 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'); +my $wiz = init_watcher + [ qw/get set len clear free copy dup local fetch store exists delete/ ], + 'glob'; local *a = gensym(); -cast *a, $wiz; -check('glob : cast'); +watch { cast *a, $wiz } +{ }, 'cast'; -local *b = *a; -check('glob : assign to'); +watch { local *b = *a } +{ %get }, 'assign to'; -*a = gensym(); -++$x[1]; -check('glob : assign'); +watch { *a = gensym() } +{ %get, set => 1 }, 'assign'; -{ +watch { local *b = gensym(); - cast *b, $wiz; -} -check('glob : scope end'); + watch { cast *b, $wiz } +{ }, 'cast 2'; +} +{ }, 'scope end'; -undef *a; -check('glob : undef'); +watch { undef *a } +{ %get }, 'undef'; -dispell *a, $wiz; -check('glob : dispell'); +watch { dispell *a, $wiz } +{ %get }, 'dispell';