34 # autogenerate the name unless if none supplied
35 $_ = "tst" . $index ++ . ".tmp"
46 chmod 0777, @{ $self } ;
59 foreach (@_) { rmtree $_ }
66 foreach (@$self) { rmtree $_ }
75 if (Compress::Zlib::Common::isaFilehandle($f))
85 or die "Cannot open $f: $!\n" ;
90 return @strings if wantarray ;
91 return join "", @strings ;
96 foreach (@_) { writeFile($_, '') }
101 my($filename, @strings) = @_ ;
102 open (F, ">$filename")
103 or die "Cannot open $filename: $!\n" ;
114 my ($filename) = shift ;
118 my $fil = gzopen($filename, "rb")
119 or die "Cannopt open '$filename': $Compress::Zlib::gzerrno" ;
122 while $fil->gzread($line) > 0;
132 if (Compress::Zlib::Common::isaFilehandle($d))
136 elsif (Compress::Zlib::Common::isaFilename($d))
147 $d = '' unless defined $d ;
148 #while (read(STDIN, $data, 16)) {
149 while (my $data = substr($d, 0, 16)) {
150 substr($d, 0, 16) = '' ;
151 printf "# %8.8lx ", $offset;
154 my @array = unpack('C*', $data);
156 printf('%2.2x ', $_);
158 print " " x (16 - @array)
160 $data =~ tr/\0-\37\177-\377/./;
175 ok my $x = new IO::Compress::Gzip $name, %opts
176 or diag "GzipError is $IO::Compress::Gzip::GzipError" ;
177 ok $x->write($string) ;
180 ok GZreadFile($name) eq $string ;
182 ok my $gunz = new IO::Uncompress::Gunzip $name, Strict => 0
183 or diag "GunzipError is $IO::Uncompress::Gunzip::GunzipError" ;
184 ok my $hdr = $gunz->getHeaderInfo();
186 ok $gunz->read($uncomp) ;
187 ok $uncomp eq $string;
195 my ($filename, $uue) = @_ ;
196 return readFile($filename) eq unpack("u", $uue) ;
201 my $compWith = shift ;
204 my %mapping = ( 'IO::Compress::Gzip' => 'IO::Uncompress::Gunzip',
205 'IO::Compress::Gzip::gzip' => 'IO::Uncompress::Gunzip',
206 'IO::Compress::Deflate' => 'IO::Uncompress::Inflate',
207 'IO::Compress::Deflate::deflate' => 'IO::Uncompress::Inflate',
208 'IO::Compress::RawDeflate' => 'IO::Uncompress::RawInflate',
209 'IO::Compress::RawDeflate::rawdeflate' => 'IO::Uncompress::RawInflate',
213 my $obj = $mapping{$compWith}->new( \$buffer, -Append => 1);
214 1 while $obj->read($out) > 0 ;
219 my %ErrorMap = ( 'IO::Compress::Gzip' => \$IO::Compress::Gzip::GzipError,
220 'IO::Compress::Gzip::gzip' => \$IO::Compress::Gzip::GzipError,
221 'IO::Uncompress::Gunzip' => \$IO::Uncompress::Gunzip::GunzipError,
222 'IO::Uncompress::Gunzip::gunzip' => \$IO::Uncompress::Gunzip::GunzipError,
223 'IO::Uncompress::Inflate' => \$IO::Uncompress::Inflate::InflateError,
224 'IO::Uncompress::Inflate::inflate' => \$IO::Uncompress::Inflate::InflateError,
225 'IO::Compress::Deflate' => \$IO::Compress::Deflate::DeflateError,
226 'IO::Compress::Deflate::deflate' => \$IO::Compress::Deflate::DeflateError,
227 'IO::Uncompress::RawInflate' => \$IO::Uncompress::RawInflate::RawInflateError,
228 'IO::Uncompress::RawInflate::rawinflate' => \$IO::Uncompress::RawInflate::RawInflateError,
229 'IO::Uncompress::AnyInflate' => \$IO::Uncompress::AnyInflate::AnyInflateError,
230 'IO::Uncompress::AnyInflate::anyinflate' => \$IO::Uncompress::AnyInflate::AnyInflateError,
231 'IO::Compress::RawDeflate' => \$IO::Compress::RawDeflate::RawDeflateError,
232 'IO::Compress::RawDeflate::rawdeflate' => \$IO::Compress::RawDeflate::RawDeflateError,
235 my %TopFuncMap = ( 'IO::Compress::Gzip' => 'IO::Compress::Gzip::gzip',
236 'IO::Uncompress::Gunzip' => 'IO::Uncompress::Gunzip::gunzip',
237 'IO::Compress::Deflate' => 'IO::Compress::Deflate::deflate',
238 'IO::Uncompress::Inflate' => 'IO::Uncompress::Inflate::inflate',
239 'IO::Compress::RawDeflate' => 'IO::Compress::RawDeflate::rawdeflate',
240 'IO::Uncompress::RawInflate' => 'IO::Uncompress::RawInflate::rawinflate',
241 'IO::Uncompress::AnyInflate' => 'IO::Uncompress::AnyInflate::anyinflate',
244 %TopFuncMap = map { ($_ => $TopFuncMap{$_},
245 $TopFuncMap{$_} => $TopFuncMap{$_}) }
248 #%TopFuncMap = map { ($_ => \&{ $TopFuncMap{$_} ) }
252 my %inverse = ( 'IO::Compress::Gzip' => 'IO::Uncompress::Gunzip',
253 'IO::Compress::Gzip::gzip' => 'IO::Uncompress::Gunzip::gunzip',
254 'IO::Compress::Deflate' => 'IO::Uncompress::Inflate',
255 'IO::Compress::Deflate::deflate' => 'IO::Uncompress::Inflate::inflate',
256 'IO::Compress::RawDeflate' => 'IO::Uncompress::RawInflate',
257 'IO::Compress::RawDeflate::rawdeflate' => 'IO::Uncompress::RawInflate::rawinflate',
260 %inverse = map { ($_ => $inverse{$_}, $inverse{$_} => $_) } keys %inverse;
266 return $inverse{$class} ;
273 return $ErrorMap{$class} ;
280 return \&{ $TopFuncMap{$class} } ;
287 return $TopFuncMap{$class} ;
292 my $compWith = shift ;
295 my %mapping = ( 'IO::Uncompress::Gunzip' => 'IO::Compress::Gzip',
296 'IO::Uncompress::Gunzip::gunzip' => 'IO::Compress::Gzip',
297 'IO::Uncompress::Inflate' => 'IO::Compress::Deflate',
298 'IO::Uncompress::Inflate::inflate' => 'IO::Compress::Deflate',
299 'IO::Uncompress::RawInflate' => 'IO::Compress::RawDeflate',
300 'IO::Uncompress::RawInflate::rawinflate' => 'IO::Compress::RawDeflate',
301 'IO::Uncompress::AnyInflate' => 'IO::Compress::Gzip',
302 'IO::Uncompress::AnyInflate::anyinflate' => 'IO::Compress::Gzip',
306 my $obj = $mapping{$compWith}->new( \$out);
307 $obj->write($buffer) ;
313 use IO::Uncompress::AnyInflate qw($AnyInflateError);
320 if (ref $buffer && ref $buffer eq 'ARRAY')
323 $buffer = shift @opts;
328 croak "buffer is undef" unless defined $$buffer;
329 croak "buffer is empty" unless length $$buffer;
335 if (Compress::Zlib::Common::isaFilehandle($buffer))
337 $data = readFile($buffer);
339 elsif (Compress::Zlib::Common::isaFilename($buffer))
341 $data = readFile($buffer);
348 if (defined $already && length $already)
351 my $got = substr($data, 0, length($already));
352 substr($data, 0, length($already)) = '';
354 is $got, $already, ' Already OK' ;
358 my $o = new IO::Uncompress::AnyInflate \$data, -Append => 1, Transparent => 0, @opts
359 or croak "Cannot open buffer/file: $AnyInflateError" ;
361 1 while $o->read($out) > 0 ;
363 croak "Error uncompressing -- " . $o->error()
373 my ($dummy, $file, $line) = caller ;
376 $file = quotemeta($file);
378 return "/$string\\s+at $file line $line/" ;
385 return "/$string\\s+at \\(eval /" ;
392 my ($dummy, $file, $line) = caller ;
396 print "#\n# dumpOBJ from $file line $line @_\n" ;
400 print "#\n# dumpOBJ from $file line $line \n" ;
404 foreach my $k (keys %{ *$obj })
406 $max = length $k if length $k > $max ;
409 foreach my $k (sort keys %{ *$obj })
412 $v = '-undef-' unless defined $v;
413 my $pad = ' ' x ($max - length($k) + 2) ;
414 print "# $k$pad: [$v]\n";
420 package ZlibTestUtils;