http://qs321.pair.com?node_id=764321


in reply to Testing objects that cache

Scaling up the load of your normal tests will show if your code "works" in a pragmatic sense. That is difficult in your case or you have undisclosed motives.

Using Devel::Cover could verify that your caching code is being exercised.

If your cache is implemented with a call tree, i.e.

sub fetch { return _cached_fetch($_[1]) if _cached( $_[1] ); return _via_normal_retrieval( $_[1] ); }
there are packages that will insert code at the entry or exit of a set of routines. This would let you insert a logging function into fetch and _cached_fetch to generate statistics on cache performance. I cannot think of the name for this type of function modification.

The insert code could be something like

sub log_cache { local $, = " "; print SOMEWHERE "MyObj cache called", caller(1), "w/",$_[1],$/; }
cleaned up for log readability.

Be well,
rir