t5004: require 64-bit support for big ZIP tests
authorRené Scharfe <l.s.r@web.de>
Sun, 30 Apr 2017 07:53:52 +0000 (09:53 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 30 Apr 2017 23:46:50 +0000 (08:46 +0900)
Check if unzip supports the ZIP64 format and skip the tests that create
big archives otherwise. Also skip the test that archives a big file on
32-bit platforms because the git object systems can't unpack files
bigger than 4GB there.

Reported-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5004-archive-corner-cases.sh
index 9106c53c4c893338e8b8e972aec350ace872947b..f6207f42b5a4ed382b819cb81631cd0acab61463 100755 (executable)
@@ -27,6 +27,9 @@ check_dir() {
        test_cmp expect actual
 }
 
+test_lazy_prereq UNZIP_ZIP64_SUPPORT '
+       "$GIT_UNZIP" -v | grep ZIP64_SUPPORT
+'
 
 # bsdtar/libarchive versions before 3.1.3 consider a tar file with a
 # global pax header that is not followed by a file record as corrupt.
@@ -155,7 +158,8 @@ test_expect_success ZIPINFO 'zip archive with many entries' '
        test_cmp expect actual
 '
 
-test_expect_success EXPENSIVE,UNZIP 'zip archive bigger than 4GB' '
+test_expect_success EXPENSIVE,UNZIP,UNZIP_ZIP64_SUPPORT \
+       'zip archive bigger than 4GB' '
        # build string containing 65536 characters
        s=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef &&
        s=$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s &&
@@ -178,7 +182,8 @@ test_expect_success EXPENSIVE,UNZIP 'zip archive bigger than 4GB' '
        "$GIT_UNZIP" -t many-big.zip
 '
 
-test_expect_success EXPENSIVE,UNZIP,ZIPINFO 'zip archive with files bigger than 4GB' '
+test_expect_success EXPENSIVE,LONG_IS_64BIT,UNZIP,UNZIP_ZIP64_SUPPORT,ZIPINFO \
+       'zip archive with files bigger than 4GB' '
        # Pack created with:
        #   dd if=/dev/zero of=file bs=1M count=4100 && git hash-object -w file
        mkdir -p .git/objects/pack &&