]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
added tests for newly enabled syntax
authorYann Collet <cyan@fb.com>
Fri, 17 Jul 2020 20:31:15 +0000 (13:31 -0700)
committerYann Collet <cyan@fb.com>
Fri, 17 Jul 2020 20:31:15 +0000 (13:31 -0700)
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

programs/zstdcli.c
tests/playTests.sh

index b5cf2598d9bd1595242cbb6bb59fd9cf28cb9ccc..1ece960b6ca89f3ea4ea6c29a55724dbd1e5a8c6 100644 (file)
@@ -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
index 3597887541add58de82d9ff26392517ff8bd50ad..b7bfa76cde95ab91b28a21684e2eccb35c92ea40 100755 (executable)
@@ -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"