change logic when stderr is not console : don't update progress status

but keep warnings and final operation statement.

updated tests/cli-tests/ accordingly
This commit is contained in:
Yann Collet 2023-01-26 11:43:27 -08:00
parent 3c215220e3
commit 82ca00811a
10 changed files with 83 additions and 66 deletions

View File

@ -1500,9 +1500,8 @@ int main(int argCount, const char* argv[])
hasStdout = outFileName && !strcmp(outFileName,stdoutmark); hasStdout = outFileName && !strcmp(outFileName,stdoutmark);
if (hasStdout && (g_displayLevel==2)) g_displayLevel=1; if (hasStdout && (g_displayLevel==2)) g_displayLevel=1;
/* when stderr is not the console, do not pollute it with status updates /* when stderr is not the console, do not pollute it with progress updates (unless requested) */
* Note : the below code actually also silence more stuff, including completion report. */ if (!UTIL_isConsole(stderr) && (progress!=FIO_ps_always)) progress=FIO_ps_never;
if (!UTIL_isConsole(stderr) && (g_displayLevel==2)) g_displayLevel=1;
FIO_setProgressSetting(progress); FIO_setProgressSetting(progress);
/* don't remove source files when output is stdout */; /* don't remove source files when output is stdout */;

View File

@ -15,25 +15,25 @@ zstd --memory=32asbdf file && die "Should not allow bogus suffix"
println "+ zstd --memory=hello file" println "+ zstd --memory=hello file"
zstd --memory=hello file && die "Should not allow non-numeric parameter" zstd --memory=hello file && die "Should not allow non-numeric parameter"
println "+ zstd --memory=1 file" println "+ zstd --memory=1 file"
zstd --memory=1 file && die "Should allow numeric parameter without suffix" zstd -q --memory=1 file && die "Should allow numeric parameter without suffix"
rm file.zst rm file.zst
println "+ zstd --memory=1K file" println "+ zstd --memory=1K file"
zstd --memory=1K file && die "Should allow numeric parameter with expected suffix" zstd -q --memory=1K file && die "Should allow numeric parameter with expected suffix"
rm file.zst rm file.zst
println "+ zstd --memory=1KB file" println "+ zstd --memory=1KB file"
zstd --memory=1KB file && die "Should allow numeric parameter with expected suffix" zstd -q --memory=1KB file && die "Should allow numeric parameter with expected suffix"
rm file.zst rm file.zst
println "+ zstd --memory=1KiB file" println "+ zstd --memory=1KiB file"
zstd --memory=1KiB file && die "Should allow numeric parameter with expected suffix" zstd -q --memory=1KiB file && die "Should allow numeric parameter with expected suffix"
rm file.zst rm file.zst
println "+ zstd --memory=1M file" println "+ zstd --memory=1M file"
zstd --memory=1M file && die "Should allow numeric parameter with expected suffix" zstd -q --memory=1M file && die "Should allow numeric parameter with expected suffix"
rm file.zst rm file.zst
println "+ zstd --memory=1MB file" println "+ zstd --memory=1MB file"
zstd --memory=1MB file && die "Should allow numeric parameter with expected suffix" zstd -q --memory=1MB file && die "Should allow numeric parameter with expected suffix"
rm file.zst rm file.zst
println "+ zstd --memory=1MiB file" println "+ zstd --memory=1MiB file"
zstd --memory=1MiB file && die "Should allow numeric parameter with expected suffix" zstd -q --memory=1MiB file && die "Should allow numeric parameter with expected suffix"
rm file.zst rm file.zst
rm file rm file

View File

