From: Paul Cruz Date: Tue, 20 Jun 2017 18:07:38 +0000 (-0700) Subject: made changes to accommodate single file use case X-Git-Tag: v1.3.0~1^2~15^2~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0034129270e6d48d2b02336bb57043cb77366787;p=thirdparty%2Fzstd.git made changes to accommodate single file use case --- diff --git a/tests/decodecorpus.c b/tests/decodecorpus.c index 0e6630cd1..09710c379 100644 --- a/tests/decodecorpus.c +++ b/tests/decodecorpus.c @@ -1505,17 +1505,22 @@ static int generateCorpusWithDict(U32 seed, unsigned numFiles, const char* const } /* write out dictionary */ - if (snprintf(outPath, MAX_PATH, "%s/dictionary", path) + 1 > MAX_PATH) { - DISPLAY("Error: dictionary path too long\n"); - errorDetected = 1; - goto dictCleanup; + if (numFiles != 0) { + if (snprintf(outPath, MAX_PATH, "%s/dictionary", path) + 1 > MAX_PATH) { + DISPLAY("Error: dictionary path too long\n"); + errorDetected = 1; + goto dictCleanup; + } + outputBuffer(fullDict, dictSize, outPath); + } + else { + outputBuffer(fullDict, dictSize, "dictionary"); } - outputBuffer(fullDict, dictSize, outPath); /* generate random compressed/decompressed files */ { unsigned fnum; - for (fnum = 0; fnum < numFiles; fnum++) { + for (fnum = 0; fnum < MAX(numFiles, 1); fnum++) { frame_t fr; DISPLAYUPDATE("\r%u/%u ", fnum, numFiles); { @@ -1524,20 +1529,29 @@ static int generateCorpusWithDict(U32 seed, unsigned numFiles, const char* const dictInfo const info = initDictInfo(1, dictContentSize, dictContent, dictID); seed = generateFrame(seed, &fr, info); } - if (snprintf(outPath, MAX_PATH, "%s/z%06u.zst", path, fnum) + 1 > MAX_PATH) { - DISPLAY("Error: path too long\n"); - errorDetected = 1; - goto dictCleanup; - } - outputBuffer(fr.dataStart, (BYTE*)fr.data - (BYTE*)fr.dataStart, outPath); - if (origPath) { - if (snprintf(outPath, MAX_PATH, "%s/z%06u", origPath, fnum) + 1 > MAX_PATH) { + if (numFiles != 0) { + if (snprintf(outPath, MAX_PATH, "%s/z%06u.zst", path, fnum) + 1 > MAX_PATH) { DISPLAY("Error: path too long\n"); errorDetected = 1; goto dictCleanup; } - outputBuffer(fr.srcStart, (BYTE*)fr.src - (BYTE*)fr.srcStart, outPath); + outputBuffer(fr.dataStart, (BYTE*)fr.data - (BYTE*)fr.dataStart, outPath); + + if (origPath) { + if (snprintf(outPath, MAX_PATH, "%s/z%06u", origPath, fnum) + 1 > MAX_PATH) { + DISPLAY("Error: path too long\n"); + errorDetected = 1; + goto dictCleanup; + } + outputBuffer(fr.srcStart, (BYTE*)fr.src - (BYTE*)fr.srcStart, outPath); + } + } + else { + outputBuffer(fr.dataStart, (BYTE*)fr.data - (BYTE*)fr.dataStart, path); + if (origPath) { + outputBuffer(fr.srcStart, (BYTE*)fr.src - (BYTE*)fr.srcStart, origPath); + } } } } @@ -1707,7 +1721,6 @@ int main(int argc, char** argv) return generateCorpus(seed, numFiles, path, origPath); } else { /* should generate files with a dictionary */ - numFiles = (numFiles == 0) ? 1 : numFiles; return generateCorpusWithDict(seed, numFiles, path, origPath, dictSize); }