/root/bitcoin/src/test/fuzz/timeoffsets.cpp
Line | Count | Source |
1 | | // Copyright (c) 2024-present 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 <node/timeoffsets.h> |
6 | | #include <node/warnings.h> |
7 | | #include <test/fuzz/FuzzedDataProvider.h> |
8 | | #include <test/fuzz/fuzz.h> |
9 | | #include <test/util/setup_common.h> |
10 | | |
11 | | #include <chrono> |
12 | | #include <cstdint> |
13 | | #include <functional> |
14 | | |
15 | | void initialize_timeoffsets() |
16 | 0 | { |
17 | 0 | static const auto testing_setup = MakeNoLogFileContext<>(ChainType::MAIN); |
18 | 0 | } |
19 | | |
20 | | FUZZ_TARGET(timeoffsets, .init = initialize_timeoffsets) |
21 | 0 | { |
22 | 0 | FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); |
23 | 0 | node::Warnings warnings{}; |
24 | 0 | TimeOffsets offsets{warnings}; |
25 | 0 | LIMITED_WHILE(fuzzed_data_provider.remaining_bytes() > 0, 4'000) { |
26 | 0 | (void)offsets.Median(); |
27 | 0 | offsets.Add(std::chrono::seconds{fuzzed_data_provider.ConsumeIntegral<std::chrono::seconds::rep>()}); |
28 | 0 | offsets.WarnIfOutOfSync(); |
29 | 0 | } |
30 | 0 | } |