mirror of
https://github.com/facebook/zstd.git
synced 2025-08-08 17:22:10 +03:00
return error code when benchmark fails
such scenario can happen, for example, when trying a decompression-only benchmark on invalid data. Other possibilities include an allocation error in an intermediate step. So far, the benchmark would return immediately, but still return 0. On command line, this would be confusing, as the program appears successful (though it does not display any successful message). Now it returns !0, which can be interpreted as an error by command line.
This commit is contained in:
@@ -1370,7 +1370,7 @@ int main(int argCount, const char* argv[])
|
|||||||
benchParams.ldmFlag = ldmFlag;
|
benchParams.ldmFlag = ldmFlag;
|
||||||
benchParams.ldmMinMatch = (int)g_ldmMinMatch;
|
benchParams.ldmMinMatch = (int)g_ldmMinMatch;
|
||||||
benchParams.ldmHashLog = (int)g_ldmHashLog;
|
benchParams.ldmHashLog = (int)g_ldmHashLog;
|
||||||
benchParams.useRowMatchFinder = useRowMatchFinder;
|
benchParams.useRowMatchFinder = (int)useRowMatchFinder;
|
||||||
if (g_ldmBucketSizeLog != LDM_PARAM_DEFAULT) {
|
if (g_ldmBucketSizeLog != LDM_PARAM_DEFAULT) {
|
||||||
benchParams.ldmBucketSizeLog = (int)g_ldmBucketSizeLog;
|
benchParams.ldmBucketSizeLog = (int)g_ldmBucketSizeLog;
|
||||||
}
|
}
|
||||||
@@ -1391,15 +1391,18 @@ int main(int argCount, const char* argv[])
|
|||||||
int c;
|
int c;
|
||||||
DISPLAYLEVEL(3, "Benchmarking %s \n", filenames->fileNames[i]);
|
DISPLAYLEVEL(3, "Benchmarking %s \n", filenames->fileNames[i]);
|
||||||
for(c = cLevel; c <= cLevelLast; c++) {
|
for(c = cLevel; c <= cLevelLast; c++) {
|
||||||
BMK_benchFilesAdvanced(&filenames->fileNames[i], 1, dictFileName, c, &compressionParams, g_displayLevel, &benchParams);
|
BMK_benchOutcome_t const bo = BMK_benchFilesAdvanced(&filenames->fileNames[i], 1, dictFileName, c, &compressionParams, g_displayLevel, &benchParams);
|
||||||
|
if (!BMK_isSuccessful_benchOutcome(bo)) return 1;
|
||||||
} }
|
} }
|
||||||
} else {
|
} else {
|
||||||
for(; cLevel <= cLevelLast; cLevel++) {
|
for(; cLevel <= cLevelLast; cLevel++) {
|
||||||
BMK_benchFilesAdvanced(filenames->fileNames, (unsigned)filenames->tableSize, dictFileName, cLevel, &compressionParams, g_displayLevel, &benchParams);
|
BMK_benchOutcome_t const bo = BMK_benchFilesAdvanced(filenames->fileNames, (unsigned)filenames->tableSize, dictFileName, cLevel, &compressionParams, g_displayLevel, &benchParams);
|
||||||
|
if (!BMK_isSuccessful_benchOutcome(bo)) return 1;
|
||||||
} }
|
} }
|
||||||
} else {
|
} else {
|
||||||
for(; cLevel <= cLevelLast; cLevel++) {
|
for(; cLevel <= cLevelLast; cLevel++) {
|
||||||
BMK_syntheticTest(cLevel, compressibility, &compressionParams, g_displayLevel, &benchParams);
|
BMK_benchOutcome_t const bo = BMK_syntheticTest(cLevel, compressibility, &compressionParams, g_displayLevel, &benchParams);
|
||||||
|
if (!BMK_isSuccessful_benchOutcome(bo)) return 1;
|
||||||
} }
|
} }
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@@ -1545,7 +1548,7 @@ int main(int argCount, const char* argv[])
|
|||||||
if (g_ldmBucketSizeLog != LDM_PARAM_DEFAULT) FIO_setLdmBucketSizeLog(prefs, (int)g_ldmBucketSizeLog);
|
if (g_ldmBucketSizeLog != LDM_PARAM_DEFAULT) FIO_setLdmBucketSizeLog(prefs, (int)g_ldmBucketSizeLog);
|
||||||
if (g_ldmHashRateLog != LDM_PARAM_DEFAULT) FIO_setLdmHashRateLog(prefs, (int)g_ldmHashRateLog);
|
if (g_ldmHashRateLog != LDM_PARAM_DEFAULT) FIO_setLdmHashRateLog(prefs, (int)g_ldmHashRateLog);
|
||||||
FIO_setAdaptiveMode(prefs, adapt);
|
FIO_setAdaptiveMode(prefs, adapt);
|
||||||
FIO_setUseRowMatchFinder(prefs, useRowMatchFinder);
|
FIO_setUseRowMatchFinder(prefs, (int)useRowMatchFinder);
|
||||||
FIO_setAdaptMin(prefs, adaptMin);
|
FIO_setAdaptMin(prefs, adaptMin);
|
||||||
FIO_setAdaptMax(prefs, adaptMax);
|
FIO_setAdaptMax(prefs, adaptMax);
|
||||||
FIO_setRsyncable(prefs, rsyncable);
|
FIO_setRsyncable(prefs, rsyncable);
|
||||||
|
@@ -1217,6 +1217,8 @@ zstd -rqi0b1e2 tmp1
|
|||||||
println "benchmark decompression only"
|
println "benchmark decompression only"
|
||||||
zstd -f tmp1
|
zstd -f tmp1
|
||||||
zstd -b -d -i0 tmp1.zst
|
zstd -b -d -i0 tmp1.zst
|
||||||
|
println "benchmark can fail - decompression on invalid data"
|
||||||
|
zstd -b -d -i0 tmp1 && die "invalid .zst data => benchmark should have failed"
|
||||||
|
|
||||||
GZIPMODE=1
|
GZIPMODE=1
|
||||||
zstd --format=gzip -V || GZIPMODE=0
|
zstd --format=gzip -V || GZIPMODE=0
|
||||||
|
Reference in New Issue
Block a user