compress 2.021
[p5sagit/p5-mst-13.2.git] / ext / Compress-Raw-Zlib / t / compress / CompTestUtils.pm
index 22b6d56..cb63d62 100644 (file)
@@ -203,12 +203,164 @@ sub cmpFile
     return readFile($filename) eq unpack("u", $uue) ;
 }
 
-sub isRawFormat
+#sub isRawFormat
+#{
+#    my $class = shift;
+#    # TODO -- add Lzma here?
+#    my %raw = map { $_ => 1 } qw( RawDeflate );
+#
+#    return defined $raw{$class};
+#}
+
+
+
+my %TOP = (
+    'IO::Uncompress::AnyInflate' => { Inverse  => 'IO::Compress::Gzip',
+                                      Error    => 'AnyInflateError',
+                                      TopLevel => 'anyinflate',
+                                      Raw      => 0,
+                            },
+
+    'IO::Uncompress::AnyUncompress' => { Inverse  => 'IO::Compress::Gzip',
+                                         Error    => 'AnyUncompressError',
+                                         TopLevel => 'anyuncompress',
+                                         Raw      => 0,
+                            },
+
+    'IO::Compress::Gzip' => { Inverse  => 'IO::Uncompress::Gunzip',
+                              Error    => 'GzipError',
+                              TopLevel => 'gzip',
+                              Raw      => 0,
+                            },
+    'IO::Uncompress::Gunzip' => { Inverse  => 'IO::Compress::Gzip',
+                                  Error    => 'GunzipError',
+                                  TopLevel => 'gunzip',
+                                  Raw      => 0,
+                            },
+
+    'IO::Compress::Deflate' => { Inverse  => 'IO::Uncompress::Inflate',
+                                 Error    => 'DeflateError',
+                                 TopLevel => 'deflate',
+                                 Raw      => 0,
+                            },
+    'IO::Uncompress::Inflate' => { Inverse  => 'IO::Compress::Deflate',
+                                   Error    => 'InflateError',
+                                   TopLevel => 'inflate',
+                                   Raw      => 0,
+                            },
+
+    'IO::Compress::RawDeflate' => { Inverse  => 'IO::Uncompress::RawInflate',
+                                    Error    => 'RawDeflateError',
+                                    TopLevel => 'rawdeflate',
+                                    Raw      => 1,
+                            },
+    'IO::Uncompress::RawInflate' => { Inverse  => 'IO::Compress::RawDeflate',
+                                      Error    => 'RawInflateError',
+                                      TopLevel => 'rawinflate',
+                                      Raw      => 1,
+                            },
+
+    'IO::Compress::Zip' => { Inverse  => 'IO::Uncompress::Unzip',
+                             Error    => 'ZipError',
+                             TopLevel => 'zip',
+                             Raw      => 0,
+                            },
+    'IO::Uncompress::Unzip' => { Inverse  => 'IO::Compress::Zip',
+                                 Error    => 'UnzipError',
+                                 TopLevel => 'unzip',
+                                 Raw      => 0,
+                            },
+
+    'IO::Compress::Bzip2' => { Inverse  => 'IO::Uncompress::Bunzip2',
+                               Error    => 'Bzip2Error',
+                               TopLevel => 'bzip2',
+                               Raw      => 0,
+                            },
+    'IO::Uncompress::Bunzip2' => { Inverse  => 'IO::Compress::Bzip2',
+                                   Error    => 'Bunzip2Error',
+                                   TopLevel => 'bunzip2',
+                                   Raw      => 0,
+                            },
+
+    'IO::Compress::Lzop' => { Inverse  => 'IO::Uncompress::UnLzop',
+                              Error    => 'LzopError',
+                              TopLevel => 'lzop',
+                              Raw      => 0,
+                            },
+    'IO::Uncompress::UnLzop' => { Inverse  => 'IO::Compress::Lzop',
+                                  Error    => 'UnLzopError',
+                                  TopLevel => 'unlzop',
+                                  Raw      => 0,
+                            },
+
+    'IO::Compress::Lzf' => { Inverse  => 'IO::Uncompress::UnLzf',
+                             Error    => 'LzfError',
+                             TopLevel => 'lzf',
+                             Raw      => 0,
+                            },
+    'IO::Uncompress::UnLzf' => { Inverse  => 'IO::Compress::Lzf',
+                                 Error    => 'UnLzfError',
+                                 TopLevel => 'unlzf',
+                                 Raw      => 0,
+                            },
+
+    'IO::Compress::Lzma' => { Inverse  => 'IO::Uncompress::UnLzma',
+                              Error    => 'LzmaError',
+                              TopLevel => 'lzma',
+                              Raw      => 1,
+                            },
+    'IO::Uncompress::UnLzma' => { Inverse  => 'IO::Compress::Lzma',
+                                  Error    => 'UnLzmaError',
+                                  TopLevel => 'unlzma',
+                                  Raw      => 1,
+                                },
+
+    'IO::Compress::Xz' => { Inverse  => 'IO::Uncompress::UnXz',
+                            Error    => 'XzError',
+                            TopLevel => 'xz',
+                            Raw      => 0,
+                          },
+    'IO::Uncompress::UnXz' => { Inverse  => 'IO::Compress::Xz',
+                                Error    => 'UnXzError',
+                                TopLevel => 'unxz',
+                                Raw      => 0,
+                              },
+
+    'IO::Compress::PPMd' => { Inverse  => 'IO::Uncompress::UnPPMd',
+                              Error    => 'PPMdError',
+                              TopLevel => 'ppmd',
+                              Raw      => 0,
+                            },
+    'IO::Uncompress::UnPPMd' => { Inverse  => 'IO::Compress::PPMd',
+                                  Error    => 'UnPPMdError',
+                                  TopLevel => 'unppmd',
+                                  Raw      => 0,
+                                },
+
+    'IO::Compress::DummyComp' => { Inverse  => 'IO::Uncompress::DummyUnComp',
+                                   Error    => 'DummyCompError',
+                                   TopLevel => 'dummycomp',
+                                   Raw      => 0,
+                                 },
+    'IO::Uncompress::DummyUnComp' => { Inverse  => 'IO::Compress::DummyComp',
+                                       Error    => 'DummyUnCompError',
+                                       TopLevel => 'dummyunComp',
+                                       Raw      => 0,
+                                     },
+);
+
+
+for my $key (keys %TOP)
 {
-    my $class = shift;
-    my %raw = map { $_ => 1 } qw( RawDeflate );
+    no strict;
+    no warnings;
+    $TOP{$key}{Error}    = \${ $key . '::' . $TOP{$key}{Error}    };
+    $TOP{$key}{TopLevel} =     $key . '::' . $TOP{$key}{TopLevel}  ;
 
-    return defined $raw{$class};
+    # Silence used once warning in really old perl
+    my $dummy            = \${ $key . '::' . $TOP{$key}{Error}    };
+
+    #$TOP{$key . "::" . $TOP{$key}{TopLevel} } = $TOP{$key};
 }
 
 sub uncompressBuffer
