47 lines
1.9 KiB
C
47 lines
1.9 KiB
C
|
/*
|
||
|
* Copyright (c) 2016-present, Facebook, Inc.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under both the BSD-style license (found in the
|
||
|
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
||
|
* in the COPYING file in the root directory of this source tree).
|
||
|
*/
|
||
|
|
||
|
#define ZSTD_STATIC_LINKING_ONLY
|
||
|
|
||
|
#include "zstd_helpers.h"
|
||
|
#include "fuzz_helpers.h"
|
||
|
#include "zstd.h"
|
||
|
|
||
|
static void setRand(ZSTD_CCtx *cctx, ZSTD_cParameter param, unsigned min,
|
||
|
unsigned max, uint32_t *state) {
|
||
|
unsigned const value = FUZZ_rand32(state, min, max);
|
||
|
FUZZ_ZASSERT(ZSTD_CCtx_setParameter(cctx, param, value));
|
||
|
}
|
||
|
|
||
|
void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, uint32_t *state)
|
||
|
{
|
||
|
setRand(cctx, ZSTD_p_windowLog, ZSTD_WINDOWLOG_MIN, 23, state);
|
||
|
setRand(cctx, ZSTD_p_hashLog, ZSTD_HASHLOG_MIN, 23, state);
|
||
|
setRand(cctx, ZSTD_p_chainLog, ZSTD_CHAINLOG_MIN, 24, state);
|
||
|
setRand(cctx, ZSTD_p_searchLog, ZSTD_SEARCHLOG_MIN, 9, state);
|
||
|
setRand(cctx, ZSTD_p_minMatch, ZSTD_SEARCHLENGTH_MIN, ZSTD_SEARCHLENGTH_MAX,
|
||
|
state);
|
||
|
setRand(cctx, ZSTD_p_targetLength, ZSTD_TARGETLENGTH_MIN,
|
||
|
ZSTD_TARGETLENGTH_MAX, state);
|
||
|
setRand(cctx, ZSTD_p_compressionStrategy, ZSTD_fast, ZSTD_btultra, state);
|
||
|
/* Select frame parameters */
|
||
|
setRand(cctx, ZSTD_p_contentSizeFlag, 0, 1, state);
|
||
|
setRand(cctx, ZSTD_p_checksumFlag, 0, 1, state);
|
||
|
setRand(cctx, ZSTD_p_dictIDFlag, 0, 1, state);
|
||
|
/* Select long distance matchig parameters */
|
||
|
setRand(cctx, ZSTD_p_enableLongDistanceMatching, 0, 1, state);
|
||
|
setRand(cctx, ZSTD_p_ldmHashLog, ZSTD_HASHLOG_MIN, 24, state);
|
||
|
setRand(cctx, ZSTD_p_ldmMinMatch, ZSTD_LDM_MINMATCH_MIN,
|
||
|
ZSTD_LDM_MINMATCH_MAX, state);
|
||
|
setRand(cctx, ZSTD_p_ldmBucketSizeLog, 0, ZSTD_LDM_BUCKETSIZELOG_MAX,
|
||
|
state);
|
||
|
setRand(cctx, ZSTD_p_ldmHashEveryLog, 0,
|
||
|
ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN, state);
|
||
|
}
|