From: Yann Collet Date: Fri, 4 Dec 2015 16:25:26 +0000 (+0100) Subject: time-limited fuzzer tests X-Git-Tag: v0.4.3^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=553cf6a926434d90be23fc2ccb373f7ce201b5c2;p=thirdparty%2Fzstd.git time-limited fuzzer tests --- diff --git a/programs/fuzzer.c b/programs/fuzzer.c index 62f58f10a..d108ff976 100644 --- a/programs/fuzzer.c +++ b/programs/fuzzer.c @@ -79,11 +79,13 @@ static const U32 prime2 = 2246822519U; static U32 g_displayLevel = 2; #define DISPLAYUPDATE(l, ...) if (g_displayLevel>=l) { \ - if ((FUZ_GetMilliSpan(g_time) > g_refreshRate) || (g_displayLevel>=4)) \ - { g_time = FUZ_GetMilliStart(); DISPLAY(__VA_ARGS__); \ + if ((FUZ_GetMilliSpan(g_displayTime) > g_refreshRate) || (g_displayLevel>=4)) \ + { g_displayTime = FUZ_GetMilliStart(); DISPLAY(__VA_ARGS__); \ if (g_displayLevel>=4) fflush(stdout); } } static const U32 g_refreshRate = 150; -static U32 g_time = 0; +static U32 g_displayTime = 0; + +static U32 g_testTime = 0; /********************************************************* @@ -266,6 +268,7 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit U32 testNb = 0; U32 coreSeed = seed, lseed = 0; ZSTD_CCtx* ctx; + U32 startTime = FUZ_GetMilliStart(); /* allocation */ ctx = ZSTD_createCCtx(); @@ -292,7 +295,7 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit FUZ_rand(&coreSeed); /* test loop */ - for ( ; testNb <= nbTests; testNb++ ) + for ( ; (testNb <= nbTests) || (FUZ_GetMilliSpan(startTime) < g_testTime); testNb++ ) { size_t sampleSize, sampleStart, maxTestSize, totalTestSize; size_t cSize, dSize, dSupSize, errorCode; @@ -303,7 +306,9 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit BYTE* sampleBuffer; /* init */ - DISPLAYUPDATE(2, "\r%6u/%6u ", testNb, nbTests); + DISPLAYUPDATE(2, "\r%6u", testNb); + if (nbTests >= testNb) DISPLAYUPDATE(2, "\r/%6u", nbTests); + DISPLAYUPDATE(2, " "); FUZ_rand(&coreSeed); lseed = coreSeed ^ prime1; buffNb = FUZ_rand(&lseed) & 127; @@ -466,7 +471,7 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit cSize += errorCode; crcOrig = XXH64_digest(&crc64); } - DISPLAY("\rAll fuzzer tests completed \n"); + DISPLAY("\r%u fuzzer tests completed \n", testNb); _cleanup: ZSTD_freeCCtx(ctx); @@ -550,7 +555,7 @@ int main(int argc, char** argv) break; case 'i': - argument++; + argument++; g_testTime=0; nbTests=0; while ((*argument>='0') && (*argument<='9')) { @@ -560,6 +565,20 @@ int main(int argc, char** argv) } break; + case 'T': + argument++; + nbTests=0; g_testTime=0; + while ((*argument>='0') && (*argument<='9')) + { + g_testTime *= 10; + g_testTime += *argument - '0'; + argument++; + } + if (*argument=='m') g_testTime *=60, argument++; + if (*argument=='n') argument++; + g_testTime *= 1000; + break; + case 's': argument++; seed=0;