Re: [PATCH 5.6.1] OS2 Configure
[p5sagit/p5-mst-13.2.git] / lib / Memoize / t / expire.t
CommitLineData
a0cb3900 1#!/usr/bin/perl
2
3use lib '..';
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
20memoize 'id', SCALAR_CACHE => ['TIE', 'Memoize::ExpireTest'],
21 LIST_CACHE => 'FAULT';
22$n++; print "ok $n\n";
23
24for $i (1, 2, 3, 1, 2, 1) {
25 $n++;
26 unless ($i == id($i)) {
27 print "not ";
28 }
29 print "ok $n\n";
30}
31
32for $i (1, 2, 3) {
33 $n++;
34 unless ($CALLS{$i} == 1) {
35 print "not ";
36 }
37 print "ok $n\n";
38}
39
40Memoize::ExpireTest::expire(1);
41
42for $i (1, 2, 3) {
43 my $v = id($i);
44}
45
46for $i (1, 2, 3) {
47 $n++;
48 unless ($CALLS{$i} == 1 + ($i == 1)) {
49 print "not ";
50 }
51 print "ok $n\n";
52}
53
54Memoize::ExpireTest::expire(1);
55Memoize::ExpireTest::expire(2);
56
57for $i (1, 2, 3) {
58 my $v = id($i);
59}
60
61for $i (1, 2, 3) {
62 $n++;
63 unless ($CALLS{$i} == 4 - $i) {
64 print "not ";
65 }
66 print "ok $n\n";
67}
68
69exit 0;
70