Changeset View
Changeset View
Standalone View
Standalone View
src/test/fuzz/net.cpp
| Show All 25 Lines | |||||
| void initialize_net() { | void initialize_net() { | ||||
| static const auto testing_setup = MakeNoLogFileContext<>(ChainType::MAIN); | static const auto testing_setup = MakeNoLogFileContext<>(ChainType::MAIN); | ||||
| } | } | ||||
| FUZZ_TARGET_INIT(net, initialize_net) { | FUZZ_TARGET_INIT(net, initialize_net) { | ||||
| FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); | FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); | ||||
| const Config &config = GetConfig(); | const Config &config = GetConfig(); | ||||
| const std::optional<CAddress> address = | const std::optional<CAddress> address = ConsumeDeserializable<CAddress>( | ||||
| ConsumeDeserializable<CAddress>(fuzzed_data_provider); | fuzzed_data_provider, ConsumeDeserializationParams<CAddress::SerParams>( | ||||
| fuzzed_data_provider)); | |||||
| if (!address) { | if (!address) { | ||||
| return; | return; | ||||
| } | } | ||||
| const std::optional<CAddress> address_bind = | const std::optional<CAddress> address_bind = | ||||
| ConsumeDeserializable<CAddress>(fuzzed_data_provider); | ConsumeDeserializable<CAddress>( | ||||
| fuzzed_data_provider, | |||||
| ConsumeDeserializationParams<CAddress::SerParams>( | |||||
| fuzzed_data_provider)); | |||||
| if (!address_bind) { | if (!address_bind) { | ||||
| return; | return; | ||||
| } | } | ||||
| const auto sock = std::make_shared<FuzzedSock>(fuzzed_data_provider); | const auto sock = std::make_shared<FuzzedSock>(fuzzed_data_provider); | ||||
| CNode node{ | CNode node{ | ||||
| fuzzed_data_provider.ConsumeIntegral<NodeId>(), | fuzzed_data_provider.ConsumeIntegral<NodeId>(), | ||||
| sock, | sock, | ||||
| Show All 22 Lines | while (fuzzed_data_provider.ConsumeBool()) { | ||||
| }, | }, | ||||
| [&] { | [&] { | ||||
| if (node.GetRefCount() > 0) { | if (node.GetRefCount() > 0) { | ||||
| node.Release(); | node.Release(); | ||||
| } | } | ||||
| }, | }, | ||||
| [&] { | [&] { | ||||
| const std::optional<CService> service_opt = | const std::optional<CService> service_opt = | ||||
| ConsumeDeserializable<CService>(fuzzed_data_provider); | ConsumeDeserializable<CService>( | ||||
| fuzzed_data_provider, | |||||
| ConsumeDeserializationParams<CNetAddr::SerParams>( | |||||
| fuzzed_data_provider)); | |||||
| if (!service_opt) { | if (!service_opt) { | ||||
| return; | return; | ||||
| } | } | ||||
| node.SetAddrLocal(*service_opt); | node.SetAddrLocal(*service_opt); | ||||
| }, | }, | ||||
| [&] { | [&] { | ||||
| const std::vector<uint8_t> b = | const std::vector<uint8_t> b = | ||||
| ConsumeRandomLengthByteVector(fuzzed_data_provider); | ConsumeRandomLengthByteVector(fuzzed_data_provider); | ||||
| Show All 17 Lines | |||||