diff options
author | Yann Collet <yann.collet.73@gmail.com> | 2014-09-13 18:49:01 (GMT) |
---|---|---|
committer | Yann Collet <yann.collet.73@gmail.com> | 2014-09-13 18:49:01 (GMT) |
commit | 56c2b79ed015d4b154d4bd3a9cab27e7c613ba51 (patch) | |
tree | c2bf30ba320863f53e583ce4326b231dc331ecf7 /programs/frametest.c | |
parent | 38912f55e3c3b782529c2dd1e682d6af7c8bd052 (diff) | |
download | lz4-56c2b79ed015d4b154d4bd3a9cab27e7c613ba51.zip lz4-56c2b79ed015d4b154d4bd3a9cab27e7c613ba51.tar.gz lz4-56c2b79ed015d4b154d4bd3a9cab27e7c613ba51.tar.bz2 |
Frame decompression speed optimization
Diffstat (limited to 'programs/frametest.c')
-rw-r--r-- | programs/frametest.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/programs/frametest.c b/programs/frametest.c index caa4956..8be7752 100644 --- a/programs/frametest.c +++ b/programs/frametest.c @@ -355,13 +355,13 @@ _output_error: } -static void locateBuffDiff(const void* buff1, const void* buff2) +static void locateBuffDiff(const void* buff1, const void* buff2, size_t size) { int p=0; BYTE* b1=(BYTE*)buff1; BYTE* b2=(BYTE*)buff2; while (b1[p]==b2[p]) p++; - printf("Error at pos %i : %02X != %02X \n", p, b1[p], b2[p]); + printf("Error at pos %i/%i : %02X != %02X \n", p, (int)size, b1[p], b2[p]); } @@ -473,13 +473,14 @@ int fuzzerTests(U32 seed, unsigned nbTests, unsigned startTest, double compressi if (oSize > (size_t)(oend-op)) oSize = oend-op; oSize = oend-op; result = LZ4F_decompress(dCtx, op, &oSize, ip, &iSize, NULL); - if (result == (size_t)-ERROR_checksum_invalid) locateBuffDiff((BYTE*)srcBuffer+srcStart, decodedBuffer); + if (result == (size_t)-ERROR_checksum_invalid) locateBuffDiff((BYTE*)srcBuffer+srcStart, decodedBuffer, srcSize); CHECK(LZ4F_isError(result), "Decompression failed (error %i)", (int)result); op += oSize; ip += iSize; } CHECK(result != 0, "Frame decompression failed (error %i)", (int)result); crcDecoded = XXH64(decodedBuffer, op-(BYTE*)decodedBuffer, 1); + if (crcDecoded != crcOrig) locateBuffDiff((BYTE*)srcBuffer+srcStart, decodedBuffer, srcSize); CHECK(crcDecoded != crcOrig, "Decompression corruption"); } @@ -613,7 +614,7 @@ int main(int argc, char** argv) if (nbTests<=0) nbTests=1; - if (testNb==0) result = basicTests(seed, ((double)proba) / 100); + //if (testNb==0) result = basicTests(seed, ((double)proba) / 100); if (result) return 1; return fuzzerTests(seed, nbTests, testNb, ((double)proba) / 100); } |