Importing Archive::Zip 1.16
[archive-zip.git] / t / testex.t
blob789b5c65b6f08942f60d694d8957f7dbf6da4771
1 # Test examples\r
2 # $Revision: 1.9 $\r
3 # Before `make install' is performed this script should be runnable with\r
4 # `make test'. After `make install' it should work as `perl t/testex.t'\r
5 # vim: ts=4 sw=4 ft=perl\r
6 \r
7 $^W = 1;\r
8 $|  = 1;\r
9 use strict;\r
10 use Test;\r
11 use Archive::Zip qw( :ERROR_CODES :CONSTANTS );\r
12 use File::Spec;\r
13 use IO::File;\r
15 BEGIN { plan tests => 15, todo => [] }\r
17 BEGIN { require 't/common.pl' }\r
19 sub runPerlCommand\r
20 {\r
21         my $libs = join ( ' -I', @INC );\r
22         my $cmd    = "\"$^X\" \"-I$libs\" -w \"". join('" "', @_). '"';\r
23         my $output = `$cmd`;\r
24         return wantarray ? ( $?, $output ) : $?;\r
25 }\r
27 use constant FILENAME => File::Spec->catpath( '', TESTDIR, 'testing.txt' );\r
28 use constant ZFILENAME => TESTDIR . "/testing.txt"; # name in zip\r
30 my $zip = Archive::Zip->new();\r
31 $zip->addString( TESTSTRING, FILENAME );\r
32 $zip->writeToFileNamed(INPUTZIP);\r
34 my ( $status, $output );\r
35 my $fh = IO::File->new( "test.log", "w" );\r
37 ok( runPerlCommand( 'examples/copy.pl', INPUTZIP, OUTPUTZIP ), 0 );\r
39 ok( runPerlCommand( 'examples/extract.pl', OUTPUTZIP, ZFILENAME ), 0 );\r
41 ok( runPerlCommand( 'examples/mfh.pl', INPUTZIP ), 0 );\r
43 ok( runPerlCommand( 'examples/zip.pl', OUTPUTZIP, INPUTZIP, FILENAME ), 0 );\r
45 ( $status, $output ) = runPerlCommand( 'examples/zipinfo.pl', INPUTZIP );\r
46 ok( $status, 0 );\r
47 $fh->print("zipinfo output:\n");\r
48 $fh->print($output);\r
50 ( $status, $output ) = runPerlCommand( 'examples/ziptest.pl', INPUTZIP );\r
51 ok( $status, 0 );\r
52 $fh->print("ziptest output:\n");\r
53 $fh->print($output);\r
55 ( $status, $output ) = runPerlCommand( 'examples/zipGrep.pl', '100', INPUTZIP );\r
56 ok( $status, 0 );\r
57 ok( $output, ZFILENAME . ":100\n" );\r
59 # calcSizes.pl\r
60 # creates test.zip, may be sensitive to /dev/null\r
62 # removed because requires IO::Scalar\r
63 # ok( runPerlCommand('examples/readScalar.pl'), 0 );\r
65 unlink(OUTPUTZIP);\r
66 ok( runPerlCommand( 'examples/selfex.pl', OUTPUTZIP, FILENAME ), 0 );\r
67 unlink(FILENAME);\r
68 ok( runPerlCommand(OUTPUTZIP), 0 );\r
69 my $fn =\r
70   File::Spec->catpath( '', File::Spec->catdir( 'extracted', TESTDIR ),\r
71         'testing.txt' );\r
72 ok( -f $fn, 1, "$fn exists" );\r
74 # unzipAll.pl\r
75 # updateZip.pl\r
76 # writeScalar.pl\r
77 # zipcheck.pl\r
78 # ziprecent.pl\r
80 unlink(OUTPUTZIP);\r
81 ok( runPerlCommand( 'examples/updateTree.pl', OUTPUTZIP, TESTDIR ), 0, "updateTree.pl create" );\r
82 ok( -f OUTPUTZIP, 1, "zip created" );\r
83 ok( runPerlCommand( 'examples/updateTree.pl', OUTPUTZIP, TESTDIR ), 0, "updateTree.pl update" );\r
84 ok( -f OUTPUTZIP, 1, "zip updated" );\r
85 unlink(OUTPUTZIP);\r