X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F33-code.t;h=40c32a4b00fff8e0cd40bf1ac1afbdbb884f64e4;hb=refs%2Ftags%2Fv0.14;hp=538beb2380d05747578b5196ceea75b638f6bf2a;hpb=77a84f75f33e3ee44e61182dec76699e23025375;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/33-code.t b/t/33-code.t index 538beb2..40c32a4 100644 --- a/t/33-code.t +++ b/t/33-code.t @@ -1,15 +1,19 @@ #!perl -T +use strict; +use warnings; + use Test::More tests => 10; 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; @@ -17,44 +21,51 @@ my $wiz = wizard get => sub { ++$c[0] }, set => sub { ++$c[1] }, len => sub { ++$c[2] }, clear => sub { ++$c[3] }, - free => sub { ++$c[4] }; -ok(check(), 'code : 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('code : create wizard'); my $x = 0; my $n = sub { ++$x }; my $a = $n; cast $a, $wiz; -ok(check(), 'code : cast'); +check('code : cast'); my $b = $a; ++$x[0]; -ok(check(), 'code : assign to'); +check('code : assign to'); $b = "X${a}Y"; ++$x[0]; -ok(check(), 'code : interpolate'); +check('code : interpolate'); $b = \$a; -ok(check(), 'code : reference'); +check('code : reference'); $a = $n; ++$x[1]; -ok(check(), 'code : assign'); +check('code : assign'); $a->(); -ok(check(), 'code : call'); +check('code : call'); { my $b = $n; cast $b, $wiz; } ++$x[4]; -ok(check(), 'code : scope end'); +check('code : scope end'); undef $a; ++$x[1]; -ok(check(), 'code : undef'); +check('code : undef'); dispell $a, $wiz; -ok(check(), 'code : dispell'); +check('code : dispell');