summaryrefslogtreecommitdiff
path: root/lib/Memoize/t
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-09-12 17:41:49 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-09-12 17:41:49 +0000
commit3d4a255cbdf51bdaf16ab1a302f453e90e07602f (patch)
tree8f64863dea01c07d7cd32d64f54b6bd51ece572f /lib/Memoize/t
parent9bf12eaf439552772b53d65e2dd335097dac1a84 (diff)
downloadperl-3d4a255cbdf51bdaf16ab1a302f453e90e07602f.tar.gz
Upgrade to Memoize 0.66.
p4raw-id: //depot/perl@12006
Diffstat (limited to 'lib/Memoize/t')
-rw-r--r--lib/Memoize/t/expire_module_t.t32
-rwxr-xr-xlib/Memoize/t/speed.t14
2 files changed, 33 insertions, 13 deletions
diff --git a/lib/Memoize/t/expire_module_t.t b/lib/Memoize/t/expire_module_t.t
index 7032f65212..3cc3de13f8 100644
--- a/lib/Memoize/t/expire_module_t.t
+++ b/lib/Memoize/t/expire_module_t.t
@@ -2,7 +2,15 @@
use lib '..';
use Memoize;
-use Time::HiRes 'time';
+BEGIN {
+ eval {require Time::HiRes};
+ if ($@ || $ENV{SLOW}) {
+# $SLOW_TESTS = 1;
+ } else {
+ 'Time::HiRes'->import('time');
+ }
+}
+
my $DEBUG = 0;
my $n = 0;
@@ -48,7 +56,7 @@ sub now {
time;
}
-tie my %cache => 'Memoize::Expire', LIFETIME => 8;
+tie my %cache => 'Memoize::Expire', LIFETIME => 10;
memoize 'now',
SCALAR_CACHE => [HASH => \%cache ],
LIST_CACHE => 'FAULT'
@@ -64,42 +72,42 @@ for (1,2,3) {
++$n;
print "not " unless close_enough($when{$_}, time());
print "ok $n\n";
- sleep 3 if $_ < 3;
+ sleep 4 if $_ < 3;
$DEBUG and print "# ", time()-$t0, "\n";
}
-# values will now expire at T=8, 11, 14
-# it is now T=6
+# values will now expire at T=10, 14, 18
+# it is now T=8
-# T+6
+# T+8
for (1,2,3) {
$again{$_} = now($_); # Should be the same as before, because of memoization
}
-# T+6
+# T+8
foreach (1,2,3) {
++$n;
print "not " unless close_enough($when{$_}, $again{$_});
print "ok $n\n";
}
-wait_until(9.5); # now(1) expires
+wait_until(12); # now(1) expires
print "not " unless close_enough(time, $again{1} = now(1));
++$n; print "ok $n\n";
-# T+9.5
+# T+12
foreach (2,3) { # Should not have expired yet.
++$n;
print "not " unless close_enough(scalar(now($_)), $again{$_});
print "ok $n\n";
}
-wait_until(12.5); # now(2) expires
+wait_until(16); # now(2) expires
-# T+12.5
+# T+16
print "not " unless close_enough(time, $again{2} = now(2));
++$n; print "ok $n\n";
-# T+12.5
+# T+16
foreach (1,3) { # 1 is good again because it was recomputed after it expired
++$n;
print "not " unless close_enough(scalar(now($_)), $again{$_});
diff --git a/lib/Memoize/t/speed.t b/lib/Memoize/t/speed.t
index ef30a8138d..6d21906573 100755
--- a/lib/Memoize/t/speed.t
+++ b/lib/Memoize/t/speed.t
@@ -12,15 +12,27 @@ $| = 1;
# If we don't say anything, maybe nobody will notice.
# print STDERR "\nWarning: I'm testing the speedup. This might take up to thirty seconds.\n ";
+my $COARSE_TIME = 1;
+
+sub times_to_time { my ($u) = times; $u; }
+if ($^O eq 'riscos') {
+ eval {require Time::HiRes; *my_time = \&Time::HiRes::time };
+ if ($@) { *my_time = sub { time }; $COARSE_TIME = 1 }
+} else {
+ *my_time = \&times_to_time;
+}
+
print "1..6\n";
+
+
# This next test finds an example that takes a long time to run, then
# checks to make sure that the run is actually speeded up by memoization.
# In some sense, this is the most essential correctness test in the package.
#
# We do this by running the fib() function with successfily larger
-# arguments until we find one that tales at leasrtt $LONG_RUN seconds
+# arguments until we find one that tales at least $LONG_RUN seconds
# to execute. Then we memoize fib() and run the same call cagain. If
# it doesn't produce the same test in less than one-tenth the time,
# something is seriously wrong.