Bitcoin Core  22.99.0
P2P Digital Currency
protocol.cpp
Go to the documentation of this file.
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>
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 FUZZ_TARGET(protocol)
16 {
17  FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
18  const std::optional<CInv> inv = ConsumeDeserializable<CInv>(fuzzed_data_provider);
19  if (!inv) {
20  return;
21  }
22  try {
23  (void)inv->GetCommand();
24  } catch (const std::out_of_range&) {
25  }
26  (void)inv->ToString();
27  const std::optional<CInv> another_inv = ConsumeDeserializable<CInv>(fuzzed_data_provider);
28  if (!another_inv) {
29  return;
30  }
31  (void)(*inv < *another_inv);
32 }
util.h
FuzzedDataProvider.h
fuzz.h
FuzzedDataProvider
Definition: FuzzedDataProvider.h:31
FUZZ_TARGET
FUZZ_TARGET(protocol)
Definition: protocol.cpp:15