2222
2323using namespace std ::literals;
2424
25- class AddrManSerializationMock : public AddrMan
26- {
27- public:
28- virtual void Serialize (CDataStream& s) const = 0;
29-
30- AddrManSerializationMock ()
31- : AddrMan(/* asmap */ std::vector<bool >(), /* deterministic */ true , /* consistency_check_ratio */ 100 )
32- {}
33- };
34-
35- class AddrManUncorrupted : public AddrManSerializationMock
36- {
37- public:
38- void Serialize (CDataStream& s) const override
39- {
40- AddrMan::Serialize (s);
41- }
42- };
43-
44- static CDataStream AddrmanToStream (const AddrManSerializationMock& _addrman)
45- {
46- CDataStream ssPeersIn (SER_DISK, CLIENT_VERSION);
47- ssPeersIn << Params ().MessageStart ();
48- ssPeersIn << _addrman;
49- std::string str = ssPeersIn.str ();
50- std::vector<unsigned char > vchData (str.begin (), str.end ());
51- return CDataStream (vchData, SER_DISK, CLIENT_VERSION);
52- }
53-
5425class AddrManTest : public AddrMan
5526{
5627public:
@@ -973,9 +944,20 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
973944 BOOST_CHECK (addrman.SelectTriedCollision ().first .ToString () == " [::]:0" );
974945}
975946
947+ static CDataStream AddrmanToStream (const AddrMan& addrman)
948+ {
949+ CDataStream ssPeersIn (SER_DISK, CLIENT_VERSION);
950+ ssPeersIn << Params ().MessageStart ();
951+ ssPeersIn << addrman;
952+ std::string str = ssPeersIn.str ();
953+ std::vector<unsigned char > vchData (str.begin (), str.end ());
954+ return CDataStream (vchData, SER_DISK, CLIENT_VERSION);
955+ }
956+
976957BOOST_AUTO_TEST_CASE (load_addrman)
977958{
978- AddrManUncorrupted addrmanUncorrupted;
959+ AddrMan addrman{/* asmap=*/ std::vector<bool >(), /* deterministic=*/ true ,
960+ /* consistency_check_ratio=*/ 100 };
979961
980962 CService addr1, addr2, addr3;
981963 BOOST_CHECK (Lookup (" 250.7.1.1" , addr1, 8333 , false ));
@@ -988,11 +970,11 @@ BOOST_AUTO_TEST_CASE(load_addrman)
988970 CService source;
989971 BOOST_CHECK (Lookup (" 252.5.1.1" , source, 8333 , false ));
990972 std::vector<CAddress> addresses{CAddress (addr1, NODE_NONE), CAddress (addr2, NODE_NONE), CAddress (addr3, NODE_NONE)};
991- BOOST_CHECK (addrmanUncorrupted .Add (addresses, source));
992- BOOST_CHECK (addrmanUncorrupted .size () == 3 );
973+ BOOST_CHECK (addrman .Add (addresses, source));
974+ BOOST_CHECK (addrman .size () == 3 );
993975
994976 // Test that the de-serialization does not throw an exception.
995- CDataStream ssPeers1 = AddrmanToStream (addrmanUncorrupted );
977+ CDataStream ssPeers1 = AddrmanToStream (addrman );
996978 bool exceptionThrown = false ;
997979 AddrMan addrman1 (/* asmap */ std::vector<bool >(), /* deterministic */ false , /* consistency_check_ratio */ 100 );
998980
@@ -1009,7 +991,7 @@ BOOST_AUTO_TEST_CASE(load_addrman)
1009991 BOOST_CHECK (exceptionThrown == false );
1010992
1011993 // Test that ReadFromStream creates an addrman with the correct number of addrs.
1012- CDataStream ssPeers2 = AddrmanToStream (addrmanUncorrupted );
994+ CDataStream ssPeers2 = AddrmanToStream (addrman );
1013995
1014996 AddrMan addrman2 (/* asmap */ std::vector<bool >(), /* deterministic */ false , /* consistency_check_ratio */ 100 );
1015997 BOOST_CHECK (addrman2.size () == 0 );
0 commit comments