@ -6,10 +6,10 @@ set -v
datagen > file datagen > file
# Compress with various levels and ensure that their sizes are ordered # Compress with various levels and ensure that their sizes are ordered
zstd --fast=10 file -o file-f10.zst zstd --fast=10 file -o file-f10.zst -q
zstd --fast=1 file -o file-f1.zst zstd --fast=1 file -o file-f1.zst -q
zstd -1 file -o file-1.zst zstd -1 file -o file-1.zst -q
zstd -19 file -o file-19.zst zstd -19 file -o file-19.zst -q
zstd -t file-f10.zst file-f1.zst file-1.zst file-19.zst zstd -t file-f10.zst file-f1.zst file-1.zst file-19.zst
@ -18,15 +18,15 @@ cmp_size -lt file-1.zst file-f1.zst
cmp_size -lt file-f1.zst file-f10.zst cmp_size -lt file-f1.zst file-f10.zst
# Test default levels # Test default levels
zstd --fast file -f zstd --fast file -f -q
cmp file.zst file-f1.zst || die "--fast is not level -1" cmp file.zst file-f1.zst || die "--fast is not level -1"
zstd -0 file -o file-0.zst zstd -0 file -o file-0.zst -q
zstd -f file zstd -f file -q
cmp file.zst file-0.zst || die "Level 0 is not the default level" cmp file.zst file-0.zst || die "Level 0 is not the default level"
# Test level clamping # Test level clamping
zstd -99 file -o file-99.zst zstd -99 file -o file-99.zst -q
cmp file-19.zst file-99.zst || die "Level 99 is clamped to 19" cmp file-19.zst file-99.zst || die "Level 99 is clamped to 19"
zstd --fast=200000 file -c | zstd -t zstd --fast=200000 file -c | zstd -t
@ -34,10 +34,10 @@ zstd -5000000000 -f file && die "Level too large, must fail" ||:
zstd --fast=5000000000 -f file && die "Level too large, must fail" ||: zstd --fast=5000000000 -f file && die "Level too large, must fail" ||:
# Test setting a level through the environment variable # Test setting a level through the environment variable
ZSTD_CLEVEL=-10 zstd file -o file-f10-env.zst ZSTD_CLEVEL=-10 zstd file -o file-f10-env.zst -q
ZSTD_CLEVEL=1 zstd file -o file-1-env.zst ZSTD_CLEVEL=1 zstd file -o file-1-env.zst -q
ZSTD_CLEVEL=+19 zstd file -o file-19-env.zst ZSTD_CLEVEL=+19 zstd file -o file-19-env.zst -q
ZSTD_CLEVEL=+99 zstd file -o file-99-env.zst ZSTD_CLEVEL=+99 zstd file -o file-99-env.zst -q
cmp file-f10.zst file-f10-env.zst || die "Environment variable failed to set level" cmp file-f10.zst file-f10-env.zst || die "Environment variable failed to set level"
cmp file-1.zst file-1-env.zst || die "Environment variable failed to set level" cmp file-1.zst file-1-env.zst || die "Environment variable failed to set level"
@ -45,18 +45,18 @@ cmp file-19.zst file-19-env.zst || die "Environment variable failed to set level
cmp file-99.zst file-99-env.zst || die "Environment variable failed to set level" cmp file-99.zst file-99-env.zst || die "Environment variable failed to set level"
# Test invalid environment clevel is the default level # Test invalid environment clevel is the default level
zstd -f file zstd -f file -q
ZSTD_CLEVEL=- zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=- zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
ZSTD_CLEVEL=+ zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=+ zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
ZSTD_CLEVEL=a zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=a zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
ZSTD_CLEVEL=-a zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=-a zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
ZSTD_CLEVEL=+a zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=+a zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
ZSTD_CLEVEL=3a7 zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=3a7 zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
ZSTD_CLEVEL=5000000000 zstd -f file -o file-env.zst; cmp file.zst file-env.zst ZSTD_CLEVEL=5000000000 zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
# Test environment clevel is overridden by command line # Test environment clevel is overridden by command line
ZSTD_CLEVEL=10 zstd -f file -1 -o file-1-env.zst ZSTD_CLEVEL=10 zstd -f file -1 -o file-1-env.zst -q
ZSTD_CLEVEL=10 zstd -f file --fast=1 -o file-f1-env.zst ZSTD_CLEVEL=10 zstd -f file --fast=1 -o file-f1-env.zst -q
cmp file-1.zst file-1-env.zst || die "Environment variable not overridden" cmp file-1.zst file-1-env.zst || die "Environment variable not overridden"
cmp file-f1.zst file-f1-env.zst || die "Environment variable not overridden" cmp file-f1.zst file-f1-env.zst || die "Environment variable not overridden"

View File

