Branch data Line data Source code
1 : : // Copyright (c) 2020 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 <protocol.h>
6 : : #include <test/fuzz/FuzzedDataProvider.h>
7 : : #include <test/fuzz/fuzz.h>
8 : : #include <test/fuzz/util.h>
9 : :
10 : : #include <cstdint>
11 : : #include <optional>
12 : : #include <stdexcept>
13 : : #include <vector>
14 : :
15 [ + - ]: 449 : FUZZ_TARGET(protocol)
16 : : {
17 : 37 : FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
18 : 37 : const std::optional<CInv> inv = ConsumeDeserializable<CInv>(fuzzed_data_provider);
19 [ + + ]: 37 : if (!inv) {
20 : : return;
21 : : }
22 : 22 : try {
23 [ + + ]: 37 : (void)inv->GetMessageType();
24 [ - + ]: 7 : } catch (const std::out_of_range&) {
25 : 7 : }
26 : 22 : (void)inv->ToString();
27 : 22 : const std::optional<CInv> another_inv = ConsumeDeserializable<CInv>(fuzzed_data_provider);
28 [ + + ]: 22 : if (!another_inv) {
29 : : return;
30 : : }
31 : 8 : (void)(*inv < *another_inv);
32 : : }
|