git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.6 / tests / fuzz / fuzz.h
CommitLineData
648db22b 1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
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 * You may select, at your option, one of the above-listed licenses.
9 */
10
11/**
12 * Fuzz target interface.
13 * Fuzz targets have some common parameters passed as macros during compilation.
14 * Check the documentation for each individual fuzzer for more parameters.
15 *
16 * @param STATEFUL_FUZZING:
17 * Define this to reuse state between fuzzer runs. This can be useful to
18 * test code paths which are only executed when contexts are reused.
19 * WARNING: Makes reproducing crashes much harder.
20 * Default: Not defined.
21 * @param DEBUGLEVEL:
22 * This is a parameter for the zstd library. Defining `DEBUGLEVEL=1`
23 * enables assert() statements in the zstd library. Higher levels enable
24 * logging, so aren't recommended. Defining `DEBUGLEVEL=1` is
25 * recommended.
26 * @param MEM_FORCE_MEMORY_ACCESS:
27 * This flag controls how the zstd library accesses unaligned memory.
28 * It can be undefined, or 0 through 2. If it is undefined, it selects
29 * the method to use based on the compiler.
30 * @param FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31 * This is the canonical flag to enable deterministic builds for fuzzing.
32 * Changes to zstd for fuzzing are gated behind this define.
33 * It is recommended to define this when building zstd for fuzzing.
34 * @param FUZZ_THIRD_PARTY_SEQ_PROD
35 * This flag allows sequence producer plugin authors to replace the built-in
36 * default sequence producer with their own code. If you are not a plugin
37 * author, you should not define this flag. See the docs at
38 * fuzz_third_party_seq_prod.h for more information.
39 */
40
41#ifndef FUZZ_H
42#define FUZZ_H
43
44#include <stddef.h>
45#include <stdint.h>
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size);
52
53#ifdef __cplusplus
54}
55#endif
56
57#endif