]> git.vpit.fr Git - perl/modules/Variable-Temp.git/blob - t/13-magic.t
This is 0.04
[perl/modules/Variable-Temp.git] / t / 13-magic.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Variable::Temp 'set_temp';
7
8 use Test::More;
9
10 use lib 't/lib';
11 use VPIT::TestHelpers;
12
13 load_or_skip_all('Variable::Magic', '0.55', undef);
14
15 plan tests => 14;
16
17 my $replaced = 0;
18 my $freed    = 0;
19
20 my $wiz = Variable::Magic::wizard(
21  set  => sub { ++$replaced; () },
22  free => sub { ++$freed;    () },
23 );
24
25 {
26  my $y = 1;
27  &Variable::Magic::cast(\$y, $wiz);
28  is $y,        1;
29  is $replaced, 0;
30  is $freed,    0;
31
32  {
33   set_temp $y => 2;
34   is $y,        2;
35   is $replaced, 1;
36   is $freed,    0;
37
38   $y = 3;
39   is $y,        3;
40   is $replaced, 2;
41   is $freed,    0;
42  }
43
44  is $y,        1;
45  is $replaced, 3;
46  is $freed,    0;
47 }
48
49 is $replaced, 3;
50 is $freed,    1;