mirror of
https://github.com/facebook/zstd.git
synced 2025-07-30 22:23:13 +03:00
negative compression level test
compare results from simple and advanced AIP
This commit is contained in:
@ -1080,12 +1080,36 @@ static int basicUnitTests(U32 seed, double compressibility)
|
|||||||
ZSTD_freeCCtx(cctx);
|
ZSTD_freeCCtx(cctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* negative compression level test : ensure simple API and advanced API produce same result */
|
||||||
|
DISPLAYLEVEL(3, "test%3i : negative compression level : ", testNb++);
|
||||||
|
{ size_t const srcSize = CNBuffSize / 5;
|
||||||
|
int const compressionLevel = -2;
|
||||||
|
size_t const cSize_1pass = ZSTD_compress(compressedBuffer, compressedBufferSize,
|
||||||
|
CNBuffer, srcSize,
|
||||||
|
compressionLevel);
|
||||||
|
if (ZSTD_isError(cSize_1pass)) goto _output_error;
|
||||||
|
{ ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
||||||
|
assert(cctx != NULL);
|
||||||
|
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_p_compressionLevel, compressionLevel) );
|
||||||
|
{ ZSTD_inBuffer in = { CNBuffer, srcSize, 0 };
|
||||||
|
ZSTD_outBuffer out = { compressedBuffer, compressedBufferSize, 0 };
|
||||||
|
size_t const compressionResult = ZSTD_compress_generic(cctx, &out, &in, ZSTD_e_end);
|
||||||
|
DISPLAYLEVEL(5, "simple=%zu vs %zu=advanced : ", cSize_1pass, out.pos);
|
||||||
|
if (ZSTD_isError(compressionResult)) goto _output_error;
|
||||||
|
if (out.pos != cSize_1pass) goto _output_error;
|
||||||
|
}
|
||||||
|
ZSTD_freeCCtx(cctx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DISPLAYLEVEL(3, "OK \n");
|
||||||
|
|
||||||
/* parameters order test */
|
/* parameters order test */
|
||||||
{ size_t const inputSize = CNBuffSize / 2;
|
{ size_t const inputSize = CNBuffSize / 2;
|
||||||
U64 xxh64;
|
U64 xxh64;
|
||||||
|
|
||||||
{ ZSTD_CCtx* cctx = ZSTD_createCCtx();
|
{ ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
||||||
DISPLAYLEVEL(3, "test%3i : parameters in order : ", testNb++);
|
DISPLAYLEVEL(3, "test%3i : parameters in order : ", testNb++);
|
||||||
|
assert(cctx != NULL);
|
||||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_p_compressionLevel, 2) );
|
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_p_compressionLevel, 2) );
|
||||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_p_enableLongDistanceMatching, 1) );
|
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_p_enableLongDistanceMatching, 1) );
|
||||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_p_windowLog, 18) );
|
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_p_windowLog, 18) );
|
||||||
|
Reference in New Issue
Block a user