Cross Reference: expfile.t
xref
: /
osnet-11
/
usr
/
src
/
cmd
/
perl
/
5.8.4
/
distrib
/
lib
/
Memoize
/
t
/
expfile.t
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
1
N/A
#!/
usr
/
bin
/
perl
1
N/A
1
N/A
use
lib
'..'
;
1
N/A
use
Memoize
;
1
N/A
1
N/A
my
$n =
0
;
1
N/A
$|=
1
;
1
N/A
1
N/A
1
N/A
if
(-e
'.fast'
)
{
1
N/A
print
"1..0\n"
;
1
N/A
exit
0
;
1
N/A
}
1
N/A
1
N/A
print
"1..12\n"
;
1
N/A
# (1)
1
N/A
++$n;
print
"ok $n\n"
;
1
N/A
1
N/A
my
$READFILE_CALLS
=
0
;
1
N/A
my
$FILE
=
'./TESTFILE'
;
1
N/A
1
N/A
sub
writefile
{
1
N/A
my
$FILE
=
shift
;
1
N/A
open
F,
">
$FILE
"
or
die
"Couldn't write temporary file
$FILE
: $!"
;
1
N/A
print
F
scalar
(
localtime
)
,
"\n"
;
1
N/A
close
F;
1
N/A
}
1
N/A
1
N/A
sub
readfile
{
1
N/A
$READFILE_CALLS
++;
1
N/A
my
$FILE
=
shift
;
1
N/A
open
F,
"<
$FILE
"
or
die
"Couldn't write temporary file
$FILE
: $!"
;
1
N/A
my
$data
= <F>;
1
N/A
close
F;
1
N/A
$data
;
1
N/A
}
1
N/A
1
N/A
require
Memoize
::
ExpireFile
;
1
N/A
# (2)
1
N/A
++$n;
print
"ok $n\n"
;
1
N/A
1
N/A
tie
my
%
cache
=>
'Memoize::ExpireFile'
;
1
N/A
memoize
'readfile'
,
1
N/A
SCALAR_CACHE
=> [
HASH
=> \%
cache
],
1
N/A
LIST_CACHE
=>
'FAULT'
1
N/A
;
1
N/A
1
N/A
# (3)
1
N/A
++$n;
print
"ok $n\n"
;
1
N/A
1
N/A
# (4)
1
N/A
writefile
(
$FILE
)
;
1
N/A
++$n;
print
"ok $n\n"
;
1
N/A
sleep
4
;
1
N/A
1
N/A
# (5-6)
1
N/A
my
$t1
=
readfile
(
$FILE
)
;
1
N/A
++$n;
print
"ok $n\n"
;
1
N/A
++$n;
print
(
(
(
$READFILE_CALLS
==
1
)
?
''
:
'not '
)
,
"ok $n\n"
)
;
1
N/A
1
N/A
# (7-9)
1
N/A
my
$t2
=
readfile
(
$FILE
)
;
1
N/A
++$n;
print
"ok $n\n"
;
1
N/A
++$n;
print
(
(
(
$READFILE_CALLS
==
1
)
?
''
:
'not '
)
,
"ok $n\n"
)
;
1
N/A
++$n;
print
(
(
(
$t1
eq
$t2
)
?
''
:
'not '
)
,
"ok $n\n"
)
;
1
N/A
1
N/A
# (10-12)
1
N/A
sleep
4
;
1
N/A
writefile
(
$FILE
)
;
1
N/A
my
$t3
=
readfile
(
$FILE
)
;
1
N/A
++$n;
print
"ok $n\n"
;
1
N/A
++$n;
print
(
(
(
$READFILE_CALLS
==
2
)
?
''
:
'not '
)
,
"ok $n\n"
)
;
1
N/A
++$n;
print
(
(
(
$t1
ne
$t3
)
?
''
:
'not '
)
,
"ok $n\n"
)
;
1
N/A
1
N/A
END
{
1
while
unlink
$FILE
}