use strict; use warnings; use Test::More qw(no_plan); use Test::NoWarnings; use Test::Deep::Cache; { local $Test::Deep::Expects = 0; my $cache = Test::Deep::Cache->new; my $a = \"a"; my $b = \"b"; my $c = []; ok(! $cache->cmp($a, $b), "empty cache"); $cache->add($a, $b); ok($cache->cmp($a, $b), "added"); ok($cache->cmp($b, $a), "reverse"); $cache->local; ok($cache->cmp($a, $b), "after local"); $cache->add($b, $c); ok($cache->cmp($b, $c), "local added"); $cache->finish(0); ok(! $cache->cmp($b, $c), "gone"); $cache->local; $cache->add($b, $c); ok($cache->cmp($b, $c), "local added again"); $cache->finish(1); ok($cache->cmp($b, $c), "still there"); }