| 61 | BOOST_FIXTURE_TEST_SUITE(addrman_tests, BasicTestingSetup) |
| 62 | |
| 63 | BOOST_AUTO_TEST_CASE(addrman_simple) |
| 64 | { |
| 65 | auto addrman = std::make_unique<AddrMan>(EMPTY_ASMAP, DETERMINISTIC, GetCheckRatio(m_node)); |
| 66 | |
| 67 | CNetAddr source = ResolveIP("252.2.2.2"); |
| 68 | |
| 69 | // Test: Does Addrman respond correctly when empty. |
| 70 | BOOST_CHECK_EQUAL(addrman->size(), 0U); |
| 71 | auto addr_null = addrman->Select().first; |
| 72 | BOOST_CHECK_EQUAL(addr_null.ToString(), "[::]:0"); |
| 73 | |
| 74 | // Test: Does Addrman::Add work as expected. |
| 75 | CService addr1 = ResolveService("250.1.1.1", 8333); |
| 76 | BOOST_CHECK(addrman->Add({CAddress(addr1, NODE_NONE)}, source)); |
| 77 | BOOST_CHECK_EQUAL(addrman->size(), 1U); |
| 78 | auto addr_ret1 = addrman->Select().first; |
| 79 | BOOST_CHECK_EQUAL(addr_ret1.ToString(), "250.1.1.1:8333"); |
| 80 | |
| 81 | // Test: Does IP address deduplication work correctly. |
| 82 | // Expected dup IP should not be added. |
| 83 | CService addr1_dup = ResolveService("250.1.1.1", 8333); |
| 84 | BOOST_CHECK(!addrman->Add({CAddress(addr1_dup, NODE_NONE)}, source)); |
| 85 | BOOST_CHECK_EQUAL(addrman->size(), 1U); |
| 86 | |
| 87 | |
| 88 | // Test: New table has one addr and we add a diff addr we should |
| 89 | // have at least one addr. |
| 90 | // Note that addrman's size cannot be tested reliably after insertion, as |
| 91 | // hash collisions may occur. But we can always be sure of at least one |
| 92 | // success. |
| 93 | |
| 94 | CService addr2 = ResolveService("250.1.1.2", 8333); |
| 95 | BOOST_CHECK(addrman->Add({CAddress(addr2, NODE_NONE)}, source)); |
| 96 | BOOST_CHECK(addrman->size() >= 1); |
| 97 | |
| 98 | // Test: reset addrman and test AddrMan::Add multiple addresses works as expected |
| 99 | addrman = std::make_unique<AddrMan>(EMPTY_ASMAP, DETERMINISTIC, GetCheckRatio(m_node)); |
| 100 | std::vector<CAddress> vAddr; |
| 101 | vAddr.push_back(CAddress(ResolveService("250.1.1.3", 8333), NODE_NONE)); |
| 102 | vAddr.push_back(CAddress(ResolveService("250.1.1.4", 8333), NODE_NONE)); |
| 103 | BOOST_CHECK(addrman->Add(vAddr, source)); |
| 104 | BOOST_CHECK(addrman->size() >= 1); |
| 105 | } |
| 106 | |
| 107 | BOOST_AUTO_TEST_CASE(addrman_ports) |
| 108 | { |
nothing calls this directly
no test coverage detected