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