aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/libfuzzer/FuzzerDefs.h
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2022-11-07 19:34:08 +0300
committerthegeorg <thegeorg@yandex-team.com>2022-11-07 19:34:08 +0300
commit50f76e264c70a223a34b24aa59e97bff97128f4c (patch)
treee604247a10f09df6158c172577b9bfa431f1e1b5 /contrib/libs/libfuzzer/FuzzerDefs.h
parent278a58c5af63dbd7f7a6d8b8d92dc246651242da (diff)
downloadydb-50f76e264c70a223a34b24aa59e97bff97128f4c.tar.gz
Switch fuzz tests to contrib/libs/libfuzzer
Diffstat (limited to 'contrib/libs/libfuzzer/FuzzerDefs.h')
-rw-r--r--contrib/libs/libfuzzer/FuzzerDefs.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/contrib/libs/libfuzzer/FuzzerDefs.h b/contrib/libs/libfuzzer/FuzzerDefs.h
new file mode 100644
index 00000000000..369978d0d31
--- /dev/null
+++ b/contrib/libs/libfuzzer/FuzzerDefs.h
@@ -0,0 +1,57 @@
+//===- FuzzerDefs.h - Internal header for the Fuzzer ------------*- C++ -* ===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+// Basic definitions.
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_FUZZER_DEFS_H
+#define LLVM_FUZZER_DEFS_H
+
+#include <cassert>
+#include <cstddef>
+#include <cstdint>
+#include <cstring>
+#include <memory>
+#include <set>
+#include <string>
+#include <vector>
+
+
+namespace fuzzer {
+
+template <class T> T Min(T a, T b) { return a < b ? a : b; }
+template <class T> T Max(T a, T b) { return a > b ? a : b; }
+
+class Random;
+class Dictionary;
+class DictionaryEntry;
+class MutationDispatcher;
+struct FuzzingOptions;
+class InputCorpus;
+struct InputInfo;
+struct ExternalFunctions;
+
+// Global interface to functions that may or may not be available.
+extern ExternalFunctions *EF;
+
+typedef std::vector<uint8_t> Unit;
+typedef std::vector<Unit> UnitVector;
+typedef int (*UserCallback)(const uint8_t *Data, size_t Size);
+
+#define exit(status) FuzzerExit(status)
+void FuzzerExit(int status);
+int FuzzerDriver(int *argc, char ***argv, UserCallback Callback);
+
+uint8_t *ExtraCountersBegin();
+uint8_t *ExtraCountersEnd();
+void ClearExtraCounters();
+
+extern bool RunningUserCallback;
+
+} // namespace fuzzer
+
+#endif // LLVM_FUZZER_DEFS_H