diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-09-12 17:41:49 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-09-12 17:41:49 +0000 |
commit | 3d4a255cbdf51bdaf16ab1a302f453e90e07602f (patch) | |
tree | 8f64863dea01c07d7cd32d64f54b6bd51ece572f /lib/Memoize/t | |
parent | 9bf12eaf439552772b53d65e2dd335097dac1a84 (diff) | |
download | perl-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.t | 32 | ||||
-rwxr-xr-x | lib/Memoize/t/speed.t | 14 |
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 = \×_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. |