@@ -216,159 +368,43 @@ sub uncompressBuffer
     my $compWith = shift ;
     my $buffer = shift ;
 
-    my %mapping = ( 'IO::Compress::Gzip'                     => 'IO::Uncompress::Gunzip',
-                    'IO::Compress::Gzip::gzip'               => 'IO::Uncompress::Gunzip',
-                    'IO::Compress::Deflate'                  => 'IO::Uncompress::Inflate',
-                    'IO::Compress::Deflate::deflate'         => 'IO::Uncompress::Inflate',
-                    'IO::Compress::RawDeflate'               => 'IO::Uncompress::RawInflate',
-                    'IO::Compress::RawDeflate::rawdeflate'   => 'IO::Uncompress::RawInflate',
-                    'IO::Compress::Bzip2'                    => 'IO::Uncompress::Bunzip2',
-                    'IO::Compress::Bzip2::bzip2'             => 'IO::Uncompress::Bunzip2',
-                    'IO::Compress::Zip'                      => 'IO::Uncompress::Unzip',
-                    'IO::Compress::Zip::zip'                 => 'IO::Uncompress::Unzip',
-                    'IO::Compress::Lzop'                     => 'IO::Uncompress::UnLzop',
-                    'IO::Compress::Lzop::lzop'               => 'IO::Uncompress::UnLzop',
-                    'IO::Compress::Lzf'                      => 'IO::Uncompress::UnLzf' ,
-                    'IO::Compress::Lzf::lzf'                 => 'IO::Uncompress::UnLzf',
-                    'IO::Compress::PPMd'                     => 'IO::Uncompress::UnPPMd' ,
-                    'IO::Compress::PPMd::ppmd'               => 'IO::Uncompress::UnPPMd',
-                    'IO::Compress::DummyComp'                => 'IO::Uncompress::DummyUncomp',
-                    'IO::Compress::DummyComp::dummycomp'     => 'IO::Uncompress::DummyUncomp',
-                );
 
     my $out ;
