This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Storable 0.1 compatibility
[perl5.git] / ext / Storable / t / compat01.t
CommitLineData
2fc01f5f
GA
1#!perl -w
2
3BEGIN {
4 if ($ENV{PERL_CORE}){
5 chdir('t') if -d 't';
6 @INC = ('.', '../lib', '../ext/Storable/t');
7 } else {
8 unshift @INC, 't';
9 }
10 require Config; import Config;
11 if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bStorable\b/) {
12 print "1..0 # Skip: Storable was not built\n";
13 exit 0;
14 }
15
16 use Config;
17 if ($Config{byteorder} ne "1234") {
18 print "1..0 # Skip: Test only works for 32 bit little-ending machines\n";
19 exit 0;
20 }
21}
22
23use strict;
24use Storable qw(retrieve);
25
26my $file = "xx-$$.pst";
27my @dumps = (
28 # some sample dumps of the hash { one => 1 }
29 "perl-store\x041234\4\4\4\x94y\22\b\3\1\0\0\0vxz\22\b\1\1\0\0\x001Xk\3\0\0\0oneX", # 0.1
30 "perl-store\0\x041234\4\4\4\x94y\22\b\3\1\0\0\0vxz\22\b\b\x81Xk\3\0\0\0oneX", # 0.4@7
31);
32
33print "1.." . @dumps . "\n";
34
35my $testno;
36for my $dump (@dumps) {
37 $testno++;
38
39 open(FH, ">$file") || die "Can't create $file: $!";
40 binmode(FH);
41 print FH $dump;
42 close(FH) || die "Can't write $file: $!";
43
44 eval {
45 my $data = retrieve($file);
46 if (ref($data) eq "HASH" && $data->{one} eq "1") {
47 print "ok $testno\n";
48 }
49 else {
50 print "not ok $testno\n";
51 }
52 };
53 warn $@ if $@;
54
55 unlink($file);
56}