]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
fuzzer tests more HC levels
authorYann Collet <yann.collet.73@gmail.com>
Sun, 8 Nov 2015 13:24:59 +0000 (14:24 +0100)
committerYann Collet <yann.collet.73@gmail.com>
Sun, 8 Nov 2015 13:24:59 +0000 (14:24 +0100)
programs/fuzzer.c

index 217c829296b9ca202fbf25e2b5ae9a1febec7743..ba402e71a34157ddb29218048fa0eb24b9ef5ab0 100644 (file)
@@ -297,7 +297,7 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit
     {
         size_t sampleSize, sampleStart;
         size_t cSize, dSize, dSupSize;
-        U32 sampleSizeLog, buffNb;
+        U32 sampleSizeLog, buffNb, cLevelMod;
         U64 crcOrig, crcDest;
         int cLevel;
 
@@ -328,13 +328,10 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit
         sampleStart = FUZ_rand(&lseed) % (srcBufferSize - sampleSize);
         crcOrig = XXH64(srcBuffer + sampleStart, sampleSize, 0);
 
-        /* compression test */
-        /* covered by HC cLevel 1
-        cSize = ZSTD_compressCCtx(ctx, cBuffer, cBufferSize, srcBuffer + sampleStart, sampleSize);
-        CHECK(ZSTD_isError(cSize), "ZSTD_compress failed"); */
-
         /* HC compression test */
-        cLevel = (FUZ_rand(&lseed) & 3) +1;
+#define MAX(a,b) ((a)>(b)?(a):(b))
+        cLevelMod = MAX(1, 38 - (int)(MAX(9, sampleSizeLog) * 2));   /* use high compression levels with small samples, for speed */
+        cLevel = (FUZ_rand(&lseed) % cLevelMod) +1;
         cSize = ZSTD_HC_compressCCtx(hcctx, cBuffer, cBufferSize, srcBuffer + sampleStart, sampleSize, cLevel);
         CHECK(ZSTD_isError(cSize), "ZSTD_HC_compressCCtx failed");