summaryrefslogtreecommitdiffstats
path: root/programs/frametest.c
diff options
context:
space:
mode:
authorYann Collet <cyan@fb.com>2016-09-05 13:49:55 (GMT)
committerYann Collet <cyan@fb.com>2016-09-05 13:49:55 (GMT)
commitc8a78dba1fc21f64dec72cf217c21fe8784c42bf (patch)
tree691951a9e57227337f4d53bbe6e469313c7fd7a2 /programs/frametest.c
parent53515b05e66b203bc44ed374fee12bae97737e02 (diff)
downloadlz4-c8a78dba1fc21f64dec72cf217c21fe8784c42bf.zip
lz4-c8a78dba1fc21f64dec72cf217c21fe8784c42bf.tar.gz
lz4-c8a78dba1fc21f64dec72cf217c21fe8784c42bf.tar.bz2
datagen depends on lz4.h for version string
Diffstat (limited to 'programs/frametest.c')
-rw-r--r--programs/frametest.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/programs/frametest.c b/programs/frametest.c
index d9f2566..e8f6975 100644
--- a/programs/frametest.c
+++ b/programs/frametest.c
@@ -591,7 +591,7 @@ int fuzzerTests(U32 seed, unsigned nbTests, unsigned startTest, double compressi
size_t srcStart = FUZ_rand(&randState) % (srcDataLength - srcSize);
U64 frameContentSize = ((FUZ_rand(&randState) & 0xF) == 1) ? srcSize : 0;
size_t cSize;
- U64 crcOrig, crcDecoded;
+ U64 crcOrig;
LZ4F_preferences_t* prefsPtr = &prefs;
(void)FUZ_rand(&coreRand); /* update seed */
@@ -654,24 +654,29 @@ int fuzzerTests(U32 seed, unsigned nbTests, unsigned startTest, double compressi
{ const BYTE* ip = (const BYTE*)compressedBuffer;
const BYTE* const iend = ip + cSize;
+ DISPLAY("cSize : %u ; srcSize : %u \n", (U32)cSize, (U32)srcDataLength);
BYTE* op = (BYTE*)decodedBuffer;
BYTE* const oend = op + srcDataLength;
size_t totalOut = 0;
unsigned maxBits = FUZ_highbit((U32)cSize);
- unsigned nonContiguousDst = (FUZ_rand(&randState) & 3) == 1;
+ unsigned nonContiguousDst = (FUZ_rand(&randState) & 3) == 1; /* 0 : contiguous; 1 : non-contiguous; 2 : dst overwritten */
nonContiguousDst += FUZ_rand(&randState) & nonContiguousDst; /* 0=>0; 1=>1,2 */
XXH64_reset(&xxh64, 1);
if (maxBits < 3) maxBits = 3;
while (ip < iend) {
- unsigned nbBitsI = (FUZ_rand(&randState) % (maxBits-1)) + 1;
- unsigned nbBitsO = (FUZ_rand(&randState) % (maxBits)) + 1;
+ unsigned const nbBitsI = (FUZ_rand(&randState) % (maxBits-1)) + 1;
+ unsigned const nbBitsO = (FUZ_rand(&randState) % (maxBits)) + 1;
size_t iSize = (FUZ_rand(&randState) & ((1<<nbBitsI)-1)) + 1;
size_t oSize = (FUZ_rand(&randState) & ((1<<nbBitsO)-1)) + 2;
if (iSize > (size_t)(iend-ip)) iSize = iend-ip;
if (oSize > (size_t)(oend-op)) oSize = oend-op;
dOptions.stableDst = FUZ_rand(&randState) & 1;
if (nonContiguousDst==2) dOptions.stableDst = 0;
+ DISPLAY("in : %u / %u ; out : %u / %u \n", (U32)iSize, (U32)(iend-ip), (U32)oSize, (U32)(oend-op));
+ if (iSize == 107662)
+ iSize += !iSize;
result = LZ4F_decompress(dCtx, op, &oSize, ip, &iSize, &dOptions);
+ DISPLAY("consumed : %u ; generated : %u ; hint : %u \n", (U32)iSize, (U32)oSize, (U32)result);
if (result == (size_t)-LZ4F_ERROR_contentChecksum_invalid)
locateBuffDiff((BYTE*)srcBuffer+srcStart, decodedBuffer, srcSize, nonContiguousDst);
CHECK(LZ4F_isError(result), "Decompression failed (error %i:%s)", (int)result, LZ4F_getErrorName((LZ4F_errorCode_t)result));
@@ -684,7 +689,7 @@ int fuzzerTests(U32 seed, unsigned nbTests, unsigned startTest, double compressi
}
CHECK(result != 0, "Frame decompression failed (error %i)", (int)result);
if (totalOut) { /* otherwise, it's a skippable frame */
- crcDecoded = XXH64_digest(&xxh64);
+ U64 const crcDecoded = XXH64_digest(&xxh64);
if (crcDecoded != crcOrig) locateBuffDiff((BYTE*)srcBuffer+srcStart, decodedBuffer, srcSize, nonContiguousDst);
CHECK(crcDecoded != crcOrig, "Decompression corruption");
}