busybox/testsuite/unzip.tests
<<
>>
Prefs
   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
  35testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \
  36"Archive:  bad.zip
  37  inflating: ]3j½r«IK-%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