@@ -844,49 +844,45 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
844
844
for (unsigned int i = 1 ; i < 36 ; i++) {
845
845
CService addr = ResolveService (" 250.1.1." + ToString (i));
846
846
BOOST_CHECK (addrman.Add ({CAddress (addr, NODE_NONE)}, source));
847
- addrman.Good (addr);
848
847
849
848
// No collision yet.
850
- BOOST_CHECK (addrman.size () == i);
851
- BOOST_CHECK (addrman.SelectTriedCollision ().first .ToString () == " [::]:0" );
849
+ BOOST_CHECK (addrman.Good (addr));
852
850
}
853
851
854
- // Collision between 36 and 19.
852
+ // Collision in tried table between 36 and 19.
855
853
CService addr36 = ResolveService (" 250.1.1.36" );
856
854
BOOST_CHECK (addrman.Add ({CAddress (addr36, NODE_NONE)}, source));
857
- addrman.Good (addr36);
858
-
859
- BOOST_CHECK (addrman.size () == 36 );
855
+ BOOST_CHECK (!addrman.Good (addr36));
860
856
BOOST_CHECK_EQUAL (addrman.SelectTriedCollision ().first .ToString (), " 250.1.1.19:0" );
861
857
862
858
// 36 should be discarded and 19 not evicted.
859
+ // This means we keep 19 in the tried table and
860
+ // 36 stays in the new table.
863
861
addrman.ResolveCollisions ();
864
862
BOOST_CHECK (addrman.SelectTriedCollision ().first .ToString () == " [::]:0" );
865
863
866
864
// Lets create two collisions.
867
865
for (unsigned int i = 37 ; i < 59 ; i++) {
868
866
CService addr = ResolveService (" 250.1.1." + ToString (i));
869
867
BOOST_CHECK (addrman.Add ({CAddress (addr, NODE_NONE)}, source));
870
- addrman.Good (addr);
871
-
872
- BOOST_CHECK (addrman.size () == i);
873
- BOOST_CHECK (addrman.SelectTriedCollision ().first .ToString () == " [::]:0" );
868
+ BOOST_CHECK (addrman.Good (addr));
874
869
}
875
870
876
- // Cause a collision.
871
+ // Cause a collision in the tried table .
877
872
CService addr59 = ResolveService (" 250.1.1.59" );
878
873
BOOST_CHECK (addrman.Add ({CAddress (addr59, NODE_NONE)}, source));
879
- addrman.Good (addr59);
880
- BOOST_CHECK (addrman.size () == 59 );
874
+ BOOST_CHECK (!addrman.Good (addr59));
881
875
882
876
BOOST_CHECK_EQUAL (addrman.SelectTriedCollision ().first .ToString (), " 250.1.1.10:0" );
883
877
884
- // Cause a second collision.
878
+ // Cause a second collision in the new table .
885
879
BOOST_CHECK (!addrman.Add ({CAddress (addr36, NODE_NONE)}, source));
886
- addrman.Good (addr36);
887
- BOOST_CHECK (addrman.size () == 59 );
888
880
881
+ // 36 still cannot be moved from new to tried due to colliding with 19
882
+ BOOST_CHECK (!addrman.Good (addr36));
889
883
BOOST_CHECK (addrman.SelectTriedCollision ().first .ToString () != " [::]:0" );
884
+
885
+ // Resolve all collisions.
890
886
addrman.ResolveCollisions ();
891
887
BOOST_CHECK (addrman.SelectTriedCollision ().first .ToString () == " [::]:0" );
892
888
}
0 commit comments