@@ -78,7 +78,7 @@ class CAddrManTest : public CAddrMan
7878 CAddrMan::Clear ();
7979 if (deterministic) {
8080 LOCK (cs);
81- nKey. SetNull () ;
81+ nKey = uint256{ 1 } ;
8282 insecure_rand = FastRandomContext (true );
8383 }
8484 }
@@ -256,24 +256,27 @@ BOOST_AUTO_TEST_CASE(addrman_new_collisions)
256256
257257 CNetAddr source = ResolveIP (" 252.2.2.2" );
258258
259- BOOST_CHECK_EQUAL (addrman.size (), 0U );
259+ uint32_t num_addrs{0 };
260+
261+ BOOST_CHECK_EQUAL (addrman.size (), num_addrs);
260262
261- for ( unsigned int i = 1 ; i < 18 ; i++) {
262- CService addr = ResolveService (" 250.1.1." + ToString (i ));
263+ while (num_addrs < 22 ) { // Magic number! 250.1.1.1 - 250.1.1.22 do not collide with deterministic key = 1
264+ CService addr = ResolveService (" 250.1.1." + ToString (++num_addrs ));
263265 BOOST_CHECK (addrman.Add (CAddress (addr, NODE_NONE), source));
264266
265267 // Test: No collision in new table yet.
266- BOOST_CHECK_EQUAL (addrman.size (), i );
268+ BOOST_CHECK_EQUAL (addrman.size (), num_addrs );
267269 }
268270
269271 // Test: new table collision!
270- CService addr1 = ResolveService (" 250.1.1.18" );
272+ CService addr1 = ResolveService (" 250.1.1." + ToString (++num_addrs));
273+ uint32_t collisions{1 };
271274 BOOST_CHECK (addrman.Add (CAddress (addr1, NODE_NONE), source));
272- BOOST_CHECK_EQUAL (addrman.size (), 17U );
275+ BOOST_CHECK_EQUAL (addrman.size (), num_addrs - collisions );
273276
274- CService addr2 = ResolveService (" 250.1.1.19 " );
277+ CService addr2 = ResolveService (" 250.1.1." + ToString (++num_addrs) );
275278 BOOST_CHECK (addrman.Add (CAddress (addr2, NODE_NONE), source));
276- BOOST_CHECK_EQUAL (addrman.size (), 18U );
279+ BOOST_CHECK_EQUAL (addrman.size (), num_addrs - collisions );
277280}
278281
279282BOOST_AUTO_TEST_CASE (addrman_tried_collisions)
@@ -282,25 +285,28 @@ BOOST_AUTO_TEST_CASE(addrman_tried_collisions)
282285
283286 CNetAddr source = ResolveIP (" 252.2.2.2" );
284287
285- BOOST_CHECK_EQUAL (addrman.size (), 0U );
288+ uint32_t num_addrs{0 };
289+
290+ BOOST_CHECK_EQUAL (addrman.size (), num_addrs);
286291
287- for ( unsigned int i = 1 ; i < 80 ; i++) {
288- CService addr = ResolveService (" 250.1.1." + ToString (i ));
292+ while (num_addrs < 64 ) { // Magic number! 250.1.1.1 - 250.1.1.64 do not collide with deterministic key = 1
293+ CService addr = ResolveService (" 250.1.1." + ToString (++num_addrs ));
289294 BOOST_CHECK (addrman.Add (CAddress (addr, NODE_NONE), source));
290295 addrman.Good (CAddress (addr, NODE_NONE));
291296
292297 // Test: No collision in tried table yet.
293- BOOST_CHECK_EQUAL (addrman.size (), i );
298+ BOOST_CHECK_EQUAL (addrman.size (), num_addrs );
294299 }
295300
296301 // Test: tried table collision!
297- CService addr1 = ResolveService (" 250.1.1.80" );
302+ CService addr1 = ResolveService (" 250.1.1." + ToString (++num_addrs));
303+ uint32_t collisions{1 };
298304 BOOST_CHECK (addrman.Add (CAddress (addr1, NODE_NONE), source));
299- BOOST_CHECK_EQUAL (addrman.size (), 79U );
305+ BOOST_CHECK_EQUAL (addrman.size (), num_addrs - collisions );
300306
301- CService addr2 = ResolveService (" 250.1.1.81 " );
307+ CService addr2 = ResolveService (" 250.1.1." + ToString (++num_addrs) );
302308 BOOST_CHECK (addrman.Add (CAddress (addr2, NODE_NONE), source));
303- BOOST_CHECK_EQUAL (addrman.size (), 80U );
309+ BOOST_CHECK_EQUAL (addrman.size (), num_addrs - collisions );
304310}
305311
306312BOOST_AUTO_TEST_CASE (addrman_find)
@@ -850,9 +856,9 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
850856{
851857 CAddrManTest addrman;
852858
853- // Add twenty two addresses.
859+ // Add 35 addresses.
854860 CNetAddr source = ResolveIP (" 252.2.2.2" );
855- for (unsigned int i = 1 ; i < 23 ; i++) {
861+ for (unsigned int i = 1 ; i < 36 ; i++) {
856862 CService addr = ResolveService (" 250.1.1." +ToString (i));
857863 BOOST_CHECK (addrman.Add (CAddress (addr, NODE_NONE), source));
858864 addrman.Good (addr);
@@ -862,20 +868,20 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
862868 BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " [::]:0" );
863869 }
864870
865- // Collision between 23 and 19.
866- CService addr23 = ResolveService (" 250.1.1.23 " );
867- BOOST_CHECK (addrman.Add (CAddress (addr23 , NODE_NONE), source));
868- addrman.Good (addr23 );
871+ // Collision between 36 and 19.
872+ CService addr36 = ResolveService (" 250.1.1.36 " );
873+ BOOST_CHECK (addrman.Add (CAddress (addr36 , NODE_NONE), source));
874+ addrman.Good (addr36 );
869875
870- BOOST_CHECK (addrman.size () == 23 );
871- BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " 250.1.1.19:0" );
876+ BOOST_CHECK (addrman.size () == 36 );
877+ BOOST_CHECK_EQUAL (addrman.SelectTriedCollision ().ToString (), " 250.1.1.19:0" );
872878
873- // 23 should be discarded and 19 not evicted.
879+ // 36 should be discarded and 19 not evicted.
874880 addrman.ResolveCollisions ();
875881 BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " [::]:0" );
876882
877883 // Lets create two collisions.
878- for (unsigned int i = 24 ; i < 33 ; i++) {
884+ for (unsigned int i = 37 ; i < 59 ; i++) {
879885 CService addr = ResolveService (" 250.1.1." +ToString (i));
880886 BOOST_CHECK (addrman.Add (CAddress (addr, NODE_NONE), source));
881887 addrman.Good (addr);
@@ -885,17 +891,17 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
885891 }
886892
887893 // Cause a collision.
888- CService addr33 = ResolveService (" 250.1.1.33 " );
889- BOOST_CHECK (addrman.Add (CAddress (addr33 , NODE_NONE), source));
890- addrman.Good (addr33 );
891- BOOST_CHECK (addrman.size () == 33 );
894+ CService addr59 = ResolveService (" 250.1.1.59 " );
895+ BOOST_CHECK (addrman.Add (CAddress (addr59 , NODE_NONE), source));
896+ addrman.Good (addr59 );
897+ BOOST_CHECK (addrman.size () == 59 );
892898
893- BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " 250.1.1.27 :0" );
899+ BOOST_CHECK_EQUAL (addrman.SelectTriedCollision ().ToString (), " 250.1.1.10 :0" );
894900
895901 // Cause a second collision.
896- BOOST_CHECK (!addrman.Add (CAddress (addr23 , NODE_NONE), source));
897- addrman.Good (addr23 );
898- BOOST_CHECK (addrman.size () == 33 );
902+ BOOST_CHECK (!addrman.Add (CAddress (addr36 , NODE_NONE), source));
903+ addrman.Good (addr36 );
904+ BOOST_CHECK (addrman.size () == 59 );
899905
900906 BOOST_CHECK (addrman.SelectTriedCollision ().ToString () != " [::]:0" );
901907 addrman.ResolveCollisions ();
@@ -911,9 +917,9 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
911917 // Empty addrman should return blank addrman info.
912918 BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " [::]:0" );
913919
914- // Add twenty two addresses.
920+ // Add 35 addresses
915921 CNetAddr source = ResolveIP (" 252.2.2.2" );
916- for (unsigned int i = 1 ; i < 23 ; i++) {
922+ for (unsigned int i = 1 ; i < 36 ; i++) {
917923 CService addr = ResolveService (" 250.1.1." +ToString (i));
918924 BOOST_CHECK (addrman.Add (CAddress (addr, NODE_NONE), source));
919925 addrman.Good (addr);
@@ -923,34 +929,34 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
923929 BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " [::]:0" );
924930 }
925931
926- // Collision between 23 and 19.
927- CService addr = ResolveService (" 250.1.1.23 " );
932+ // Collision between 36 and 19.
933+ CService addr = ResolveService (" 250.1.1.36 " );
928934 BOOST_CHECK (addrman.Add (CAddress (addr, NODE_NONE), source));
929935 addrman.Good (addr);
930936
931- BOOST_CHECK (addrman.size () == 23 );
937+ BOOST_CHECK_EQUAL (addrman.size (), 36 );
932938 CAddrInfo info = addrman.SelectTriedCollision ();
933- BOOST_CHECK (info.ToString () == " 250.1.1.19:0" );
939+ BOOST_CHECK_EQUAL (info.ToString (), " 250.1.1.19:0" );
934940
935941 // Ensure test of address fails, so that it is evicted.
936942 addrman.SimConnFail (info);
937943
938- // Should swap 23 for 19.
944+ // Should swap 36 for 19.
939945 addrman.ResolveCollisions ();
940946 BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " [::]:0" );
941947
942- // If 23 was swapped for 19, then this should cause no collisions.
948+ // If 36 was swapped for 19, then this should cause no collisions.
943949 BOOST_CHECK (!addrman.Add (CAddress (addr, NODE_NONE), source));
944950 addrman.Good (addr);
945951
946952 BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " [::]:0" );
947953
948- // If we insert 19 is should collide with 23.
954+ // If we insert 19 it should collide with 36
949955 CService addr19 = ResolveService (" 250.1.1.19" );
950956 BOOST_CHECK (!addrman.Add (CAddress (addr19, NODE_NONE), source));
951957 addrman.Good (addr19);
952958
953- BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " 250.1.1.23 :0" );
959+ BOOST_CHECK_EQUAL (addrman.SelectTriedCollision ().ToString (), " 250.1.1.36 :0" );
954960
955961 addrman.ResolveCollisions ();
956962 BOOST_CHECK (addrman.SelectTriedCollision ().ToString () == " [::]:0" );
0 commit comments