@ -2,30 +2,31 @@
datagen > file datagen > file
# Compress with various levels and ensure that their sizes are ordered # Compress with various levels and ensure that their sizes are ordered
zstd --fast=10 file -o file-f10.zst zstd --fast=10 file -o file-f10.zst -q
zstd --fast=1 file -o file-f1.zst zstd --fast=1 file -o file-f1.zst -q
zstd -1 file -o file-1.zst zstd -1 file -o file-1.zst -q
zstd -19 file -o file-19.zst zstd -19 file -o file-19.zst -q
zstd -t file-f10.zst file-f1.zst file-1.zst file-19.zst zstd -t file-f10.zst file-f1.zst file-1.zst file-19.zst
4 files decompressed : 262148 bytes total
cmp_size -lt file-19.zst file-1.zst cmp_size -lt file-19.zst file-1.zst
cmp_size -lt file-1.zst file-f1.zst cmp_size -lt file-1.zst file-f1.zst
cmp_size -lt file-f1.zst file-f10.zst cmp_size -lt file-f1.zst file-f10.zst
# Test default levels # Test default levels
zstd --fast file -f zstd --fast file -f -q
cmp file.zst file-f1.zst || die "--fast is not level -1" cmp file.zst file-f1.zst || die "--fast is not level -1"
zstd -0 file -o file-0.zst zstd -0 file -o file-0.zst -q
zstd -f file zstd -f file -q
cmp file.zst file-0.zst || die "Level 0 is not the default level" cmp file.zst file-0.zst || die "Level 0 is not the default level"
# Test level clamping # Test level clamping
zstd -99 file -o file-99.zst zstd -99 file -o file-99.zst -q
Warning : compression level higher than max, reduced to 19
cmp file-19.zst file-99.zst || die "Level 99 is clamped to 19" cmp file-19.zst file-99.zst || die "Level 99 is clamped to 19"
zstd --fast=200000 file -c | zstd -t zstd --fast=200000 file -c | zstd -t
/*stdin*\ : 65537 bytes
zstd -5000000000 -f file && die "Level too large, must fail" ||: zstd -5000000000 -f file && die "Level too large, must fail" ||:
error: numeric value overflows 32-bit unsigned int error: numeric value overflows 32-bit unsigned int
@ -33,11 +34,10 @@ zstd --fast=5000000000 -f file && die "Level too large, must fail" ||:
error: numeric value overflows 32-bit unsigned int error: numeric value overflows 32-bit unsigned int
# Test setting a level through the environment variable # Test setting a level through the environment variable
ZSTD_CLEVEL=-10 zstd file -o file-f10-env.zst ZSTD_CLEVEL=-10 zstd file -o file-f10-env.zst -q
ZSTD_CLEVEL=1 zstd file -o file-1-env.zst ZSTD_CLEVEL=1 zstd file -o file-1-env.zst -q
ZSTD_CLEVEL=+19 zstd file -o file-19-env.zst ZSTD_CLEVEL=+19 zstd file -o file-19-env.zst -q
ZSTD_CLEVEL=+99 zstd file -o file-99-env.zst ZSTD_CLEVEL=+99 zstd file -o file-99-env.zst -q
Warning : compression level higher than max, reduced to 19
cmp file-f10.zst file-f10-env.zst || die "Environment variable failed to set level" cmp file-f10.zst file-f10-env.zst || die "Environment variable failed to set level"
cmp file-1.zst file-1-env.zst || die "Environment variable failed to set level" cmp file-1.zst file-1-env.zst || die "Environment variable failed to set level"
@ -45,25 +45,25 @@ cmp file-19.zst file-19-env.zst || die "Environment variable failed to set level
cmp file-99.zst file-99-env.zst || die "Environment variable failed to set level" cmp file-99.zst file-99-env.zst || die "Environment variable failed to set level"
# Test invalid environment clevel is the default level # Test invalid environment clevel is the default level
zstd -f file zstd -f file -q
ZSTD_CLEVEL=- zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=- zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
Ignore environment variable setting ZSTD_CLEVEL=-: not a valid integer value Ignore environment variable setting ZSTD_CLEVEL=-: not a valid integer value
ZSTD_CLEVEL=+ zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=+ zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
Ignore environment variable setting ZSTD_CLEVEL=+: not a valid integer value Ignore environment variable setting ZSTD_CLEVEL=+: not a valid integer value
ZSTD_CLEVEL=a zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=a zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
Ignore environment variable setting ZSTD_CLEVEL=a: not a valid integer value Ignore environment variable setting ZSTD_CLEVEL=a: not a valid integer value
ZSTD_CLEVEL=-a zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=-a zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
Ignore environment variable setting ZSTD_CLEVEL=-a: not a valid integer value Ignore environment variable setting ZSTD_CLEVEL=-a: not a valid integer value
ZSTD_CLEVEL=+a zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=+a zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
Ignore environment variable setting ZSTD_CLEVEL=+a: not a valid integer value Ignore environment variable setting ZSTD_CLEVEL=+a: not a valid integer value
ZSTD_CLEVEL=3a7 zstd -f file -o file-env.zst ; cmp file.zst file-env.zst ZSTD_CLEVEL=3a7 zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
Ignore environment variable setting ZSTD_CLEVEL=3a7: not a valid integer value Ignore environment variable setting ZSTD_CLEVEL=3a7: not a valid integer value
ZSTD_CLEVEL=5000000000 zstd -f file -o file-env.zst; cmp file.zst file-env.zst ZSTD_CLEVEL=5000000000 zstd -f file -o file-env.zst -q ; cmp file.zst file-env.zst
Ignore environment variable setting ZSTD_CLEVEL=5000000000: numeric value too large Ignore environment variable setting ZSTD_CLEVEL=5000000000: numeric value too large
# Test environment clevel is overridden by command line # Test environment clevel is overridden by command line
ZSTD_CLEVEL=10 zstd -f file -1 -o file-1-env.zst ZSTD_CLEVEL=10 zstd -f file -1 -o file-1-env.zst -q
ZSTD_CLEVEL=10 zstd -f file --fast=1 -o file-f1-env.zst ZSTD_CLEVEL=10 zstd -f file --fast=1 -o file-f1-env.zst -q
cmp file-1.zst file-1-env.zst || die "Environment variable not overridden" cmp file-1.zst file-1-env.zst || die "Environment variable not overridden"
cmp file-f1.zst file-f1-env.zst || die "Environment variable not overridden" cmp file-f1.zst file-f1-env.zst || die "Environment variable not overridden"

View File

@ -3,13 +3,13 @@
set -e set -e
# Test multi-threaded flags # Test multi-threaded flags
zstd --single-thread file -f ; zstd -t file.zst zstd --single-thread file -f -q ; zstd -t file.zst
zstd -T2 -f file ; zstd -t file.zst zstd -T2 -f file -q ; zstd -t file.zst
zstd --rsyncable -f file ; zstd -t file.zst zstd --rsyncable -f file -q ; zstd -t file.zst
zstd -T0 -f file ; zstd -t file.zst zstd -T0 -f file -q ; zstd -t file.zst
zstd -T0 --auto-threads=logical -f file ; zstd -t file.zst zstd -T0 --auto-threads=logical -f file -q ; zstd -t file.zst
zstd -T0 --auto-threads=physical -f file; zstd -t file.zst zstd -T0 --auto-threads=physical -f file -q ; zstd -t file.zst
# multi-thread decompression warning test # multi-thread decompression warning test
zstd -T0 -f file ; zstd -t file.zst; zstd -T0 -d file.zst -o file3 zstd -T0 -f file -q ; zstd -t file.zst; zstd -T0 -d file.zst -o file3
zstd -T0 -f file ; zstd -t file.zst; zstd -T2 -d file.zst -o file4 zstd -T0 -f file -q ; zstd -t file.zst; zstd -T2 -d file.zst -o file4

View File

@ -1 +1,11 @@
file.zst : 65537 bytes
file.zst : 65537 bytes
file.zst : 65537 bytes
file.zst : 65537 bytes
file.zst : 65537 bytes
file.zst : 65537 bytes
file.zst : 65537 bytes
file.zst : 65537 bytes
file.zst : 65537 bytes
Warning : decompression does not support multi-threading Warning : decompression does not support multi-threading
file.zst : 65537 bytes

View File

@ -1,3 +1,4 @@
file :230.00% ( 10 B => 23 B, file.zst)
zstd: file: unsupported format zstd: file: unsupported format
zstd: file: unsupported format zstd: file: unsupported format
zstd: file: unsupported format zstd: file: unsupported format

View File

@ -23,7 +23,7 @@ if [ false ]; then
fi fi
set -v set -v
zstd files/0 -D dicts/0 zstd files/0 -D dicts/0 -q
zstd -t files/0.zst -D dicts/0 zstd -t files/0.zst -D dicts/0
zstd -t files/0.zst -D dicts/1 && die "Must fail" ||: zstd -t files/0.zst -D dicts/1 && die "Must fail" ||:
zstd -t files/0.zst && die "Must fail" ||: zstd -t files/0.zst && die "Must fail" ||:

View File

@ -1,5 +1,6 @@
zstd files/0 -D dicts/0 zstd files/0 -D dicts/0 -q
zstd -t files/0.zst -D dicts/0 zstd -t files/0.zst -D dicts/0
files/0.zst : 1000 bytes
zstd -t files/0.zst -D dicts/1 && die "Must fail" ||: zstd -t files/0.zst -D dicts/1 && die "Must fail" ||:
files/0.zst : Decoding error (36) : Dictionary mismatch files/0.zst : Decoding error (36) : Dictionary mismatch
zstd -t files/0.zst && die "Must fail" ||: zstd -t files/0.zst && die "Must fail" ||:

View File

@ -1,15 +1,21 @@
Tests cases where progress information should not be printed Tests cases where progress information should not be printed
args = args =
compress file to file compress file to file
hello*hello.zst*
compress pipe to pipe compress pipe to pipe
compress pipe to file compress pipe to file
*stdin*hello.zst*
compress file to pipe compress file to pipe
compress 2 files compress 2 files
2 files compressed*
decompress file to file decompress file to file
hello.zst*
decompress pipe to pipe decompress pipe to pipe
decompress pipe to file decompress pipe to file
*stdin*
decompress file to pipe decompress file to pipe
decompress 2 files decompress 2 files
2 files decompressed*
args = --fake-stderr-is-console -q args = --fake-stderr-is-console -q
compress file to file compress file to file