Re: [PATCH 5.6.1] OS2 Configure
[p5sagit/p5-mst-13.2.git] / lib / Memoize / t / expire_file.t
CommitLineData
a0cb3900 1#!/usr/bin/perl
2
3use lib '..';
4use Memoize;
5
6my $n = 0;
7
8
9if (-e '.fast') {
10 print "1..0\n";
11 exit 0;
12}
13
14print "1..11\n";
15
16++$n; print "ok $n\n";
17
18my $READFILE_CALLS = 0;
19my $FILE = './TESTFILE';
20
21sub writefile {
22 my $FILE = shift;
23 open F, "> $FILE" or die "Couldn't write temporary file $FILE: $!";
24 print F scalar(localtime), "\n";
25 close F;
26}
27
28sub readfile {
29 $READFILE_CALLS++;
30 my $FILE = shift;
31 open F, "< $FILE" or die "Couldn't write temporary file $FILE: $!";
32 my $data = <F>;
33 close F;
34 $data;
35}
36
37memoize 'readfile',
38 SCALAR_CACHE => ['TIE', 'Memoize::ExpireFile', ],
39 LIST_CACHE => 'FAULT'
40 ;
41
42++$n; print "ok $n\n";
43
44writefile($FILE);
45++$n; print "ok $n\n";
46sleep 1;
47
48my $t1 = readfile($FILE);
49++$n; print "ok $n\n";
50++$n; print ((($READFILE_CALLS == 1) ? '' : 'not '), "ok $n\n");
51
52my $t2 = readfile($FILE);
53++$n; print "ok $n\n";
54++$n; print ((($READFILE_CALLS == 1) ? '' : 'not '), "ok $n\n");
55++$n; print ((($t1 eq $t2) ? '' : 'not '), "ok $n\n");
56
57sleep 2;
58writefile($FILE);
59my $t3 = readfile($FILE);
60++$n; print "ok $n\n";
61++$n; print ((($READFILE_CALLS == 2) ? '' : 'not '), "ok $n\n");
62++$n; print ((($t1 ne $t3) ? '' : 'not '), "ok $n\n");
63
64END { 1 while unlink 'TESTFILE' }