diff options
Diffstat (limited to '3rdparty/zstd/tests/fuzz/zstd_helpers.h')
-rw-r--r-- | 3rdparty/zstd/tests/fuzz/zstd_helpers.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/3rdparty/zstd/tests/fuzz/zstd_helpers.h b/3rdparty/zstd/tests/fuzz/zstd_helpers.h new file mode 100644 index 00000000000..be3071d2fd6 --- /dev/null +++ b/3rdparty/zstd/tests/fuzz/zstd_helpers.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * 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). + * You may select, at your option, one of the above-listed licenses. + */ +/** + * Helper functions for fuzzing. + */ + +#ifndef ZSTD_HELPERS_H +#define ZSTD_HELPERS_H + +#define ZSTD_STATIC_LINKING_ONLY + +#include "zstd.h" +#include "zstd_errors.h" +#include "fuzz_data_producer.h" +#include <stdint.h> + +#ifdef __cplusplus +extern "C" { +#endif + +extern const int kMinClevel; +extern const int kMaxClevel; + +void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, FUZZ_dataProducer_t *producer); + +ZSTD_compressionParameters FUZZ_randomCParams(size_t srcSize, FUZZ_dataProducer_t *producer); +ZSTD_frameParameters FUZZ_randomFParams(FUZZ_dataProducer_t *producer); +ZSTD_parameters FUZZ_randomParams(size_t srcSize, FUZZ_dataProducer_t *producer); + +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, FUZZ_dataProducer_t *producer); + +#ifdef FUZZ_THIRD_PARTY_SEQ_PROD +extern void* FUZZ_seqProdState; +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ZSTD_HELPERS_H */ |