-    my $obj = $mapping{$compWith}->new( \$buffer, -Append => 1);
+    my $obj = $TOP{$compWith}{Inverse}->new( \$buffer, -Append => 1);
     1 while $obj->read($out) > 0 ;
     return $out ;
 
 }
 
-my %ErrorMap = (    'IO::Compress::Gzip'                => \$IO::Compress::Gzip::GzipError,
-                    'IO::Compress::Gzip::gzip'          => \$IO::Compress::Gzip::GzipError,
-                    'IO::Uncompress::Gunzip'            => \$IO::Uncompress::Gunzip::GunzipError,
-                    'IO::Uncompress::Gunzip::gunzip'    => \$IO::Uncompress::Gunzip::GunzipError,
-                    'IO::Uncompress::Inflate'           => \$IO::Uncompress::Inflate::InflateError,
-                    'IO::Uncompress::Inflate::inflate'  => \$IO::Uncompress::Inflate::InflateError,
-                    'IO::Compress::Deflate'             => \$IO::Compress::Deflate::DeflateError,
-                    'IO::Compress::Deflate::deflate'    => \$IO::Compress::Deflate::DeflateError,
-                    'IO::Uncompress::RawInflate'        => \$IO::Uncompress::RawInflate::RawInflateError,
-                    'IO::Uncompress::RawInflate::rawinflate'  => \$IO::Uncompress::RawInflate::RawInflateError,
-                    'IO::Uncompress::AnyInflate'        => \$IO::Uncompress::AnyInflate::AnyInflateError,
-                    'IO::Uncompress::AnyInflate::anyinflate'  => \$IO::Uncompress::AnyInflate::AnyInflateError,
-                    'IO::Uncompress::AnyUncompress'        => \$IO::Uncompress::AnyUncompress::AnyUncompressError,
-                    'IO::Uncompress::AnyUncompress::anyUncompress'  => \$IO::Uncompress::AnyUncompress::AnyUncompressError,
-                    'IO::Compress::RawDeflate'          => \$IO::Compress::RawDeflate::RawDeflateError,
-                    'IO::Compress::RawDeflate::rawdeflate'  => \$IO::Compress::RawDeflate::RawDeflateError,
-                    'IO::Compress::Bzip2'               => \$IO::Compress::Bzip2::Bzip2Error,
-                    'IO::Compress::Bzip2::bzip2'        => \$IO::Compress::Bzip2::Bzip2Error,
-                    'IO::Uncompress::Bunzip2'           => \$IO::Uncompress::Bunzip2::Bunzip2Error,
-                    'IO::Uncompress::Bunzip2::bunzip2'  => \$IO::Uncompress::Bunzip2::Bunzip2Error,
-                    'IO::Compress::Zip'                 => \$IO::Compress::Zip::ZipError,
-                    'IO::Compress::Zip::zip'            => \$IO::Compress::Zip::ZipError,
-                    'IO::Uncompress::Unzip'             => \$IO::Uncompress::Unzip::UnzipError,
-                    'IO::Uncompress::Unzip::unzip'      => \$IO::Uncompress::Unzip::UnzipError,
-                    'IO::Compress::Lzop'                => \$IO::Compress::Lzop::LzopError,
-                    'IO::Compress::Lzop::lzop'          => \$IO::Compress::Lzop::LzopError,
-                    'IO::Uncompress::UnLzop'            => \$IO::Uncompress::UnLzop::UnLzopError,
-                    'IO::Uncompress::UnLzop::unlzop'    => \$IO::Uncompress::UnLzop::UnLzopError,
-                    'IO::Compress::Lzf'                 => \$IO::Compress::Lzf::LzfError,
-                    'IO::Compress::Lzf::lzf'            => \$IO::Compress::Lzf::LzfError,
-                    'IO::Uncompress::UnLzf'             => \$IO::Uncompress::UnLzf::UnLzfError,
-                    'IO::Uncompress::UnLzf::unlzf'      => \$IO::Uncompress::UnLzf::UnLzfError,
-                    'IO::Compress::PPMd'                 => \$IO::Compress::PPMd::PPMdError,
-                    'IO::Compress::PPMd::ppmd'            => \$IO::Compress::PPMd::PPMdError,
-                    'IO::Uncompress::UnPPMd'             => \$IO::Uncompress::UnPPMd::UnPPMdError,
-                    'IO::Uncompress::UnPPMd::unppmd'      => \$IO::Uncompress::UnPPMd::UnPPMdError,
-
-                    'IO::Compress::DummyComp'           => \$IO::Compress::DummyComp::DummyCompError,
-                    'IO::Compress::DummyComp::dummycomp'=> \$IO::Compress::DummyComp::DummyCompError,
-                    'IO::Uncompress::DummyUncomp'       => \$IO::Uncompress::DummyUncomp::DummyUncompError,
-                    'IO::Uncompress::DummyUncomp::dummyuncomp' => \$IO::Uncompress::DummyUncomp::DummyUncompError,
-               );
-
-my %TopFuncMap = (  'IO::Compress::Gzip'          => 'IO::Compress::Gzip::gzip',
-                    'IO::Uncompress::Gunzip'      => 'IO::Uncompress::Gunzip::gunzip',
-
-                    'IO::Compress::Deflate'       => 'IO::Compress::Deflate::deflate',
-                    'IO::Uncompress::Inflate'     => 'IO::Uncompress::Inflate::inflate',
-
-                    'IO::Compress::RawDeflate'    => 'IO::Compress::RawDeflate::rawdeflate',
-                    'IO::Uncompress::RawInflate'  => 'IO::Uncompress::RawInflate::rawinflate',
-
-                    'IO::Uncompress::AnyInflate'  => 'IO::Uncompress::AnyInflate::anyinflate',
-                    'IO::Uncompress::AnyUncompress'  => 'IO::Uncompress::AnyUncompress::anyuncompress',
-
-                    'IO::Compress::Bzip2'         => 'IO::Compress::Bzip2::bzip2',
-                    'IO::Uncompress::Bunzip2'     => 'IO::Uncompress::Bunzip2::bunzip2',
-
-                    'IO::Compress::Zip'           => 'IO::Compress::Zip::zip',
-                    'IO::Uncompress::Unzip'       => 'IO::Uncompress::Unzip::unzip',
-                    'IO::Compress::Lzop'          => 'IO::Compress::Lzop::lzop',
-                    'IO::Uncompress::UnLzop'      => 'IO::Uncompress::UnLzop::unlzop',
-                    'IO::Compress::Lzf'           => 'IO::Compress::Lzf::lzf',
-                    'IO::Uncompress::UnLzf'       => 'IO::Uncompress::UnLzf::unlzf',
-                    'IO::Compress::PPMd'           => 'IO::Compress::PPMd::ppmd',
-                    'IO::Uncompress::UnPPMd'       => 'IO::Uncompress::UnPPMd::unppmd',
-                    'IO::Compress::DummyComp'     => 'IO::Compress::DummyComp::dummyuncomp',
-                    'IO::Uncompress::DummyUncomp' => 'IO::Uncompress::DummyUncomp::dummyuncomp',
-                 );
-
-   %TopFuncMap = map { ($_              => $TopFuncMap{$_}, 
-                        $TopFuncMap{$_} => $TopFuncMap{$_}) } 
-                 keys %TopFuncMap ;
-
- #%TopFuncMap = map { ($_              => \&{ $TopFuncMap{$_} ) } 
-                 #keys %TopFuncMap ;
-
-
-my %inverse  = ( 'IO::Compress::Gzip'                    => 'IO::Uncompress::Gunzip',
-                 'IO::Compress::Gzip::gzip'              => 'IO::Uncompress::Gunzip::gunzip',
-                 'IO::Compress::Deflate'                 => 'IO::Uncompress::Inflate',
-                 'IO::Compress::Deflate::deflate'        => 'IO::Uncompress::Inflate::inflate',
-                 'IO::Compress::RawDeflate'              => 'IO::Uncompress::RawInflate',
-                 'IO::Compress::RawDeflate::rawdeflate'  => 'IO::Uncompress::RawInflate::rawinflate',
-                 'IO::Compress::Bzip2::bzip2'            => 'IO::Uncompress::Bunzip2::bunzip2',
-                 'IO::Compress::Bzip2'                   => 'IO::Uncompress::Bunzip2',
-                 'IO::Compress::Zip::zip'                => 'IO::Uncompress::Unzip::unzip',
-                 'IO::Compress::Zip'                     => 'IO::Uncompress::Unzip',
-                 'IO::Compress::Lzop::lzop'              => 'IO::Uncompress::UnLzop::unlzop',
-                 'IO::Compress::Lzop'                    => 'IO::Uncompress::UnLzop',
-                 'IO::Compress::Lzf::lzf'                => 'IO::Uncompress::UnLzf::unlzf',
-                 'IO::Compress::Lzf'                     => 'IO::Uncompress::UnLzf',
-                 'IO::Compress::PPMd::ppmd'              => 'IO::Uncompress::UnPPMd::unppmd',
-                 'IO::Compress::PPMd'                    => 'IO::Uncompress::UnPPMd',
-                 'IO::Compress::DummyComp::dummycomp'    => 'IO::Uncompress::DummyUncomp::dummyuncomp',
-                 'IO::Compress::DummyComp'               => 'IO::Uncompress::DummyUncomp',
-             );
-
-%inverse  = map { ($_ => $inverse{$_}, $inverse{$_} => $_) } keys %inverse;
 
 sub getInverse
 {
     my $class = shift ;
 
-    return $inverse{$class} ;
+    return $TOP{$class}{Inverse};
 }
 
 sub getErrorRef
 {
     my $class = shift ;
 
-    return $ErrorMap{$class} ;
+    return $TOP{$class}{Error};
 }
 
 sub getTopFuncRef
 {
     my $class = shift ;
 
-    return \&{ $TopFuncMap{$class} } ;
+    die "Cannot find $class"
+        if ! defined $TOP{$class}{TopLevel};
+    return \&{ $TOP{$class}{TopLevel} } ;
 }
 
 sub getTopFuncName
 {
     my $class = shift ;
 
-    return $TopFuncMap{$class}  ;
+    return $TOP{$class}{TopLevel} ;
 }
 
 sub compressBuffer
