@@ -196,55 +196,59 @@ BOOST_AUTO_TEST_CASE(addrman_select)
196
196
BOOST_AUTO_TEST_CASE (addrman_select_by_network)
197
197
{
198
198
auto addrman = std::make_unique<AddrMan>(EMPTY_NETGROUPMAN, DETERMINISTIC, GetCheckRatio (m_node));
199
- BOOST_CHECK (!addrman->Select (/* new_only=*/ true , NET_IPV4).first .IsValid ());
200
- BOOST_CHECK (!addrman->Select (/* new_only=*/ false , NET_IPV4).first .IsValid ());
199
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ true , { NET_IPV4} ).first .IsValid ());
200
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , { NET_IPV4} ).first .IsValid ());
201
201
202
202
// add ipv4 address to the new table
203
203
CNetAddr source = ResolveIP (" 252.2.2.2" );
204
204
CService addr1 = ResolveService (" 250.1.1.1" , 8333 );
205
205
BOOST_CHECK (addrman->Add ({CAddress (addr1, NODE_NONE)}, source));
206
206
207
- BOOST_CHECK (addrman->Select (/* new_only=*/ true , NET_IPV4).first == addr1);
208
- BOOST_CHECK (addrman->Select (/* new_only=*/ false , NET_IPV4).first == addr1);
209
- BOOST_CHECK (!addrman->Select (/* new_only=*/ false , NET_IPV6).first .IsValid ());
210
- BOOST_CHECK (!addrman->Select (/* new_only=*/ false , NET_ONION).first .IsValid ());
211
- BOOST_CHECK (!addrman->Select (/* new_only=*/ false , NET_I2P).first .IsValid ());
212
- BOOST_CHECK (!addrman->Select (/* new_only=*/ false , NET_CJDNS).first .IsValid ());
213
- BOOST_CHECK (!addrman->Select (/* new_only=*/ true , NET_CJDNS).first .IsValid ());
207
+ BOOST_CHECK (addrman->Select (/* new_only=*/ true , { NET_IPV4} ).first == addr1);
208
+ BOOST_CHECK (addrman->Select (/* new_only=*/ false , { NET_IPV4} ).first == addr1);
209
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , { NET_IPV6} ).first .IsValid ());
210
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , { NET_ONION} ).first .IsValid ());
211
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , { NET_I2P} ).first .IsValid ());
212
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , { NET_CJDNS} ).first .IsValid ());
213
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ true , { NET_CJDNS} ).first .IsValid ());
214
214
BOOST_CHECK (addrman->Select (/* new_only=*/ false ).first == addr1);
215
215
216
216
// add I2P address to the new table
217
217
CAddress i2p_addr;
218
218
i2p_addr.SetSpecial (" udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p" );
219
219
BOOST_CHECK (addrman->Add ({i2p_addr}, source));
220
220
221
- BOOST_CHECK (addrman->Select (/* new_only=*/ true , NET_I2P).first == i2p_addr);
222
- BOOST_CHECK (addrman->Select (/* new_only=*/ false , NET_I2P).first == i2p_addr);
223
- BOOST_CHECK (addrman->Select (/* new_only=*/ false , NET_IPV4).first == addr1);
224
- BOOST_CHECK (!addrman->Select (/* new_only=*/ false , NET_IPV6).first .IsValid ());
225
- BOOST_CHECK (!addrman->Select (/* new_only=*/ false , NET_ONION).first .IsValid ());
226
- BOOST_CHECK (!addrman->Select (/* new_only=*/ false , NET_CJDNS).first .IsValid ());
221
+ BOOST_CHECK (addrman->Select (/* new_only=*/ true , {NET_I2P}).first == i2p_addr);
222
+ BOOST_CHECK (addrman->Select (/* new_only=*/ false , {NET_I2P}).first == i2p_addr);
223
+ BOOST_CHECK (addrman->Select (/* new_only=*/ false , {NET_IPV4}).first == addr1);
224
+ std::unordered_set<Network> nets_with_entries = {NET_IPV4, NET_I2P};
225
+ BOOST_CHECK (addrman->Select (/* new_only=*/ false , nets_with_entries).first .IsValid ());
226
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , {NET_IPV6}).first .IsValid ());
227
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , {NET_ONION}).first .IsValid ());
228
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , {NET_CJDNS}).first .IsValid ());
229
+ std::unordered_set<Network> nets_without_entries = {NET_IPV6, NET_ONION, NET_CJDNS};
230
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ false , nets_without_entries).first .IsValid ());
227
231
228
232
// bump I2P address to tried table
229
233
BOOST_CHECK (addrman->Good (i2p_addr));
230
234
231
- BOOST_CHECK (!addrman->Select (/* new_only=*/ true , NET_I2P).first .IsValid ());
232
- BOOST_CHECK (addrman->Select (/* new_only=*/ false , NET_I2P).first == i2p_addr);
235
+ BOOST_CHECK (!addrman->Select (/* new_only=*/ true , { NET_I2P} ).first .IsValid ());
236
+ BOOST_CHECK (addrman->Select (/* new_only=*/ false , { NET_I2P} ).first == i2p_addr);
233
237
234
238
// add another I2P address to the new table
235
239
CAddress i2p_addr2;
236
240
i2p_addr2.SetSpecial (" c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.b32.i2p" );
237
241
BOOST_CHECK (addrman->Add ({i2p_addr2}, source));
238
242
239
- BOOST_CHECK (addrman->Select (/* new_only=*/ true , NET_I2P).first == i2p_addr2);
243
+ BOOST_CHECK (addrman->Select (/* new_only=*/ true , { NET_I2P} ).first == i2p_addr2);
240
244
241
245
// ensure that both new and tried table are selected from
242
246
bool new_selected{false };
243
247
bool tried_selected{false };
244
248
int counter = 256 ;
245
249
246
250
while (--counter > 0 && (!new_selected || !tried_selected)) {
247
- const CAddress selected{addrman->Select (/* new_only=*/ false , NET_I2P).first };
251
+ const CAddress selected{addrman->Select (/* new_only=*/ false , { NET_I2P} ).first };
248
252
BOOST_REQUIRE (selected == i2p_addr || selected == i2p_addr2);
249
253
if (selected == i2p_addr) {
250
254
tried_selected = true ;
@@ -277,7 +281,7 @@ BOOST_AUTO_TEST_CASE(addrman_select_special)
277
281
// since the only ipv4 address is on the new table, ensure that the new
278
282
// table gets selected even if new_only is false. if the table was being
279
283
// selected at random, this test will sporadically fail
280
- BOOST_CHECK (addrman->Select (/* new_only=*/ false , NET_IPV4).first == addr1);
284
+ BOOST_CHECK (addrman->Select (/* new_only=*/ false , { NET_IPV4} ).first == addr1);
281
285
}
282
286
283
287
BOOST_AUTO_TEST_CASE (addrman_new_collisions)
0 commit comments