@@ -700,65 +700,62 @@ BOOST_AUTO_TEST_CASE(addrman_serialization)
700
700
{
701
701
std::vector<bool > asmap1 = FromBytes (asmap_raw, sizeof (asmap_raw) * 8 );
702
702
703
- auto addrman_asmap1 = std::make_unique<AddrManTest >(asmap1);
704
- auto addrman_asmap1_dup = std::make_unique<AddrManTest >(asmap1);
705
- auto addrman_noasmap = std::make_unique<AddrManTest>( );
703
+ auto addrman_asmap1 = std::make_unique<AddrMan >(asmap1, /* deterministic= */ true , /* consistency_check_ratio= */ 100 );
704
+ auto addrman_asmap1_dup = std::make_unique<AddrMan >(asmap1, /* deterministic= */ true , /* consistency_check_ratio= */ 100 );
705
+ auto addrman_noasmap = std::make_unique<AddrMan>(std::vector< bool >(), /* deterministic= */ true , /* consistency_check_ratio= */ 100 );
706
706
CDataStream stream (SER_NETWORK, PROTOCOL_VERSION);
707
707
708
708
CAddress addr = CAddress (ResolveService (" 250.1.1.1" ), NODE_NONE);
709
709
CNetAddr default_source;
710
710
711
-
712
711
addrman_asmap1->Add ({addr}, default_source);
713
712
714
713
stream << *addrman_asmap1;
715
714
// serizalizing/deserializing addrman with the same asmap
716
715
stream >> *addrman_asmap1_dup;
717
716
718
- std::pair< int , int > bucketAndEntry_asmap1 = addrman_asmap1->GetBucketAndEntry (addr);
719
- std::pair< int , int > bucketAndEntry_asmap1_dup = addrman_asmap1_dup->GetBucketAndEntry (addr);
720
- BOOST_CHECK (bucketAndEntry_asmap1. second != - 1 );
721
- BOOST_CHECK (bucketAndEntry_asmap1_dup. second != - 1 );
717
+ AddressPosition addr_pos1 = addrman_asmap1->FindAddressEntry (addr). value ( );
718
+ AddressPosition addr_pos2 = addrman_asmap1_dup->FindAddressEntry (addr). value ( );
719
+ BOOST_CHECK (addr_pos1. multiplicity != 0 );
720
+ BOOST_CHECK (addr_pos2. multiplicity != 0 );
722
721
723
- BOOST_CHECK (bucketAndEntry_asmap1.first == bucketAndEntry_asmap1_dup.first );
724
- BOOST_CHECK (bucketAndEntry_asmap1.second == bucketAndEntry_asmap1_dup.second );
722
+ BOOST_CHECK (addr_pos1 == addr_pos2);
725
723
726
724
// deserializing asmaped peers.dat to non-asmaped addrman
727
725
stream << *addrman_asmap1;
728
726
stream >> *addrman_noasmap;
729
- std::pair< int , int > bucketAndEntry_noasmap = addrman_noasmap->GetBucketAndEntry (addr);
730
- BOOST_CHECK (bucketAndEntry_noasmap. second != - 1 );
731
- BOOST_CHECK (bucketAndEntry_asmap1. first != bucketAndEntry_noasmap. first );
732
- BOOST_CHECK (bucketAndEntry_asmap1. second != bucketAndEntry_noasmap. second );
727
+ AddressPosition addr_pos3 = addrman_noasmap->FindAddressEntry (addr). value ( );
728
+ BOOST_CHECK (addr_pos3. multiplicity != 0 );
729
+ BOOST_CHECK (addr_pos1. bucket != addr_pos3. bucket );
730
+ BOOST_CHECK (addr_pos1. position != addr_pos3. position );
733
731
734
732
// deserializing non-asmaped peers.dat to asmaped addrman
735
- addrman_asmap1 = std::make_unique<AddrManTest >(asmap1);
736
- addrman_noasmap = std::make_unique<AddrManTest>( );
733
+ addrman_asmap1 = std::make_unique<AddrMan >(asmap1, /* deterministic= */ true , /* consistency_check_ratio= */ 100 );
734
+ addrman_noasmap = std::make_unique<AddrMan>(std::vector< bool >(), /* deterministic= */ true , /* consistency_check_ratio= */ 100 );
737
735
addrman_noasmap->Add ({addr}, default_source);
738
736
stream << *addrman_noasmap;
739
737
stream >> *addrman_asmap1;
740
- std::pair< int , int > bucketAndEntry_asmap1_deser = addrman_asmap1-> GetBucketAndEntry (addr);
741
- BOOST_CHECK (bucketAndEntry_asmap1_deser. second != - 1 );
742
- BOOST_CHECK (bucketAndEntry_asmap1_deser. first != bucketAndEntry_noasmap. first );
743
- BOOST_CHECK (bucketAndEntry_asmap1_deser. first == bucketAndEntry_asmap1_dup. first );
744
- BOOST_CHECK (bucketAndEntry_asmap1_deser. second == bucketAndEntry_asmap1_dup. second );
738
+
739
+ AddressPosition addr_pos4 = addrman_asmap1-> FindAddressEntry (addr). value ( );
740
+ BOOST_CHECK (addr_pos4. multiplicity != 0 );
741
+ BOOST_CHECK (addr_pos4. bucket != addr_pos3. bucket );
742
+ BOOST_CHECK (addr_pos4 == addr_pos2 );
745
743
746
744
// used to map to different buckets, now maps to the same bucket.
747
- addrman_asmap1 = std::make_unique<AddrManTest >(asmap1);
748
- addrman_noasmap = std::make_unique<AddrManTest>( );
745
+ addrman_asmap1 = std::make_unique<AddrMan >(asmap1, /* deterministic= */ true , /* consistency_check_ratio= */ 100 );
746
+ addrman_noasmap = std::make_unique<AddrMan>(std::vector< bool >(), /* deterministic= */ true , /* consistency_check_ratio= */ 100 );
749
747
CAddress addr1 = CAddress (ResolveService (" 250.1.1.1" ), NODE_NONE);
750
748
CAddress addr2 = CAddress (ResolveService (" 250.2.1.1" ), NODE_NONE);
751
749
addrman_noasmap->Add ({addr, addr2}, default_source);
752
- std::pair<int , int > bucketAndEntry_noasmap_addr1 = addrman_noasmap->GetBucketAndEntry (addr1);
753
- std::pair<int , int > bucketAndEntry_noasmap_addr2 = addrman_noasmap->GetBucketAndEntry (addr2);
754
- BOOST_CHECK (bucketAndEntry_noasmap_addr1.first != bucketAndEntry_noasmap_addr2.first );
755
- BOOST_CHECK (bucketAndEntry_noasmap_addr1.second != bucketAndEntry_noasmap_addr2.second );
750
+ AddressPosition addr_pos5 = addrman_noasmap->FindAddressEntry (addr1).value ();
751
+ AddressPosition addr_pos6 = addrman_noasmap->FindAddressEntry (addr2).value ();
752
+ BOOST_CHECK (addr_pos5.bucket != addr_pos6.bucket );
756
753
stream << *addrman_noasmap;
757
754
stream >> *addrman_asmap1;
758
- std::pair< int , int > bucketAndEntry_asmap1_deser_addr1 = addrman_asmap1->GetBucketAndEntry (addr1);
759
- std::pair< int , int > bucketAndEntry_asmap1_deser_addr2 = addrman_asmap1->GetBucketAndEntry (addr2);
760
- BOOST_CHECK (bucketAndEntry_asmap1_deser_addr1. first == bucketAndEntry_asmap1_deser_addr2. first );
761
- BOOST_CHECK (bucketAndEntry_asmap1_deser_addr1. second != bucketAndEntry_asmap1_deser_addr2. second );
755
+ AddressPosition addr_pos7 = addrman_asmap1->FindAddressEntry (addr1). value ( );
756
+ AddressPosition addr_pos8 = addrman_asmap1->FindAddressEntry (addr2). value ( );
757
+ BOOST_CHECK (addr_pos7. bucket == addr_pos8. bucket );
758
+ BOOST_CHECK (addr_pos7. position != addr_pos8. position );
762
759
}
763
760
764
761
BOOST_AUTO_TEST_CASE (remove_invalid)
0 commit comments