]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/zstd/tests/fuzz/zstd_helpers.h
Update to Zstandard 1.4.0
[FreeBSD/FreeBSD.git] / sys / contrib / zstd / tests / fuzz / zstd_helpers.h
1 /*
2  * Copyright (c) 2016-present, Facebook, Inc.
3  * All rights reserved.
4  *
5  * This source code is licensed under both the BSD-style license (found in the
6  * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7  * in the COPYING file in the root directory of this source tree).
8  */
9
10 /**
11  * Helper functions for fuzzing.
12  */
13
14 #ifndef ZSTD_HELPERS_H
15 #define ZSTD_HELPERS_H
16
17 #define ZSTD_STATIC_LINKING_ONLY
18
19 #include "zstd.h"
20 #include <stdint.h>
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, uint32_t *state);
27
28 ZSTD_compressionParameters FUZZ_randomCParams(size_t srcSize, uint32_t *state);
29 ZSTD_frameParameters FUZZ_randomFParams(uint32_t *state);
30 ZSTD_parameters FUZZ_randomParams(size_t srcSize, uint32_t *state);
31
32 typedef struct {
33   void* buff;
34   size_t size;
35 } FUZZ_dict_t;
36
37 /* Quickly train a dictionary from a source for fuzzing.
38  * NOTE: Don't use this to train production dictionaries, it is only optimized
39  * for speed, and doesn't care about dictionary quality.
40  */
41 FUZZ_dict_t FUZZ_train(void const* src, size_t srcSize, uint32_t *state);
42
43
44 #ifdef __cplusplus
45 }
46 #endif
47
48 #endif /* ZSTD_HELPERS_H */