4 @INC = ("../lib", "lib/compress");
8 use lib qw(t t/compress);
17 plan(skip_all => "oneshot needs Perl 5.005 or better - you have Perl $]" )
21 # use Test::NoWarnings, if available
24 if eval { require Test::NoWarnings ; import Test::NoWarnings; 1 };
26 plan tests => 70 + $extra ;
28 use_ok('IO::Compress::Gzip', qw($GzipError)) ;
29 use_ok('IO::Uncompress::Gunzip', qw($GunzipError)) ;
44 ok IO::Compress::Gzip::gzip($in, \$out, %opts), " gzip ok" ;
45 ok IO::Uncompress::Gunzip::gunzip(\$out, \$got), " gunzip ok"
46 or diag $GunzipError ;
47 is $got, $content, " got expected content" ;
49 my $gunz = new IO::Uncompress::Gunzip \$out, Strict => 0
50 or diag "GunzipError is $IO::Uncompress::Gunzip::GunzipError" ;
51 ok $gunz, " Created IO::Uncompress::Gunzip object";
52 my $hdr = $gunz->getHeaderInfo();
53 ok $hdr, " got Header info";
55 ok $gunz->read($uncomp), " read ok" ;
56 is $uncomp, $content, " got expected content";
57 ok $gunz->close, " closed ok" ;
64 title "Check gzip header default NAME & MTIME settings" ;
66 my $lex = new LexFile my $file1;
68 my $content = "hello ";
72 writeFile($file1, $content);
73 $mtime = (stat($file1))[9];
74 # make sure that the gzip file isn't created in the same
75 # second as the input file
77 $hdr = gzipGetHeader($file1, $content);
79 is $hdr->{Name}, $file1, " Name is '$file1'";
80 is $hdr->{Time}, $mtime, " Time is ok";
82 title "Override Name" ;
84 writeFile($file1, $content);
85 $mtime = (stat($file1))[9];
87 $hdr = gzipGetHeader($file1, $content, Name => "abcde");
89 is $hdr->{Name}, "abcde", " Name is 'abcde'" ;
90 is $hdr->{Time}, $mtime, " Time is ok";
92 title "Override Time" ;
94 writeFile($file1, $content);
95 $hdr = gzipGetHeader($file1, $content, Time => 1234);
97 is $hdr->{Name}, $file1, " Name is '$file1'" ;
98 is $hdr->{Time}, 1234, " Time is 1234";
100 title "Override Name and Time" ;
102 writeFile($file1, $content);
103 $hdr = gzipGetHeader($file1, $content, Time => 4321, Name => "abcde");
105 is $hdr->{Name}, "abcde", " Name is 'abcde'" ;
106 is $hdr->{Time}, 4321, " Time is 4321";
108 title "Filehandle doesn't have default Name or Time" ;
109 my $fh = new IO::File "< $file1"
110 or diag "Cannot open '$file1': $!\n" ;
113 $hdr = gzipGetHeader($fh, $content);
116 ok ! defined $hdr->{Name}, " Name is undef";
117 cmp_ok $hdr->{Time}, '>=', $before, " Time is ok";
118 cmp_ok $hdr->{Time}, '<=', $after, " Time is ok";
122 title "Buffer doesn't have default Name or Time" ;
123 my $buffer = $content;
125 $hdr = gzipGetHeader(\$buffer, $content);
128 ok ! defined $hdr->{Name}, " Name is undef";
129 cmp_ok $hdr->{Time}, '>=', $before, " Time is ok";
130 cmp_ok $hdr->{Time}, '<=', $after, " Time is ok";
133 # TODO add more error cases