Branch data Line data Source code
1 : : // Copyright (c) 2020-2022 The Bitcoin Core developers
2 : : // Distributed under the MIT software license, see the accompanying
3 : : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 : :
5 : : #include <policy/fees.h>
6 : : #include <policy/fees_args.h>
7 : : #include <streams.h>
8 : : #include <test/fuzz/FuzzedDataProvider.h>
9 : : #include <test/fuzz/fuzz.h>
10 : : #include <test/fuzz/util.h>
11 : : #include <test/util/setup_common.h>
12 : :
13 : : #include <memory>
14 : :
15 : : namespace {
16 : : const BasicTestingSetup* g_setup;
17 : : } // namespace
18 : :
19 : 1 : void initialize_policy_estimator_io()
20 : : {
21 [ + - + - ]: 3 : static const auto testing_setup = MakeNoLogFileContext<>();
22 : 1 : g_setup = testing_setup.get();
23 [ + - ]: 2 : }
24 : :
25 [ + - ]: 738 : FUZZ_TARGET(policy_estimator_io, .init = initialize_policy_estimator_io)
26 : : {
27 : 326 : FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
28 : 326 : FuzzedFileProvider fuzzed_file_provider{fuzzed_data_provider};
29 [ + - ]: 326 : AutoFile fuzzed_auto_file{fuzzed_file_provider.open()};
30 : : // Re-using block_policy_estimator across runs to avoid costly creation of CBlockPolicyEstimator object.
31 [ + + + - : 328 : static CBlockPolicyEstimator block_policy_estimator{FeeestPath(*g_setup->m_node.args), DEFAULT_ACCEPT_STALE_FEE_ESTIMATES};
+ - + - ]
32 [ + - + + ]: 326 : if (block_policy_estimator.Read(fuzzed_auto_file)) {
33 [ + - ]: 31 : block_policy_estimator.Write(fuzzed_auto_file);
34 : : }
35 : 326 : }
|