Commit | Line | Data |
a0cb3900 |
1 | #!/usr/bin/perl |
2 | |
5317c87c |
3 | BEGIN { |
4 | chdir 't' if -d 't'; |
5 | @INC = '../lib'; |
6 | } |
a0cb3900 |
7 | use Memoize; |
8 | use Memoize::ExpireTest; |
9 | |
10 | my $n = 0; |
11 | |
12 | print "1..17\n"; |
13 | |
14 | $n++; print "ok $n\n"; |
15 | |
16 | my %CALLS; |
17 | sub id { |
18 | my($arg) = @_; |
19 | ++$CALLS{$arg}; |
20 | $arg; |
21 | } |
22 | |
899dc88a |
23 | tie my %cache => 'Memoize::ExpireTest'; |
24 | memoize 'id', |
25 | SCALAR_CACHE => [HASH => \%cache], |
a0cb3900 |
26 | LIST_CACHE => 'FAULT'; |
27 | $n++; print "ok $n\n"; |
28 | |
29 | for $i (1, 2, 3, 1, 2, 1) { |
30 | $n++; |
31 | unless ($i == id($i)) { |
32 | print "not "; |
33 | } |
34 | print "ok $n\n"; |
35 | } |
36 | |
37 | for $i (1, 2, 3) { |
38 | $n++; |
39 | unless ($CALLS{$i} == 1) { |
40 | print "not "; |
41 | } |
42 | print "ok $n\n"; |
43 | } |
44 | |
45 | Memoize::ExpireTest::expire(1); |
46 | |
47 | for $i (1, 2, 3) { |
48 | my $v = id($i); |
49 | } |
50 | |
51 | for $i (1, 2, 3) { |
52 | $n++; |
53 | unless ($CALLS{$i} == 1 + ($i == 1)) { |
54 | print "not "; |
55 | } |
56 | print "ok $n\n"; |
57 | } |
58 | |
59 | Memoize::ExpireTest::expire(1); |
60 | Memoize::ExpireTest::expire(2); |
61 | |
62 | for $i (1, 2, 3) { |
63 | my $v = id($i); |
64 | } |
65 | |
66 | for $i (1, 2, 3) { |
67 | $n++; |
68 | unless ($CALLS{$i} == 4 - $i) { |
69 | print "not "; |
70 | } |
71 | print "ok $n\n"; |
72 | } |
73 | |
74 | exit 0; |
75 | |