Skip to content

Commit 3984b78

Browse files
committed
test: Add tests for CNode::ConnectedThroughNetwork
1 parent 49fba9c commit 3984b78

File tree

2 files changed

+45
-4
lines changed

2 files changed

+45
-4
lines changed

src/test/fuzz/net.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ void test_one_input(const std::vector<uint8_t>& buffer)
4646
fuzzed_data_provider.ConsumeIntegral<uint64_t>(),
4747
*address_bind,
4848
fuzzed_data_provider.ConsumeRandomLengthString(32),
49-
fuzzed_data_provider.PickValueInArray({ConnectionType::INBOUND, ConnectionType::OUTBOUND_FULL_RELAY, ConnectionType::MANUAL, ConnectionType::FEELER, ConnectionType::BLOCK_RELAY, ConnectionType::ADDR_FETCH})};
49+
fuzzed_data_provider.PickValueInArray({ConnectionType::INBOUND, ConnectionType::OUTBOUND_FULL_RELAY, ConnectionType::MANUAL, ConnectionType::FEELER, ConnectionType::BLOCK_RELAY, ConnectionType::ADDR_FETCH}),
50+
fuzzed_data_provider.ConsumeBool()};
5051
while (fuzzed_data_provider.ConsumeBool()) {
5152
switch (fuzzed_data_provider.ConsumeIntegralInRange<int>(0, 11)) {
5253
case 0: {
@@ -148,4 +149,5 @@ void test_one_input(const std::vector<uint8_t>& buffer)
148149
fuzzed_data_provider.PickValueInArray<NetPermissionFlags>({NetPermissionFlags::PF_NONE, NetPermissionFlags::PF_BLOOMFILTER, NetPermissionFlags::PF_RELAY, NetPermissionFlags::PF_FORCERELAY, NetPermissionFlags::PF_NOBAN, NetPermissionFlags::PF_MEMPOOL, NetPermissionFlags::PF_ISIMPLICIT, NetPermissionFlags::PF_ALL}) :
149150
static_cast<NetPermissionFlags>(fuzzed_data_provider.ConsumeIntegral<uint32_t>());
150151
(void)node.HasPermission(net_permission_flags);
152+
(void)node.ConnectedThroughNetwork();
151153
}

src/test/net_tests.cpp

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,21 +185,60 @@ BOOST_AUTO_TEST_CASE(cnode_simple_test)
185185
CAddress addr = CAddress(CService(ipv4Addr, 7777), NODE_NETWORK);
186186
std::string pszDest;
187187

188-
std::unique_ptr<CNode> pnode1 = MakeUnique<CNode>(id++, NODE_NETWORK, height, hSocket, addr, 0, 0, CAddress(), pszDest, ConnectionType::OUTBOUND_FULL_RELAY);
188+
std::unique_ptr<CNode> pnode1 = MakeUnique<CNode>(
189+
id++, NODE_NETWORK, height, hSocket, addr,
190+
/* nKeyedNetGroupIn = */ 0,
191+
/* nLocalHostNonceIn = */ 0,
192+
CAddress(), pszDest, ConnectionType::OUTBOUND_FULL_RELAY);
189193
BOOST_CHECK(pnode1->IsFullOutboundConn() == true);
190194
BOOST_CHECK(pnode1->IsManualConn() == false);
191195
BOOST_CHECK(pnode1->IsBlockOnlyConn() == false);
192196
BOOST_CHECK(pnode1->IsFeelerConn() == false);
193197
BOOST_CHECK(pnode1->IsAddrFetchConn() == false);
194198
BOOST_CHECK(pnode1->IsInboundConn() == false);
195-
196-
std::unique_ptr<CNode> pnode2 = MakeUnique<CNode>(id++, NODE_NETWORK, height, hSocket, addr, 1, 1, CAddress(), pszDest, ConnectionType::INBOUND);
199+
BOOST_CHECK_EQUAL(pnode1->ConnectedThroughNetwork(), Network::NET_IPV4);
200+
201+
std::unique_ptr<CNode> pnode2 = MakeUnique<CNode>(
202+
id++, NODE_NETWORK, height, hSocket, addr,
203+
/* nKeyedNetGroupIn = */ 1,
204+
/* nLocalHostNonceIn = */ 1,
205+
CAddress(), pszDest, ConnectionType::INBOUND,
206+
/* inbound_onion = */ false);
197207
BOOST_CHECK(pnode2->IsFullOutboundConn() == false);
198208
BOOST_CHECK(pnode2->IsManualConn() == false);
199209
BOOST_CHECK(pnode2->IsBlockOnlyConn() == false);
200210
BOOST_CHECK(pnode2->IsFeelerConn() == false);
201211
BOOST_CHECK(pnode2->IsAddrFetchConn() == false);
202212
BOOST_CHECK(pnode2->IsInboundConn() == true);
213+
BOOST_CHECK_EQUAL(pnode2->ConnectedThroughNetwork(), Network::NET_IPV4);
214+
215+
std::unique_ptr<CNode> pnode3 = MakeUnique<CNode>(
216+
id++, NODE_NETWORK, height, hSocket, addr,
217+
/* nKeyedNetGroupIn = */ 0,
218+
/* nLocalHostNonceIn = */ 0,
219+
CAddress(), pszDest, ConnectionType::OUTBOUND_FULL_RELAY,
220+
/* inbound_onion = */ true);
221+
BOOST_CHECK(pnode3->IsFullOutboundConn() == true);
222+
BOOST_CHECK(pnode3->IsManualConn() == false);
223+
BOOST_CHECK(pnode3->IsBlockOnlyConn() == false);
224+
BOOST_CHECK(pnode3->IsFeelerConn() == false);
225+
BOOST_CHECK(pnode3->IsAddrFetchConn() == false);
226+
BOOST_CHECK(pnode3->IsInboundConn() == false);
227+
BOOST_CHECK_EQUAL(pnode3->ConnectedThroughNetwork(), Network::NET_IPV4);
228+
229+
std::unique_ptr<CNode> pnode4 = MakeUnique<CNode>(
230+
id++, NODE_NETWORK, height, hSocket, addr,
231+
/* nKeyedNetGroupIn = */ 1,
232+
/* nLocalHostNonceIn = */ 1,
233+
CAddress(), pszDest, ConnectionType::INBOUND,
234+
/* inbound_onion = */ true);
235+
BOOST_CHECK(pnode4->IsFullOutboundConn() == false);
236+
BOOST_CHECK(pnode4->IsManualConn() == false);
237+
BOOST_CHECK(pnode4->IsBlockOnlyConn() == false);
238+
BOOST_CHECK(pnode4->IsFeelerConn() == false);
239+
BOOST_CHECK(pnode4->IsAddrFetchConn() == false);
240+
BOOST_CHECK(pnode4->IsInboundConn() == true);
241+
BOOST_CHECK_EQUAL(pnode4->ConnectedThroughNetwork(), Network::NET_ONION);
203242
}
204243

205244
BOOST_AUTO_TEST_CASE(cnetaddr_basic)

0 commit comments

Comments
 (0)