From ed4a6bf2cb8a46979e2c9f0eab99052844b21f03 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Wed, 10 Sep 2014 13:53:42 +0100 Subject: More tests : random flushes --- lz4frame.h | 10 +++++++--- programs/frametest.c | 9 ++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lz4frame.h b/lz4frame.h index 039ab14..a8f8544 100644 --- a/lz4frame.h +++ b/lz4frame.h @@ -44,6 +44,10 @@ extern "C" { #endif +/**************************************** + Note : experimental API. + Not yet integrated within lz4 library. +****************************************/ /************************************** Includes @@ -58,9 +62,9 @@ typedef size_t LZ4F_errorCode_t; typedef enum { OK_FrameEnd = 1 } LZ4F_successCodes; typedef enum { OK_NoError = 0, ERROR_GENERIC = 1, ERROR_maxBlockSize_invalid, ERROR_blockMode_invalid, ERROR_contentChecksumFlag_invalid, - ERROR_srcSize_tooLarge, ERROR_dstMaxSize_tooSmall, - ERROR_allocation_failed, ERROR_compressionLevel_invalid, + ERROR_allocation_failed, + ERROR_srcSize_tooLarge, ERROR_dstMaxSize_tooSmall, ERROR_checksum_invalid, ERROR_maxCode } LZ4F_errorCodes; /* error codes are negative unsigned values. @@ -80,7 +84,7 @@ typedef enum { noContentChecksum=0, contentChecksumEnabled } contentChecksum_t; typedef struct { blockSizeID_t blockSizeID; /* max64KB, max256KB, max1MB, max4MB ; 0 == default */ blockMode_t blockMode; /* blockLinked, blockIndependent ; 0 == default */ - contentChecksum_t contentChecksumFlag; /* contentChecksumEnabled (default), noContentChecksum ; */ + contentChecksum_t contentChecksumFlag; /* noContentChecksum, contentChecksumEnabled ; 0 == default */ unsigned reserved[3]; } LZ4F_frameInfo_t; diff --git a/programs/frametest.c b/programs/frametest.c index efe1883..2c45f85 100644 --- a/programs/frametest.c +++ b/programs/frametest.c @@ -356,7 +356,7 @@ _output_error: } -static const U32 srcDataLength = 4 MB; +static const U32 srcDataLength = 9 MB; /* needs to be > 2x4MB to test large blocks */ int fuzzerTests(U32 seed, unsigned nbTests, unsigned startTest, double compressibility) { @@ -419,11 +419,18 @@ int fuzzerTests(U32 seed, unsigned nbTests, unsigned startTest, double compressi unsigned nbBitsSeg = FUZ_rand(&randState) % maxBits; size_t iSize = (FUZ_rand(&randState) & ((1< (size_t)(iend-ip)) iSize = iend-ip; result = LZ4F_compress(cCtx, op, oSize, ip, iSize, NULL); CHECK(LZ4F_isError(result), "Compression failed (error %i)", (int)result); op += result; ip += iSize; + if (forceFlush) + { + result = LZ4F_flush(cCtx, op, oend-op, NULL); + CHECK(LZ4F_isError(result), "Compression failed (error %i)", (int)result); + op += result; + } } result = LZ4F_compressEnd(cCtx, op, oend-op, NULL); CHECK(LZ4F_isError(result), "Compression completion failed (error %i)", (int)result); -- cgit v0.12