@@ -376,32 +412,11 @@ sub compressBuffer
     my $compWith = shift ;
     my $buffer = shift ;
 
-    my %mapping = ( 'IO::Uncompress::Gunzip'                  => 'IO::Compress::Gzip',
-                    'IO::Uncompress::Gunzip::gunzip'          => 'IO::Compress::Gzip',
-                    'IO::Uncompress::Inflate'                 => 'IO::Compress::Deflate',
-                    'IO::Uncompress::Inflate::inflate'        => 'IO::Compress::Deflate',
-                    'IO::Uncompress::RawInflate'              => 'IO::Compress::RawDeflate',
-                    'IO::Uncompress::RawInflate::rawinflate'  => 'IO::Compress::RawDeflate',
-                    'IO::Uncompress::Bunzip2'                 => 'IO::Compress::Bzip2',
-                    'IO::Uncompress::Bunzip2::bunzip2'        => 'IO::Compress::Bzip2',
-                    'IO::Uncompress::Unzip'                   => 'IO::Compress::Zip',
-                    'IO::Uncompress::Unzip::unzip'            => 'IO::Compress::Zip',
-                    'IO::Uncompress::UnLzop'                  => 'IO::Compress::Lzop',
-                    'IO::Uncompress::UnLzop::unlzop'          => 'IO::Compress::Lzop',
-                    'IO::Uncompress::UnLzp'                   => 'IO::Compress::Lzf',
-                    'IO::Uncompress::UnLzf::unlzf'            => 'IO::Compress::Lzf',
-                    'IO::Uncompress::UnPPMd'                  => 'IO::Compress::PPMd',
-                    'IO::Uncompress::UnPPMd::unppmd'          => 'IO::Compress::PPMd',
-                    'IO::Uncompress::AnyInflate'              => 'IO::Compress::Gzip',
-                    'IO::Uncompress::AnyInflate::anyinflate'  => 'IO::Compress::Gzip',
-                    'IO::Uncompress::AnyUncompress'           => 'IO::Compress::Gzip',
-                    'IO::Uncompress::AnyUncompress::anyuncompress'  => 'IO::Compress::Gzip',
-                    'IO::Uncompress::DummyUncomp'             => 'IO::Compress::DummyComp',
-                    'IO::Uncompress::DummyUncomp::dummyuncomp'=> 'IO::Compress::DummyComp',
-                );
 
     my $out ;
-    my $obj = $mapping{$compWith}->new( \$out);
+    die "Cannot find $compWith"
+        if ! defined $TOP{$compWith}{Inverse};
+    my $obj = $TOP{$compWith}{Inverse}->new( \$out);
     $obj->write($buffer) ;
     $obj->close();
     return $out ;
@@ -584,7 +599,7 @@ sub mkErr
 
     $file = quotemeta($file);
 
-    return "/$string\\s+at $file line $line/" if $] >= 5.006 ;
+    #return "/$string\\s+at $file line $line/" if $] >= 5.006 ;
     return "/$string\\s+at /" ;
 }
 
@@ -592,7 +607,7 @@ sub mkEvalErr
 {
     my $string = shift ;
 
-    return "/$string\\s+at \\(eval /" if $] > 5.006 ;
+    #return "/$string\\s+at \\(eval /" if $] > 5.006 ;
     return "/$string\\s+at /" ;
 }