aboutsummaryrefslogtreecommitdiff
path: root/src/test/fuzz/policy_estimator_io.cpp
diff options
context:
space:
mode:
authorpracticalswift <practicalswift@users.noreply.github.com>2020-06-02 19:06:07 +0000
committerpracticalswift <practicalswift@users.noreply.github.com>2020-07-15 11:41:21 +0000
commitad6c34881dc125c973b6b9ba1daa999d3141b1ae (patch)
tree68e2b8e24eed511ac33988b0a8fb58699b651c6e /src/test/fuzz/policy_estimator_io.cpp
parent614e0807a8137d82832aea45e4864b424f71f698 (diff)
downloadbitcoin-ad6c34881dc125c973b6b9ba1daa999d3141b1ae.tar.xz
tests: Add fuzzing harness for CBlockPolicyEstimator::{Read,Write} (policy/fees.h)
Diffstat (limited to 'src/test/fuzz/policy_estimator_io.cpp')
-rw-r--r--src/test/fuzz/policy_estimator_io.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/fuzz/policy_estimator_io.cpp b/src/test/fuzz/policy_estimator_io.cpp
new file mode 100644
index 0000000000..0edcf201c7
--- /dev/null
+++ b/src/test/fuzz/policy_estimator_io.cpp
@@ -0,0 +1,28 @@
+// Copyright (c) 2020 The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#include <policy/fees.h>
+#include <test/fuzz/FuzzedDataProvider.h>
+#include <test/fuzz/fuzz.h>
+#include <test/fuzz/util.h>
+
+#include <cstdint>
+#include <vector>
+
+void initialize()
+{
+ InitializeFuzzingContext();
+}
+
+void test_one_input(const std::vector<uint8_t>& buffer)
+{
+ FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
+ FuzzedAutoFileProvider fuzzed_auto_file_provider = ConsumeAutoFile(fuzzed_data_provider);
+ CAutoFile fuzzed_auto_file = fuzzed_auto_file_provider.open();
+ // Re-using block_policy_estimator across runs to avoid costly creation of CBlockPolicyEstimator object.
+ static CBlockPolicyEstimator block_policy_estimator;
+ if (block_policy_estimator.Read(fuzzed_auto_file)) {
+ block_policy_estimator.Write(fuzzed_auto_file);
+ }
+}