/* * 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). */ /** * Helper functions for fuzzing. */ #ifndef ZSTD_HELPERS_H #define ZSTD_HELPERS_H #define ZSTD_STATIC_LINKING_ONLY #include "zstd.h" #include #ifdef __cplusplus extern "C" { #endif void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, uint32_t *state); ZSTD_compressionParameters FUZZ_randomCParams(size_t srcSize, uint32_t *state); ZSTD_frameParameters FUZZ_randomFParams(uint32_t *state); ZSTD_parameters FUZZ_randomParams(size_t srcSize, uint32_t *state); typedef struct { void* buff; size_t size; } FUZZ_dict_t; /* Quickly train a dictionary from a source for fuzzing. * NOTE: Don't use this to train production dictionaries, it is only optimized * for speed, and doesn't care about dictionary quality. */ FUZZ_dict_t FUZZ_train(void const* src, size_t srcSize, uint32_t *state); #ifdef __cplusplus } #endif #endif /* ZSTD_HELPERS_H */