@@ -196,55 +196,59 @@ BOOST_AUTO_TEST_CASE(addrman_select)
196196BOOST_AUTO_TEST_CASE (addrman_select_by_network)
197197{
198198 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 ());
201201
202202 // add ipv4 address to the new table
203203 CNetAddr source = ResolveIP (" 252.2.2.2" );
204204 CService addr1 = ResolveService (" 250.1.1.1" , 8333 );
205205 BOOST_CHECK (addrman->Add ({CAddress (addr1, NODE_NONE)}, source));
206206
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 ());
214214 BOOST_CHECK (addrman->Select (/* new_only=*/ false ).first == addr1);
215215
216216 // add I2P address to the new table
217217 CAddress i2p_addr;
218218 i2p_addr.SetSpecial (" udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p" );
219219 BOOST_CHECK (addrman->Add ({i2p_addr}, source));
220220
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 ());
227231
228232 // bump I2P address to tried table
229233 BOOST_CHECK (addrman->Good (i2p_addr));
230234
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);
233237
234238 // add another I2P address to the new table
235239 CAddress i2p_addr2;
236240 i2p_addr2.SetSpecial (" c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.b32.i2p" );
237241 BOOST_CHECK (addrman->Add ({i2p_addr2}, source));
238242
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);
240244
241245 // ensure that both new and tried table are selected from
242246 bool new_selected{false };
243247 bool tried_selected{false };
244248 int counter = 256 ;
245249
246250 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 };
248252 BOOST_REQUIRE (selected == i2p_addr || selected == i2p_addr2);
249253 if (selected == i2p_addr) {
250254 tried_selected = true ;
@@ -277,7 +281,7 @@ BOOST_AUTO_TEST_CASE(addrman_select_special)
277281 // since the only ipv4 address is on the new table, ensure that the new
278282 // table gets selected even if new_only is false. if the table was being
279283 // 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);
281285}
282286
283287BOOST_AUTO_TEST_CASE (addrman_new_collisions)
0 commit comments