Skip to content

Commit 22a4d14

Browse files
test: increase coverage of addrman select (without network)
Co-authored-by: Martin Zumsande <[email protected]>
1 parent a98e542 commit 22a4d14

File tree

1 file changed

+19
-20
lines changed

1 file changed

+19
-20
lines changed

src/test/addrman_tests.cpp

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -132,59 +132,58 @@ BOOST_AUTO_TEST_CASE(addrman_ports)
132132
BOOST_CHECK_EQUAL(addr_ret3.ToStringAddrPort(), "250.1.1.1:8333");
133133
}
134134

135-
136135
BOOST_AUTO_TEST_CASE(addrman_select)
137136
{
138137
auto addrman = std::make_unique<AddrMan>(EMPTY_NETGROUPMAN, DETERMINISTIC, GetCheckRatio(m_node));
138+
BOOST_CHECK(!addrman->Select(false).first.IsValid());
139+
BOOST_CHECK(!addrman->Select(true).first.IsValid());
139140

140141
CNetAddr source = ResolveIP("252.2.2.2");
141142

142-
// Test: Select from new with 1 addr in new.
143+
// Add 1 address to the new table
143144
CService addr1 = ResolveService("250.1.1.1", 8333);
144145
BOOST_CHECK(addrman->Add({CAddress(addr1, NODE_NONE)}, source));
145146
BOOST_CHECK_EQUAL(addrman->Size(), 1U);
146147

147-
bool new_only = true;
148-
auto addr_ret1 = addrman->Select(new_only).first;
149-
BOOST_CHECK_EQUAL(addr_ret1.ToStringAddrPort(), "250.1.1.1:8333");
148+
BOOST_CHECK(addrman->Select(/*new_only=*/true).first == addr1);
149+
BOOST_CHECK(addrman->Select(/*new_only=*/false).first == addr1);
150150

151-
// Test: move addr to tried, select from new expected nothing returned.
151+
// Move address to the tried table
152152
BOOST_CHECK(addrman->Good(CAddress(addr1, NODE_NONE)));
153-
BOOST_CHECK_EQUAL(addrman->Size(), 1U);
154-
auto addr_ret2 = addrman->Select(new_only).first;
155-
BOOST_CHECK_EQUAL(addr_ret2.ToStringAddrPort(), "[::]:0");
156-
157-
auto addr_ret3 = addrman->Select().first;
158-
BOOST_CHECK_EQUAL(addr_ret3.ToStringAddrPort(), "250.1.1.1:8333");
159153

154+
BOOST_CHECK_EQUAL(addrman->Size(), 1U);
155+
BOOST_CHECK(!addrman->Select(/*new_only=*/true).first.IsValid());
156+
BOOST_CHECK(addrman->Select().first == addr1);
160157
BOOST_CHECK_EQUAL(addrman->Size(), 1U);
161158

162-
163-
// Add three addresses to new table.
159+
// Add one address to the new table
164160
CService addr2 = ResolveService("250.3.1.1", 8333);
161+
BOOST_CHECK(addrman->Add({CAddress(addr2, NODE_NONE)}, addr2));
162+
BOOST_CHECK(addrman->Select(/*new_only=*/true).first == addr2);
163+
164+
// Add two more addresses to the new table
165165
CService addr3 = ResolveService("250.3.2.2", 9999);
166166
CService addr4 = ResolveService("250.3.3.3", 9999);
167167

168-
BOOST_CHECK(addrman->Add({CAddress(addr2, NODE_NONE)}, ResolveService("250.3.1.1", 8333)));
169-
BOOST_CHECK(addrman->Add({CAddress(addr3, NODE_NONE)}, ResolveService("250.3.1.1", 8333)));
168+
BOOST_CHECK(addrman->Add({CAddress(addr3, NODE_NONE)}, addr2));
170169
BOOST_CHECK(addrman->Add({CAddress(addr4, NODE_NONE)}, ResolveService("250.4.1.1", 8333)));
171170

172171
// Add three addresses to tried table.
173172
CService addr5 = ResolveService("250.4.4.4", 8333);
174173
CService addr6 = ResolveService("250.4.5.5", 7777);
175174
CService addr7 = ResolveService("250.4.6.6", 8333);
176175

177-
BOOST_CHECK(addrman->Add({CAddress(addr5, NODE_NONE)}, ResolveService("250.3.1.1", 8333)));
176+
BOOST_CHECK(addrman->Add({CAddress(addr5, NODE_NONE)}, addr3));
178177
BOOST_CHECK(addrman->Good(CAddress(addr5, NODE_NONE)));
179-
BOOST_CHECK(addrman->Add({CAddress(addr6, NODE_NONE)}, ResolveService("250.3.1.1", 8333)));
178+
BOOST_CHECK(addrman->Add({CAddress(addr6, NODE_NONE)}, addr3));
180179
BOOST_CHECK(addrman->Good(CAddress(addr6, NODE_NONE)));
181180
BOOST_CHECK(addrman->Add({CAddress(addr7, NODE_NONE)}, ResolveService("250.1.1.3", 8333)));
182181
BOOST_CHECK(addrman->Good(CAddress(addr7, NODE_NONE)));
183182

184-
// Test: 6 addrs + 1 addr from last test = 7.
183+
// 6 addrs + 1 addr from last test = 7.
185184
BOOST_CHECK_EQUAL(addrman->Size(), 7U);
186185

187-
// Test: Select pulls from new and tried regardless of port number.
186+
// Select pulls from new and tried regardless of port number.
188187
std::set<uint16_t> ports;
189188
for (int i = 0; i < 20; ++i) {
190189
ports.insert(addrman->Select().first.GetPort());

0 commit comments

Comments
 (0)