mirror of
https://github.com/facebook/zstd.git
synced 2024-12-01 09:36:51 +08:00
define CONTROL, to ensure check cannot be disabled
assert() can be disabled with NDEBUG
This commit is contained in:
parent
904d4da239
commit
ab3625cffd
@ -15,7 +15,6 @@
|
|||||||
#include "util.h" /* Compiler options, UTIL_GetFileSize */
|
#include "util.h" /* Compiler options, UTIL_GetFileSize */
|
||||||
#include <stdlib.h> /* malloc */
|
#include <stdlib.h> /* malloc */
|
||||||
#include <stdio.h> /* fprintf, fopen, ftello64 */
|
#include <stdio.h> /* fprintf, fopen, ftello64 */
|
||||||
#include <assert.h> /* assert */
|
|
||||||
|
|
||||||
#include "timefn.h" /* UTIL_clockSpanNano, UTIL_getTime */
|
#include "timefn.h" /* UTIL_clockSpanNano, UTIL_getTime */
|
||||||
#include "mem.h" /* U32 */
|
#include "mem.h" /* U32 */
|
||||||
@ -61,6 +60,7 @@ static const size_t k_sampleSize_default = 10000000;
|
|||||||
**************************************/
|
**************************************/
|
||||||
#define DISPLAY(...) fprintf(stderr, __VA_ARGS__)
|
#define DISPLAY(...) fprintf(stderr, __VA_ARGS__)
|
||||||
|
|
||||||
|
#define CONTROL(c) { if (!(c)) { abort(); } } /* like assert(), but cannot be disabled */
|
||||||
|
|
||||||
/*_************************************
|
/*_************************************
|
||||||
* Benchmark Parameters
|
* Benchmark Parameters
|
||||||
@ -450,7 +450,7 @@ static int benchMem(unsigned benchNb,
|
|||||||
{ size_t frameHeaderSize;
|
{ size_t frameHeaderSize;
|
||||||
g_cSize = ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel);
|
g_cSize = ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel);
|
||||||
frameHeaderSize = ZSTD_frameHeaderSize(dstBuff, ZSTD_FRAMEHEADERSIZE_PREFIX);
|
frameHeaderSize = ZSTD_frameHeaderSize(dstBuff, ZSTD_FRAMEHEADERSIZE_PREFIX);
|
||||||
assert(!ZSTD_isError(frameHeaderSize));
|
CONTROL(!ZSTD_isError(frameHeaderSize));
|
||||||
/* check block is compressible, hence contains a literals section */
|
/* check block is compressible, hence contains a literals section */
|
||||||
{ blockProperties_t bp;
|
{ blockProperties_t bp;
|
||||||
ZSTD_getcBlockSize(dstBuff+frameHeaderSize, dstBuffSize, &bp); /* Get 1st block type */
|
ZSTD_getcBlockSize(dstBuff+frameHeaderSize, dstBuffSize, &bp); /* Get 1st block type */
|
||||||
@ -470,11 +470,11 @@ static int benchMem(unsigned benchNb,
|
|||||||
const BYTE* ip = dstBuff;
|
const BYTE* ip = dstBuff;
|
||||||
const BYTE* iend;
|
const BYTE* iend;
|
||||||
{ size_t const cSize = ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel);
|
{ size_t const cSize = ZSTD_compress(dstBuff, dstBuffSize, src, srcSize, cLevel);
|
||||||
assert(cSize > ZSTD_FRAMEHEADERSIZE_PREFIX);
|
CONTROL(cSize > ZSTD_FRAMEHEADERSIZE_PREFIX);
|
||||||
}
|
}
|
||||||
/* Skip frame Header */
|
/* Skip frame Header */
|
||||||
{ size_t const frameHeaderSize = ZSTD_frameHeaderSize(dstBuff, ZSTD_FRAMEHEADERSIZE_PREFIX);
|
{ size_t const frameHeaderSize = ZSTD_frameHeaderSize(dstBuff, ZSTD_FRAMEHEADERSIZE_PREFIX);
|
||||||
assert(!ZSTD_isError(frameHeaderSize));
|
CONTROL(!ZSTD_isError(frameHeaderSize));
|
||||||
ip += frameHeaderSize;
|
ip += frameHeaderSize;
|
||||||
}
|
}
|
||||||
/* Find end of block */
|
/* Find end of block */
|
||||||
@ -487,7 +487,7 @@ static int benchMem(unsigned benchNb,
|
|||||||
}
|
}
|
||||||
ip += ZSTD_blockHeaderSize; /* skip block header */
|
ip += ZSTD_blockHeaderSize; /* skip block header */
|
||||||
ZSTD_decompressBegin(g_zdc);
|
ZSTD_decompressBegin(g_zdc);
|
||||||
assert(iend > ip);
|
CONTROL(iend > ip);
|
||||||
ip += ZSTD_decodeLiteralsBlock(g_zdc, ip, (size_t)(iend-ip)); /* skip literal segment */
|
ip += ZSTD_decodeLiteralsBlock(g_zdc, ip, (size_t)(iend-ip)); /* skip literal segment */
|
||||||
g_cSize = (size_t)(iend-ip);
|
g_cSize = (size_t)(iend-ip);
|
||||||
memcpy(dstBuff2, ip, g_cSize); /* copy rest of block (it starts by SeqHeader) */
|
memcpy(dstBuff2, ip, g_cSize); /* copy rest of block (it starts by SeqHeader) */
|
||||||
@ -524,7 +524,7 @@ static int benchMem(unsigned benchNb,
|
|||||||
BMK_runTime_t bestResult;
|
BMK_runTime_t bestResult;
|
||||||
bestResult.sumOfReturn = 0;
|
bestResult.sumOfReturn = 0;
|
||||||
bestResult.nanoSecPerRun = (double)TIMELOOP_NANOSEC * 2000000000; /* hopefully large enough : must be larger than any potential measurement */
|
bestResult.nanoSecPerRun = (double)TIMELOOP_NANOSEC * 2000000000; /* hopefully large enough : must be larger than any potential measurement */
|
||||||
assert(tfs != NULL);
|
CONTROL(tfs != NULL);
|
||||||
|
|
||||||
bp.benchFn = benchFunction;
|
bp.benchFn = benchFunction;
|
||||||
bp.benchPayload = payload;
|
bp.benchPayload = payload;
|
||||||
@ -751,7 +751,7 @@ int main(int argc, const char** argv)
|
|||||||
|
|
||||||
for (argNb=1; argNb<argc; argNb++) {
|
for (argNb=1; argNb<argc; argNb++) {
|
||||||
const char* argument = argv[argNb];
|
const char* argument = argv[argNb];
|
||||||
assert(argument != NULL);
|
CONTROL(argument != NULL);
|
||||||
|
|
||||||
if (longCommandWArg(&argument, "--zstd=")) {
|
if (longCommandWArg(&argument, "--zstd=")) {
|
||||||
for ( ; ;) {
|
for ( ; ;) {
|
||||||
|
Loading…
Reference in New Issue
Block a user