1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #!/bin/sh
- # Tests for unzip.
- # Copyright 2006 Rob Landley <rob@landley.net>
- # Copyright 2006 Glenn McGrath
- # Licensed under GPLv2, see file LICENSE in this source tree.
- . ./testing.sh
- # testing "test name" "commands" "expected result" "file input" "stdin"
- # file input will be file called "input"
- # test can create a file "actual" instead of writing to stdout
- # Create a scratch directory
- mkdir temp
- cd temp || exit $?
- # Create test file to work with.
- mkdir foo
- touch foo/bar
- zip foo.zip foo foo/bar > /dev/null
- rm -f foo/bar
- rmdir foo
- # Test that unzipping just foo doesn't create bar.
- testing "unzip (subdir only)" "unzip -q foo.zip foo/ && test -d foo && test ! -f foo/bar && echo yes" "yes\n" "" ""
- rmdir foo
- rm foo.zip
- # File containing some damaged encrypted stream
- optional FEATURE_UNZIP_CDF
- testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \
- "Archive: bad.zip
- inflating: ]3j½r«IK-%Ix
- unzip: corrupted data
- unzip: inflate error
- 1
- " \
- "" "\
- begin-base64 644 bad.zip
- UEsDBBQAAgkIAAAAIQA5AAAANwAAADwAAAAQAAcAXTNqwr1ywqtJGxJLLSVJ
- eCkBD0AdKBk8JzQsIj01JC0/ORJQSwMEFAECCAAAAAAhADoAAAAPAAAANgAA
- AAwAAQASw73Ct1DCokohPXQiNjoUNTUiHRwgLT4WHlBLAQIQABQAAggIAAAA
- oQA5AAAANwAAADwAAAAQQAcADAAAACwAMgCAAAAAAABdM2rCvXLCq0kbEkst
- JUl4KQEPQB0oGSY4Cz4QNgEnJSYIPVBLAQIAABQAAggAAAAAIQAqAAAADwAA
- BDYAAAAMAAEADQAAADIADQAAAEEAAAASw73Ct1DKokohPXQiNzA+FAI1HCcW
- NzITNFBLBQUKAC4JAA04Cw0EOhZQSwUGAQAABAIAAgCZAAAAeQAAAAIALhM=
- ====
- "
- SKIP=
- rm -f *
- optional FEATURE_UNZIP_LZMA
- testing "unzip (archive with corrupted lzma 1)" "unzip -p ../unzip_bad_lzma_1.zip 2>&1; echo \$?" \
- "unzip: removing leading '/' from member names
- unzip: corrupted data
- unzip: inflate error
- 1
- " \
- "" ""
- SKIP=
- rm -f *
- optional FEATURE_UNZIP_LZMA
- testing "unzip (archive with corrupted lzma 2)" "unzip -p ../unzip_bad_lzma_2.zip 2>&1; echo \$?" \
- "unzip: removing leading '/' from member names
- unzip: corrupted data
- unzip: inflate error
- 1
- " \
- "" ""
- SKIP=
- rm -f *
- # Clean up scratch directory.
- cd ..
- rm -rf temp
- exit $FAILCOUNT
|