diff options
Diffstat (limited to 'dist/Storable/t/testlib.pl')
-rw-r--r-- | dist/Storable/t/testlib.pl | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dist/Storable/t/testlib.pl b/dist/Storable/t/testlib.pl new file mode 100644 index 0000000000..6d885d7f68 --- /dev/null +++ b/dist/Storable/t/testlib.pl @@ -0,0 +1,38 @@ +#!perl -w +use strict; +use vars '$file'; + +$file = "storable-testfile.$$"; +die "Temporary file '$file' already exists" if -e $file; + +END { while (-f $file) {unlink $file or die "Can't unlink '$file': $!" }} + +use Storable qw (store retrieve freeze thaw nstore nfreeze); + +sub slurp { + my $file = shift; + local (*FH, $/); + open FH, "<$file" or die "Can't open '$file': $!"; + binmode FH; + my $contents = <FH>; + die "Can't read $file: $!" unless defined $contents; + return $contents; +} + +sub store_and_retrieve { + my $data = shift; + unlink $file or die "Can't unlink '$file': $!"; + open FH, ">$file" or die "Can't open '$file': $!"; + binmode FH; + print FH $data or die "Can't print to '$file': $!"; + close FH or die "Can't close '$file': $!"; + + return eval {retrieve $file}; +} + +sub freeze_and_thaw { + my $data = shift; + return eval {thaw $data}; +} + +$file; |