@@ -132,16 +132,6 @@ class CAddrManTest : public CAddrMan
132
132
int64_t nLastTry = GetAdjustedTime ()-61 ;
133
133
Attempt (addr, count_failure, nLastTry);
134
134
}
135
-
136
- void Clear ()
137
- {
138
- CAddrMan::Clear ();
139
- if (deterministic) {
140
- LOCK (cs);
141
- nKey = uint256{1 };
142
- insecure_rand = FastRandomContext (true );
143
- }
144
- }
145
135
};
146
136
147
137
static CNetAddr ResolveIP (const std::string& ip)
@@ -175,27 +165,27 @@ BOOST_FIXTURE_TEST_SUITE(addrman_tests, BasicTestingSetup)
175
165
176
166
BOOST_AUTO_TEST_CASE(addrman_simple)
177
167
{
178
- CAddrManTest addrman;
168
+ auto addrman = std::make_unique<CAddrManTest>() ;
179
169
180
170
CNetAddr source = ResolveIP (" 252.2.2.2" );
181
171
182
172
// Test: Does Addrman respond correctly when empty.
183
- BOOST_CHECK_EQUAL (addrman. size (), 0U );
184
- CAddrInfo addr_null = addrman. Select ();
173
+ BOOST_CHECK_EQUAL (addrman-> size (), 0U );
174
+ CAddrInfo addr_null = addrman-> Select ();
185
175
BOOST_CHECK_EQUAL (addr_null.ToString (), " [::]:0" );
186
176
187
177
// Test: Does Addrman::Add work as expected.
188
178
CService addr1 = ResolveService (" 250.1.1.1" , 8333 );
189
- BOOST_CHECK (addrman. Add ({CAddress (addr1, NODE_NONE)}, source));
190
- BOOST_CHECK_EQUAL (addrman. size (), 1U );
191
- CAddrInfo addr_ret1 = addrman. Select ();
179
+ BOOST_CHECK (addrman-> Add ({CAddress (addr1, NODE_NONE)}, source));
180
+ BOOST_CHECK_EQUAL (addrman-> size (), 1U );
181
+ CAddrInfo addr_ret1 = addrman-> Select ();
192
182
BOOST_CHECK_EQUAL (addr_ret1.ToString (), " 250.1.1.1:8333" );
193
183
194
184
// Test: Does IP address deduplication work correctly.
195
185
// Expected dup IP should not be added.
196
186
CService addr1_dup = ResolveService (" 250.1.1.1" , 8333 );
197
- BOOST_CHECK (!addrman. Add ({CAddress (addr1_dup, NODE_NONE)}, source));
198
- BOOST_CHECK_EQUAL (addrman. size (), 1U );
187
+ BOOST_CHECK (!addrman-> Add ({CAddress (addr1_dup, NODE_NONE)}, source));
188
+ BOOST_CHECK_EQUAL (addrman-> size (), 1U );
199
189
200
190
201
191
// Test: New table has one addr and we add a diff addr we should
@@ -205,21 +195,16 @@ BOOST_AUTO_TEST_CASE(addrman_simple)
205
195
// success.
206
196
207
197
CService addr2 = ResolveService (" 250.1.1.2" , 8333 );
208
- BOOST_CHECK (addrman. Add ({CAddress (addr2, NODE_NONE)}, source));
209
- BOOST_CHECK (addrman. size () >= 1 );
198
+ BOOST_CHECK (addrman-> Add ({CAddress (addr2, NODE_NONE)}, source));
199
+ BOOST_CHECK (addrman-> size () >= 1 );
210
200
211
- // Test: AddrMan::Clear() should empty the new table.
212
- addrman.Clear ();
213
- BOOST_CHECK_EQUAL (addrman.size (), 0U );
214
- CAddrInfo addr_null2 = addrman.Select ();
215
- BOOST_CHECK_EQUAL (addr_null2.ToString (), " [::]:0" );
216
-
217
- // Test: AddrMan::Add multiple addresses works as expected
201
+ // Test: reset addrman and test AddrMan::Add multiple addresses works as expected
202
+ addrman = std::make_unique<CAddrManTest>();
218
203
std::vector<CAddress> vAddr;
219
204
vAddr.push_back (CAddress (ResolveService (" 250.1.1.3" , 8333 ), NODE_NONE));
220
205
vAddr.push_back (CAddress (ResolveService (" 250.1.1.4" , 8333 ), NODE_NONE));
221
- BOOST_CHECK (addrman. Add (vAddr, source));
222
- BOOST_CHECK (addrman. size () >= 1 );
206
+ BOOST_CHECK (addrman-> Add (vAddr, source));
207
+ BOOST_CHECK (addrman-> size () >= 1 );
223
208
}
224
209
225
210
BOOST_AUTO_TEST_CASE (addrman_ports)
@@ -774,63 +759,63 @@ BOOST_AUTO_TEST_CASE(addrman_serialization)
774
759
{
775
760
std::vector<bool > asmap1 = FromBytes (asmap_raw, sizeof (asmap_raw) * 8 );
776
761
777
- CAddrManTest addrman_asmap1 (true , asmap1);
778
- CAddrManTest addrman_asmap1_dup (true , asmap1);
779
- CAddrManTest addrman_noasmap;
762
+ auto addrman_asmap1 = std::make_unique<CAddrManTest> (true , asmap1);
763
+ auto addrman_asmap1_dup = std::make_unique<CAddrManTest> (true , asmap1);
764
+ auto addrman_noasmap = std::make_unique<CAddrManTest>() ;
780
765
CDataStream stream (SER_NETWORK, PROTOCOL_VERSION);
781
766
782
767
CAddress addr = CAddress (ResolveService (" 250.1.1.1" ), NODE_NONE);
783
768
CNetAddr default_source;
784
769
785
770
786
- addrman_asmap1. Add ({addr}, default_source);
771
+ addrman_asmap1-> Add ({addr}, default_source);
787
772
788
- stream << addrman_asmap1;
773
+ stream << * addrman_asmap1;
789
774
// serizalizing/deserializing addrman with the same asmap
790
- stream >> addrman_asmap1_dup;
775
+ stream >> * addrman_asmap1_dup;
791
776
792
- std::pair<int , int > bucketAndEntry_asmap1 = addrman_asmap1. GetBucketAndEntry (addr);
793
- std::pair<int , int > bucketAndEntry_asmap1_dup = addrman_asmap1_dup. GetBucketAndEntry (addr);
777
+ std::pair<int , int > bucketAndEntry_asmap1 = addrman_asmap1-> GetBucketAndEntry (addr);
778
+ std::pair<int , int > bucketAndEntry_asmap1_dup = addrman_asmap1_dup-> GetBucketAndEntry (addr);
794
779
BOOST_CHECK (bucketAndEntry_asmap1.second != -1 );
795
780
BOOST_CHECK (bucketAndEntry_asmap1_dup.second != -1 );
796
781
797
782
BOOST_CHECK (bucketAndEntry_asmap1.first == bucketAndEntry_asmap1_dup.first );
798
783
BOOST_CHECK (bucketAndEntry_asmap1.second == bucketAndEntry_asmap1_dup.second );
799
784
800
785
// deserializing asmaped peers.dat to non-asmaped addrman
801
- stream << addrman_asmap1;
802
- stream >> addrman_noasmap;
803
- std::pair<int , int > bucketAndEntry_noasmap = addrman_noasmap. GetBucketAndEntry (addr);
786
+ stream << * addrman_asmap1;
787
+ stream >> * addrman_noasmap;
788
+ std::pair<int , int > bucketAndEntry_noasmap = addrman_noasmap-> GetBucketAndEntry (addr);
804
789
BOOST_CHECK (bucketAndEntry_noasmap.second != -1 );
805
790
BOOST_CHECK (bucketAndEntry_asmap1.first != bucketAndEntry_noasmap.first );
806
791
BOOST_CHECK (bucketAndEntry_asmap1.second != bucketAndEntry_noasmap.second );
807
792
808
793
// deserializing non-asmaped peers.dat to asmaped addrman
809
- addrman_asmap1. Clear ( );
810
- addrman_noasmap. Clear ();
811
- addrman_noasmap. Add ({addr}, default_source);
812
- stream << addrman_noasmap;
813
- stream >> addrman_asmap1;
814
- std::pair<int , int > bucketAndEntry_asmap1_deser = addrman_asmap1. GetBucketAndEntry (addr);
794
+ addrman_asmap1 = std::make_unique<CAddrManTest>( true , asmap1 );
795
+ addrman_noasmap = std::make_unique<CAddrManTest> ();
796
+ addrman_noasmap-> Add ({addr}, default_source);
797
+ stream << * addrman_noasmap;
798
+ stream >> * addrman_asmap1;
799
+ std::pair<int , int > bucketAndEntry_asmap1_deser = addrman_asmap1-> GetBucketAndEntry (addr);
815
800
BOOST_CHECK (bucketAndEntry_asmap1_deser.second != -1 );
816
801
BOOST_CHECK (bucketAndEntry_asmap1_deser.first != bucketAndEntry_noasmap.first );
817
802
BOOST_CHECK (bucketAndEntry_asmap1_deser.first == bucketAndEntry_asmap1_dup.first );
818
803
BOOST_CHECK (bucketAndEntry_asmap1_deser.second == bucketAndEntry_asmap1_dup.second );
819
804
820
805
// used to map to different buckets, now maps to the same bucket.
821
- addrman_asmap1. Clear ( );
822
- addrman_noasmap. Clear ();
806
+ addrman_asmap1 = std::make_unique<CAddrManTest>( true , asmap1 );
807
+ addrman_noasmap = std::make_unique<CAddrManTest> ();
823
808
CAddress addr1 = CAddress (ResolveService (" 250.1.1.1" ), NODE_NONE);
824
809
CAddress addr2 = CAddress (ResolveService (" 250.2.1.1" ), NODE_NONE);
825
- addrman_noasmap. Add ({addr, addr2}, default_source);
826
- std::pair<int , int > bucketAndEntry_noasmap_addr1 = addrman_noasmap. GetBucketAndEntry (addr1);
827
- std::pair<int , int > bucketAndEntry_noasmap_addr2 = addrman_noasmap. GetBucketAndEntry (addr2);
810
+ addrman_noasmap-> Add ({addr, addr2}, default_source);
811
+ std::pair<int , int > bucketAndEntry_noasmap_addr1 = addrman_noasmap-> GetBucketAndEntry (addr1);
812
+ std::pair<int , int > bucketAndEntry_noasmap_addr2 = addrman_noasmap-> GetBucketAndEntry (addr2);
828
813
BOOST_CHECK (bucketAndEntry_noasmap_addr1.first != bucketAndEntry_noasmap_addr2.first );
829
814
BOOST_CHECK (bucketAndEntry_noasmap_addr1.second != bucketAndEntry_noasmap_addr2.second );
830
- stream << addrman_noasmap;
831
- stream >> addrman_asmap1;
832
- std::pair<int , int > bucketAndEntry_asmap1_deser_addr1 = addrman_asmap1. GetBucketAndEntry (addr1);
833
- std::pair<int , int > bucketAndEntry_asmap1_deser_addr2 = addrman_asmap1. GetBucketAndEntry (addr2);
815
+ stream << * addrman_noasmap;
816
+ stream >> * addrman_asmap1;
817
+ std::pair<int , int > bucketAndEntry_asmap1_deser_addr1 = addrman_asmap1-> GetBucketAndEntry (addr1);
818
+ std::pair<int , int > bucketAndEntry_asmap1_deser_addr2 = addrman_asmap1-> GetBucketAndEntry (addr2);
834
819
BOOST_CHECK (bucketAndEntry_asmap1_deser_addr1.first == bucketAndEntry_asmap1_deser_addr2.first );
835
820
BOOST_CHECK (bucketAndEntry_asmap1_deser_addr1.second != bucketAndEntry_asmap1_deser_addr2.second );
836
821
}
@@ -839,20 +824,20 @@ BOOST_AUTO_TEST_CASE(remove_invalid)
839
824
{
840
825
// Confirm that invalid addresses are ignored in unserialization.
841
826
842
- CAddrManTest addrman;
827
+ auto addrman = std::make_unique<CAddrManTest>() ;
843
828
CDataStream stream (SER_NETWORK, PROTOCOL_VERSION);
844
829
845
830
const CAddress new1{ResolveService (" 5.5.5.5" ), NODE_NONE};
846
831
const CAddress new2{ResolveService (" 6.6.6.6" ), NODE_NONE};
847
832
const CAddress tried1{ResolveService (" 7.7.7.7" ), NODE_NONE};
848
833
const CAddress tried2{ResolveService (" 8.8.8.8" ), NODE_NONE};
849
834
850
- addrman. Add ({new1, tried1, new2, tried2}, CNetAddr{});
851
- addrman. Good (tried1);
852
- addrman. Good (tried2);
853
- BOOST_REQUIRE_EQUAL (addrman. size (), 4 );
835
+ addrman-> Add ({new1, tried1, new2, tried2}, CNetAddr{});
836
+ addrman-> Good (tried1);
837
+ addrman-> Good (tried2);
838
+ BOOST_REQUIRE_EQUAL (addrman-> size (), 4 );
854
839
855
- stream << addrman;
840
+ stream << * addrman;
856
841
857
842
const std::string str{stream.str ()};
858
843
size_t pos;
@@ -871,9 +856,9 @@ BOOST_AUTO_TEST_CASE(remove_invalid)
871
856
BOOST_REQUIRE (pos + sizeof (tried2_raw_replacement) <= stream.size ());
872
857
memcpy (stream.data () + pos, tried2_raw_replacement, sizeof (tried2_raw_replacement));
873
858
874
- addrman. Clear ();
875
- stream >> addrman;
876
- BOOST_CHECK_EQUAL (addrman. size (), 2 );
859
+ addrman = std::make_unique<CAddrManTest> ();
860
+ stream >> * addrman;
861
+ BOOST_CHECK_EQUAL (addrman-> size (), 2 );
877
862
}
878
863
879
864
BOOST_AUTO_TEST_CASE (addrman_selecttriedcollision)
0 commit comments