From: Yann Collet Date: Fri, 17 Jul 2020 20:31:15 +0000 (-0700) Subject: added tests for newly enabled syntax X-Git-Tag: v1.4.7~109^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23941eec049ca6c0f9e8b520a2e025e0005f39cf;p=thirdparty%2Fzstd.git added tests for newly enabled syntax for --patch-from origin and --filelist list Also : removed some constrained syntax tests, as the new argument parsing syntax is more permissive. For example : zstd file -of dest used to be disallowed. It's now allowed, and understood as: zstd file -o dest -f --- diff --git a/programs/zstdcli.c b/programs/zstdcli.c index b5cf2598d..1ece960b6 100644 --- a/programs/zstdcli.c +++ b/programs/zstdcli.c @@ -619,10 +619,14 @@ static int init_cLevel(void) { argNb++; \ if (argNb >= argCount) { \ DISPLAY("error: missing command argument \n"); \ - exit(1); \ + CLEAN_RETURN(1); \ } \ ptr = argv[argNb]; \ assert(ptr != NULL); \ + if (ptr[0]=='-') { \ + DISPLAY("error: command cannot be separated from its argument by another command \n"); \ + CLEAN_RETURN(1); \ + } \ } #define ZSTD_NB_STRATEGIES 9 diff --git a/tests/playTests.sh b/tests/playTests.sh index 359788754..b7bfa76cd 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -194,8 +194,6 @@ println "test : compress to named file" rm tmpCompressed zstd tmp -o tmpCompressed test -f tmpCompressed # file must be created -println "test : -o must be followed by filename (must fail)" -zstd tmp -of tmpCompressed && die "-o must be followed by filename " println "test : force write, correct order" zstd tmp -fo tmpCompressed println "test : forgotten argument" @@ -480,6 +478,11 @@ zstd -f --filelist=tmp_fileList test -f tmp2.zst test -f tmp1.zst +println "test : alternate syntax: --filelist FILE" +zstd -f --filelist tmp_fileList +test -f tmp2.zst +test -f tmp1.zst + println "test : reading file list from a symlink, --filelist=FILE" rm -f *.zst ln -s tmp_fileList tmp_symLink @@ -686,7 +689,7 @@ if [ "$stream_size" -gt "$file_size" ]; then die "hinted compression larger than expected" fi println "test : sized streaming compression and decompression" -cat tmp | zstd -14 -f tmp -o --stream-size=11000 tmp.zst +cat tmp | zstd -14 -f tmp -o tmp.zst --stream-size=11000 zstd -df tmp.zst -o tmp_decompress cmp tmp tmp_decompress || die "difference between original and decompressed file" println "test : incorrect stream size" @@ -783,8 +786,6 @@ println "- Compress without dictID" zstd -f tmp -D tmpDict1 --no-dictID zstd -d tmp.zst -D tmpDict -fo result $DIFF "$TESTFILE" result -println "- Compress with wrong argument order (must fail)" -zstd tmp -Df tmpDict1 -c > $INTOVOID && die "-D must be followed by dictionary name " println "- Compress multiple files with dictionary" rm -rf dirTestDict mkdir dirTestDict @@ -1304,17 +1305,20 @@ then zstd -f -vv --rsyncable --single-thread tmp && die "--rsyncable must fail with --single-thread" fi -println "\n===> patch-from tests" - +println "\n===> patch-from=origin tests" datagen -g1000 -P50 > tmp_dict datagen -g1000 -P10 > tmp_patch zstd --patch-from=tmp_dict tmp_patch -o tmp_patch_diff zstd -d --patch-from=tmp_dict tmp_patch_diff -o tmp_patch_recon $DIFF -s tmp_patch_recon tmp_patch + +println "\n===> alternate syntax: patch-from origin" +zstd -f --patch-from tmp_dict tmp_patch -o tmp_patch_diff +zstd -df --patch-from tmp_dict tmp_patch_diff -o tmp_patch_recon +$DIFF -s tmp_patch_recon tmp_patch rm -rf tmp_* println "\n===> patch-from recursive tests" - mkdir tmp_dir datagen > tmp_dir/tmp1 datagen > tmp_dir/tmp2 @@ -1323,7 +1327,6 @@ zstd --patch-from=tmp_dict -r tmp_dir && die rm -rf tmp* println "\n===> patch-from long mode trigger larger file test" - datagen -g5000000 > tmp_dict datagen -g5000000 > tmp_patch zstd -15 --patch-from=tmp_dict tmp_patch 2>&1 | grep "long mode automatically triggered"