@@ -823,6 +823,8 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
823
823
// Should swap 36 for 19.
824
824
addrman->ResolveCollisions ();
825
825
BOOST_CHECK (addrman->SelectTriedCollision ().first .ToString () == " [::]:0" );
826
+ AddressPosition addr_pos{addrman->FindAddressEntry (CAddress (addr, NODE_NONE)).value ()};
827
+ BOOST_CHECK (addr_pos.tried );
826
828
827
829
// If 36 was swapped for 19, then adding 36 to tried should fail because we
828
830
// are attempting to add a duplicate.
@@ -837,8 +839,15 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
837
839
BOOST_CHECK (!addrman->Good (addr19));
838
840
BOOST_CHECK_EQUAL (addrman->SelectTriedCollision ().first .ToString (), " 250.1.1.36:0" );
839
841
842
+ // Eviction is also successful if too much time has passed since last try
843
+ SetMockTime (GetTime () + 4 * 60 *60 );
840
844
addrman->ResolveCollisions ();
841
845
BOOST_CHECK (addrman->SelectTriedCollision ().first .ToString () == " [::]:0" );
846
+ // Now 19 is in tried again, and 36 back to new
847
+ AddressPosition addr_pos19{addrman->FindAddressEntry (CAddress (addr19, NODE_NONE)).value ()};
848
+ BOOST_CHECK (addr_pos19.tried );
849
+ AddressPosition addr_pos36{addrman->FindAddressEntry (CAddress (addr, NODE_NONE)).value ()};
850
+ BOOST_CHECK (!addr_pos36.tried );
842
851
}
843
852
844
853
static CDataStream AddrmanToStream (const AddrMan& addrman)
0 commit comments