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