#!/usr/bin/perl -w #for when we are invoked from "make test" use lib "t"; use strict; use TEST; sub mktemp { my $base = "$Cache::Static::ROOT/Cache-Static-testfile-"; return $base.(int rand 99999); } sub touch { my $file = shift; open(FH, ">$file") || die "can't write to $Cache::Static::ROOT, please set to a writable directory in t/TEST.pm"; close(FH); } print "1..9\n"; my $key = Cache::Static::make_key("filedep test key"); ok ( "make key", '1/Y/M/Y2e7N_A9NRKqmbbv1vA' eq $key ); my $tmpfile = mktemp(); ok ( "get if same:file not found", !Cache::Static::get_if_same($key, [ "file|$tmpfile" ] ) ); touch($tmpfile); ok ( "get if same:file found, but no cache yet", !Cache::Static::get_if_same($key, [ "file|$tmpfile" ] ) ); eval { Cache::Static::set($key, "value", [ "file|$tmpfile" ] ); }; ok ( "set1", !$@); ok ( "get if same after set", Cache::Static::get_if_same($key, [ "file|$tmpfile" ] ) ); sleep(1); touch($tmpfile); ok ( "get if same after set and dep touch", !Cache::Static::get_if_same($key, [ "file|$tmpfile" ] ) ); eval { Cache::Static::set($key, "value", [ "file|$tmpfile" ] ); }; ok ( "set2", !$@); ok ( "get if same after set, dep touch, and re-set", Cache::Static::get_if_same($key, [ "file|$tmpfile" ] ) ); unlink($tmpfile); ok ( "get if same after unlink", !Cache::Static::get_if_same($key, [ "file|$tmpfile" ] ) ); exit 0;