Fixed : g++ link error within fullbench
This commit is contained in:
parent
23743530e0
commit
f3cb79b58f
@ -229,8 +229,7 @@ typedef struct
|
|||||||
static size_t g_cSize = 0;
|
static size_t g_cSize = 0;
|
||||||
|
|
||||||
extern size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr);
|
extern size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr);
|
||||||
extern size_t ZSTD_decodeSeqHeaders(size_t* lastLLPtr, const BYTE** dumpsPtr, FSE_DTable* DTableLL, FSE_DTable* DTableML, FSE_DTable* DTableOffb, const void* src, size_t srcSize);
|
extern size_t ZSTD_decodeSeqHeaders(int* nbSeq, const BYTE** dumpsPtr, FSE_DTable* DTableLL, FSE_DTable* DTableML, FSE_DTable* DTableOffb, const void* src, size_t srcSize);
|
||||||
|
|
||||||
|
|
||||||
size_t local_ZSTD_compress(void* dst, size_t dstSize, void* buff2, const void* src, size_t srcSize)
|
size_t local_ZSTD_compress(void* dst, size_t dstSize, void* buff2, const void* src, size_t srcSize)
|
||||||
{
|
{
|
||||||
@ -259,9 +258,9 @@ size_t local_ZSTD_decodeSeqHeaders(void* dst, size_t dstSize, void* buff2, const
|
|||||||
{
|
{
|
||||||
U32 DTableML[1<<11], DTableLL[1<<10], DTableOffb[1<<9];
|
U32 DTableML[1<<11], DTableLL[1<<10], DTableOffb[1<<9];
|
||||||
const BYTE* dumps;
|
const BYTE* dumps;
|
||||||
size_t lastllSize;
|
int nbSeq;
|
||||||
(void)src; (void)srcSize; (void)dst; (void)dstSize;
|
(void)src; (void)srcSize; (void)dst; (void)dstSize;
|
||||||
return ZSTD_decodeSeqHeaders(&lastllSize, &dumps, DTableLL, DTableML, DTableOffb, buff2, g_cSize);
|
return ZSTD_decodeSeqHeaders(&nbSeq, &dumps, DTableLL, DTableML, DTableOffb, buff2, g_cSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t local_conditionalNull(void* dst, size_t dstSize, void* buff2, const void* src, size_t srcSize)
|
size_t local_conditionalNull(void* dst, size_t dstSize, void* buff2, const void* src, size_t srcSize)
|
||||||
|
@ -259,7 +259,6 @@ static int basicUnitTests(U32 seed, double compressibility)
|
|||||||
((char*)(CNBuffer))[0] = 1;
|
((char*)(CNBuffer))[0] = 1;
|
||||||
result = ZSTD_decompress(decodedBuffer, COMPRESSIBLE_NOISE_LENGTH, CNBuffer, 4);
|
result = ZSTD_decompress(decodedBuffer, COMPRESSIBLE_NOISE_LENGTH, CNBuffer, 4);
|
||||||
if (!ZSTD_isError(result)) goto _output_error;
|
if (!ZSTD_isError(result)) goto _output_error;
|
||||||
if (result != (size_t)-ZSTD_ERROR_MagicNumber) goto _output_error;
|
|
||||||
DISPLAYLEVEL(4, "OK \n");
|
DISPLAYLEVEL(4, "OK \n");
|
||||||
|
|
||||||
/* long rle test */
|
/* long rle test */
|
||||||
@ -334,11 +333,11 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit
|
|||||||
FUZ_generateSynthetic(srcBuffer, srcBufferSize, compressibility, &coreSeed);
|
FUZ_generateSynthetic(srcBuffer, srcBufferSize, compressibility, &coreSeed);
|
||||||
|
|
||||||
/* catch up testNb */
|
/* catch up testNb */
|
||||||
for (testNb=1; testNb <= startTest; testNb++)
|
for (testNb=1; testNb < startTest; testNb++)
|
||||||
FUZ_rand(&coreSeed);
|
FUZ_rand(&coreSeed);
|
||||||
|
|
||||||
/* test loop */
|
/* test loop */
|
||||||
for (testNb=startTest; testNb <= nbTests; testNb++)
|
for ( ; testNb <= nbTests; testNb++ )
|
||||||
{
|
{
|
||||||
size_t sampleSize, sampleStart;
|
size_t sampleSize, sampleStart;
|
||||||
size_t cSize, dSize, dSupSize;
|
size_t cSize, dSize, dSupSize;
|
||||||
@ -359,7 +358,7 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit
|
|||||||
cSize = ZSTD_compress(cBuffer, cBufferSize, srcBuffer + sampleStart, sampleSize);
|
cSize = ZSTD_compress(cBuffer, cBufferSize, srcBuffer + sampleStart, sampleSize);
|
||||||
CHECK(ZSTD_isError(cSize), "ZSTD_compress failed");
|
CHECK(ZSTD_isError(cSize), "ZSTD_compress failed");
|
||||||
|
|
||||||
/* compression failure test */
|
/* compression failure test : too small dest buffer */
|
||||||
{
|
{
|
||||||
size_t errorCode;
|
size_t errorCode;
|
||||||
const size_t missing = (FUZ_rand(&lseed) % (cSize-2)) + 1; /* no problem, as cSize > 4 (frameHeaderSizer) */
|
const size_t missing = (FUZ_rand(&lseed) % (cSize-2)) + 1; /* no problem, as cSize > 4 (frameHeaderSizer) */
|
||||||
@ -371,12 +370,38 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit
|
|||||||
free(dBufferTooSmall);
|
free(dBufferTooSmall);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* decompression tests*/
|
/* successfull decompression tests*/
|
||||||
dSupSize = (FUZ_rand(&lseed) & 1) ? 0 : (FUZ_rand(&lseed) & 31) + 1;
|
dSupSize = (FUZ_rand(&lseed) & 1) ? 0 : (FUZ_rand(&lseed) & 31) + 1;
|
||||||
dSize = ZSTD_decompress(dstBuffer, sampleSize + dSupSize, cBuffer, cSize);
|
dSize = ZSTD_decompress(dstBuffer, sampleSize + dSupSize, cBuffer, cSize);
|
||||||
CHECK(dSize != sampleSize, "ZSTD_decompress failed (%s)", ZSTD_getErrorName(dSize));
|
CHECK(dSize != sampleSize, "ZSTD_decompress failed (%s)", ZSTD_getErrorName(dSize));
|
||||||
crcDest = XXH64(dstBuffer, sampleSize, 0);
|
crcDest = XXH64(dstBuffer, sampleSize, 0);
|
||||||
CHECK(crcOrig != crcDest, "dstBuffer corrupted (pos %u / %u)", (U32)findDiff(srcBuffer+sampleStart, dstBuffer, sampleSize), (U32)sampleSize);
|
CHECK(crcOrig != crcDest, "dstBuffer corrupted (pos %u / %u)", (U32)findDiff(srcBuffer+sampleStart, dstBuffer, sampleSize), (U32)sampleSize);
|
||||||
|
|
||||||
|
/* truncated src decompression test */
|
||||||
|
{
|
||||||
|
size_t errorCode;
|
||||||
|
const size_t missing = (FUZ_rand(&lseed) % (cSize-2)) + 1; /* no problem, as cSize > 4 (frameHeaderSizer) */
|
||||||
|
const size_t tooSmallSize = cSize - missing;
|
||||||
|
void* cBufferTooSmall = malloc(tooSmallSize); /* valgrind will catch overflows */
|
||||||
|
memcpy(cBufferTooSmall, cBuffer, tooSmallSize);
|
||||||
|
CHECK(cBufferTooSmall == NULL, "not enough memory !");
|
||||||
|
errorCode = ZSTD_decompress(dstBuffer, dstBufferSize, cBufferTooSmall, tooSmallSize);
|
||||||
|
CHECK(!ZSTD_isError(errorCode), "ZSTD_decompress should have failed ! (truncated src buffer)");
|
||||||
|
free(cBufferTooSmall);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* too small dst decompression test */
|
||||||
|
if (sampleSize > 3)
|
||||||
|
{
|
||||||
|
size_t errorCode;
|
||||||
|
const size_t missing = (FUZ_rand(&lseed) % (sampleSize-2)) + 1; /* no problem, as cSize > 4 (frameHeaderSizer) */
|
||||||
|
const size_t tooSmallSize = sampleSize - missing;
|
||||||
|
static const BYTE token = 0xA9;
|
||||||
|
dstBuffer[tooSmallSize] = token;
|
||||||
|
errorCode = ZSTD_decompress(dstBuffer, tooSmallSize, cBuffer, cSize);
|
||||||
|
CHECK(!ZSTD_isError(errorCode), "ZSTD_decompress should have failed : %u > %u (dst buffer too small)", (U32)errorCode, (U32)tooSmallSize);
|
||||||
|
CHECK(dstBuffer[tooSmallSize] != token, "ZSTD_decompress : dst buffer overflow");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
DISPLAY("\rAll fuzzer tests completed \n");
|
DISPLAY("\rAll fuzzer tests completed \n");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user