Fix-progress-flag-to-properly-control-progress-display-and-default
This commit is contained in:
parent
bc1fb84e86
commit
9aa0812b9f
@ -0,0 +1,98 @@
|
|||||||
|
From d2f31b662779f3c13871d54868e9d5839343856d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Binh Vo <binhvo@fb.com>
|
||||||
|
Date: Mon, 7 Jun 2021 11:50:22 -0400
|
||||||
|
Subject: [PATCH 0726/1000] Fix --progress flag to properly control progress
|
||||||
|
display and default progress display on when using -v
|
||||||
|
|
||||||
|
---
|
||||||
|
programs/fileio.c | 33 ++++++++++++++++-----------------
|
||||||
|
tests/playTests.sh | 6 +++++-
|
||||||
|
2 files changed, 21 insertions(+), 18 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/programs/fileio.c b/programs/fileio.c
|
||||||
|
index 5693ac39..a67c0fbf 100644
|
||||||
|
--- a/programs/fileio.c
|
||||||
|
+++ b/programs/fileio.c
|
||||||
|
@@ -2155,6 +2155,7 @@ FIO_decompressZstdFrame(FIO_ctx_t* const fCtx, dRess_t* ress, FILE* finput,
|
||||||
|
ZSTD_inBuffer inBuff = { ress->srcBuffer, ress->srcBufferLoaded, 0 };
|
||||||
|
ZSTD_outBuffer outBuff= { ress->dstBuffer, ress->dstBufferSize, 0 };
|
||||||
|
size_t const readSizeHint = ZSTD_decompressStream(ress->dctx, &outBuff, &inBuff);
|
||||||
|
+ const int displayLevel = (!fCtx->hasStdoutOutput || g_display_prefs.progressSetting == FIO_ps_always) ? 1 : 2;
|
||||||
|
if (ZSTD_isError(readSizeHint)) {
|
||||||
|
DISPLAYLEVEL(1, "%s : Decoding error (36) : %s \n",
|
||||||
|
srcFileName, ZSTD_getErrorName(readSizeHint));
|
||||||
|
@@ -2165,21 +2166,19 @@ FIO_decompressZstdFrame(FIO_ctx_t* const fCtx, dRess_t* ress, FILE* finput,
|
||||||
|
/* Write block */
|
||||||
|
storedSkips = FIO_fwriteSparse(ress->dstFile, ress->dstBuffer, outBuff.pos, prefs, storedSkips);
|
||||||
|
frameSize += outBuff.pos;
|
||||||
|
- if (!fCtx->hasStdoutOutput || g_display_prefs.progressSetting == FIO_ps_always) {
|
||||||
|
- if (fCtx->nbFilesTotal > 1) {
|
||||||
|
- size_t srcFileNameSize = strlen(srcFileName);
|
||||||
|
- if (srcFileNameSize > 18) {
|
||||||
|
- const char* truncatedSrcFileName = srcFileName + srcFileNameSize - 15;
|
||||||
|
- DISPLAYUPDATE(2, "\rDecompress: %2u/%2u files. Current: ...%s : %u MB... ",
|
||||||
|
- fCtx->currFileIdx+1, fCtx->nbFilesTotal, truncatedSrcFileName, (unsigned)((alreadyDecoded+frameSize)>>20) );
|
||||||
|
- } else {
|
||||||
|
- DISPLAYUPDATE(2, "\rDecompress: %2u/%2u files. Current: %s : %u MB... ",
|
||||||
|
- fCtx->currFileIdx+1, fCtx->nbFilesTotal, srcFileName, (unsigned)((alreadyDecoded+frameSize)>>20) );
|
||||||
|
- }
|
||||||
|
+ if (fCtx->nbFilesTotal > 1) {
|
||||||
|
+ size_t srcFileNameSize = strlen(srcFileName);
|
||||||
|
+ if (srcFileNameSize > 18) {
|
||||||
|
+ const char* truncatedSrcFileName = srcFileName + srcFileNameSize - 15;
|
||||||
|
+ DISPLAYUPDATE(displayLevel, "\rDecompress: %2u/%2u files. Current: ...%s : %u MB... ",
|
||||||
|
+ fCtx->currFileIdx+1, fCtx->nbFilesTotal, truncatedSrcFileName, (unsigned)((alreadyDecoded+frameSize)>>20) );
|
||||||
|
} else {
|
||||||
|
- DISPLAYUPDATE(2, "\r%-20.20s : %u MB... ",
|
||||||
|
- srcFileName, (unsigned)((alreadyDecoded+frameSize)>>20) );
|
||||||
|
+ DISPLAYUPDATE(displayLevel, "\rDecompress: %2u/%2u files. Current: %s : %u MB... ",
|
||||||
|
+ fCtx->currFileIdx+1, fCtx->nbFilesTotal, srcFileName, (unsigned)((alreadyDecoded+frameSize)>>20) );
|
||||||
|
}
|
||||||
|
+ } else {
|
||||||
|
+ DISPLAYUPDATE(displayLevel, "\r%-20.20s : %u MB... ",
|
||||||
|
+ srcFileName, (unsigned)((alreadyDecoded+frameSize)>>20) );
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inBuff.pos > 0) {
|
||||||
|
@@ -2513,10 +2512,10 @@ static int FIO_decompressFrames(FIO_ctx_t* const fCtx,
|
||||||
|
fCtx->totalBytesOutput += (size_t)filesize;
|
||||||
|
DISPLAYLEVEL(2, "\r%79s\r", "");
|
||||||
|
/* No status message in pipe mode (stdin - stdout) or multi-files mode */
|
||||||
|
- if (g_display_prefs.displayLevel >= 2) {
|
||||||
|
- if (fCtx->nbFilesTotal <= 1 || g_display_prefs.displayLevel >= 3) {
|
||||||
|
- DISPLAYLEVEL(2, "%-20s: %llu bytes \n", srcFileName, filesize);
|
||||||
|
- }
|
||||||
|
+ if ((g_display_prefs.displayLevel >= 2 && fCtx->nbFilesTotal <= 1) ||
|
||||||
|
+ g_display_prefs.displayLevel >= 3 ||
|
||||||
|
+ g_display_prefs.progressSetting == FIO_ps_always) {
|
||||||
|
+ DISPLAYLEVEL(1, "\r%-20s: %llu bytes \n", srcFileName, filesize);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
diff --git a/tests/playTests.sh b/tests/playTests.sh
|
||||||
|
index f57f61f3..25293900 100755
|
||||||
|
--- a/tests/playTests.sh
|
||||||
|
+++ b/tests/playTests.sh
|
||||||
|
@@ -263,6 +263,10 @@ zstd -q -f tmpro
|
||||||
|
println "test: --no-progress flag"
|
||||||
|
zstd tmpro -c --no-progress | zstd -d -f -o "$INTOVOID" --no-progress
|
||||||
|
zstd tmpro -cv --no-progress | zstd -dv -f -o "$INTOVOID" --no-progress
|
||||||
|
+println "test: --progress flag"
|
||||||
|
+zstd tmpro -c | zstd -d -f -o "$INTOVOID" --progress 2>&1 | grep -E "[A-Za-z0-9._ ]+: [0-9]+ bytes"
|
||||||
|
+zstd tmpro -c | zstd -d -f -q -o "$INTOVOID" --progress 2>&1 | grep -E "[A-Za-z0-9._ ]+: [0-9]+ bytes"
|
||||||
|
+zstd tmpro -c | zstd -d -f -v -o "$INTOVOID" 2>&1 | grep -E "[A-Za-z0-9._ ]+: [0-9]+ bytes"
|
||||||
|
rm -f tmpro tmpro.zst
|
||||||
|
println "test: overwrite input file (must fail)"
|
||||||
|
zstd tmp -fo tmp && die "zstd compression overwrote the input file"
|
||||||
|
@@ -1612,7 +1616,7 @@ roundTripTest -g600M -P50 "1 --single-thread --long --zstd=wlog=29,clog=28"
|
||||||
|
|
||||||
|
if [ -n "$hasMT" ]
|
||||||
|
then
|
||||||
|
- println "\n===> zstdmt long round-trip tests "
|
||||||
|
+ println "\n===> zstdmt long round-trip tests "
|
||||||
|
roundTripTest -g80000000 -P99 "19 -T2" " "
|
||||||
|
roundTripTest -g5000000000 -P99 "1 -T2" " "
|
||||||
|
roundTripTest -g500000000 -P97 "1 -T999" " "
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Name: zstd
|
Name: zstd
|
||||||
Version: 1.5.0
|
Version: 1.5.0
|
||||||
Release: 13
|
Release: 14
|
||||||
Summary: A fast lossless compression algorithm
|
Summary: A fast lossless compression algorithm
|
||||||
License: BSD and GPLv2
|
License: BSD and GPLv2
|
||||||
URL: https://github.com/facebook/zstd
|
URL: https://github.com/facebook/zstd
|
||||||
@ -18,6 +18,7 @@ Patch7: patch-7-add-test-case.patch
|
|||||||
Patch8: patch-8-fix-extra-newline-gets-printes-out-when-compressing-multiple-files.patch
|
Patch8: patch-8-fix-extra-newline-gets-printes-out-when-compressing-multiple-files.patch
|
||||||
Patch9: patch-9-add-test-c-result-print.patch
|
Patch9: patch-9-add-test-c-result-print.patch
|
||||||
Patch10: backport-zstd-1.5.0-patch-10-fix-entropy-repeat-mode-bug.patch
|
Patch10: backport-zstd-1.5.0-patch-10-fix-entropy-repeat-mode-bug.patch
|
||||||
|
Patch11: backport-zstd-1.5.0-patch-11-Fix-progress-flag-to-properly-control-progress-display-and-default.patch
|
||||||
|
|
||||||
BuildRequires: gtest-devel gcc-c++ pkg-config
|
BuildRequires: gtest-devel gcc-c++ pkg-config
|
||||||
|
|
||||||
@ -96,6 +97,9 @@ install -D -m644 programs/zstd.1 %{buildroot}%{_mandir}/man1/pzstd.1
|
|||||||
%{_mandir}/man1/*.1*
|
%{_mandir}/man1/*.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Dec 14 2021 zhangxiao <zhangxiao131@huawei.com> - 1.5.0.14
|
||||||
|
* Fix progress flag to properly control progress display and default
|
||||||
|
|
||||||
* Mon Dec 13 2021 zhangxiao <zhangxiao131@huawei.com> - 1.5.0.13
|
* Mon Dec 13 2021 zhangxiao <zhangxiao131@huawei.com> - 1.5.0.13
|
||||||
* fix entropy repeat mode bug
|
* fix entropy repeat mode bug
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user