1#!/bin/sh 2 3# Tests for unzip. 4# Copyright 2006 Rob Landley <rob@landley.net> 5# Copyright 2006 Glenn McGrath 6# Licensed under GPLv2, see file LICENSE in this source tree. 7 8. ./testing.sh 9 10# testing "test name" "commands" "expected result" "file input" "stdin" 11# file input will be file called "input" 12# test can create a file "actual" instead of writing to stdout 13 14# Create a scratch directory 15 16mkdir temp 17cd temp || exit $? 18 19# Create test file to work with. 20 21mkdir foo 22touch foo/bar 23zip foo.zip foo foo/bar > /dev/null 24rm -f foo/bar 25rmdir foo 26 27# Test that unzipping just foo doesn't create bar. 28testing "unzip (subdir only)" "unzip -q foo.zip foo/ && test -d foo && test ! -f foo/bar && echo yes" "yes\n" "" "" 29 30rmdir foo 31rm foo.zip 32 33# File containing some damaged encrypted stream 34optional FEATURE_UNZIP_CDF CONFIG_UNICODE_SUPPORT 35testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \ 36"Archive: bad.zip 37 inflating: ]3j½r«I??K-%Ix 38unzip: corrupted data 39unzip: inflate error 401 41" \ 42"" "\ 43begin-base64 644 bad.zip 44UEsDBBQAAgkIAAAAIQA5AAAANwAAADwAAAAQAAcAXTNqwr1ywqtJGxJLLSVJ 45eCkBD0AdKBk8JzQsIj01JC0/ORJQSwMEFAECCAAAAAAhADoAAAAPAAAANgAA 46AAwAAQASw73Ct1DCokohPXQiNjoUNTUiHRwgLT4WHlBLAQIQABQAAggIAAAA 47oQA5AAAANwAAADwAAAAQQAcADAAAACwAMgCAAAAAAABdM2rCvXLCq0kbEkst 48JUl4KQEPQB0oGSY4Cz4QNgEnJSYIPVBLAQIAABQAAggAAAAAIQAqAAAADwAA 49BDYAAAAMAAEADQAAADIADQAAAEEAAAASw73Ct1DKokohPXQiNzA+FAI1HCcW 50NzITNFBLBQUKAC4JAA04Cw0EOhZQSwUGAQAABAIAAgCZAAAAeQAAAAIALhM= 51==== 52" 53SKIP= 54 55rm -f * 56 57optional FEATURE_UNZIP_LZMA 58testing "unzip (archive with corrupted lzma 1)" "unzip -p ../unzip_bad_lzma_1.zip 2>&1; echo \$?" \ 59"unzip: removing leading '/' from member names 60unzip: corrupted data 61unzip: inflate error 621 63" \ 64"" "" 65SKIP= 66 67rm -f * 68 69optional FEATURE_UNZIP_LZMA 70testing "unzip (archive with corrupted lzma 2)" "unzip -p ../unzip_bad_lzma_2.zip 2>&1; echo \$?" \ 71"unzip: removing leading '/' from member names 72unzip: corrupted data 73unzip: inflate error 741 75" \ 76"" "" 77SKIP= 78 79rm -f * 80 81# Clean up scratch directory. 82 83cd .. 84rm -rf temp 85 86exit $FAILCOUNT 87