summaryrefslogtreecommitdiff
path: root/src/third_party/zstandard-1.4.3/zstd/tests/fuzz/zstd_helpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/zstandard-1.4.3/zstd/tests/fuzz/zstd_helpers.h')
-rw-r--r--src/third_party/zstandard-1.4.3/zstd/tests/fuzz/zstd_helpers.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/third_party/zstandard-1.4.3/zstd/tests/fuzz/zstd_helpers.h b/src/third_party/zstandard-1.4.3/zstd/tests/fuzz/zstd_helpers.h
new file mode 100644
index 00000000000..457e6e995f0
--- /dev/null
+++ b/src/third_party/zstandard-1.4.3/zstd/tests/fuzz/zstd_helpers.h
@@ -0,0 +1,48 @@
+/*
+ * 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 <stdint.h>
+
+#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 */