Changeset View
Changeset View
Standalone View
Standalone View
src/avalanche/test/peermanager_tests.cpp
Show First 20 Lines • Show All 340 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(remove_peer) { | ||||
// Add 4 peers. | // Add 4 peers. | ||||
std::array<PeerId, 8> peerids; | std::array<PeerId, 8> peerids; | ||||
for (int i = 0; i < 4; i++) { | for (int i = 0; i < 4; i++) { | ||||
auto p = buildRandomProof(active_chainstate, MIN_VALID_PROOF_SCORE); | auto p = buildRandomProof(active_chainstate, MIN_VALID_PROOF_SCORE); | ||||
peerids[i] = TestPeerManager::registerAndGetPeerId(pm, p); | peerids[i] = TestPeerManager::registerAndGetPeerId(pm, p); | ||||
BOOST_CHECK(pm.addNode(InsecureRand32(), p->getId())); | BOOST_CHECK(pm.addNode(InsecureRand32(), p->getId())); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 400); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 40000); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | ||||
for (int i = 0; i < 100; i++) { | for (int i = 0; i < 100; i++) { | ||||
PeerId p = pm.selectPeer(); | PeerId p = pm.selectPeer(); | ||||
BOOST_CHECK(p == peerids[0] || p == peerids[1] || p == peerids[2] || | BOOST_CHECK(p == peerids[0] || p == peerids[1] || p == peerids[2] || | ||||
p == peerids[3]); | p == peerids[3]); | ||||
} | } | ||||
// Remove one peer, it nevers show up now. | // Remove one peer, it nevers show up now. | ||||
BOOST_CHECK(pm.removePeer(peerids[2])); | BOOST_CHECK(pm.removePeer(peerids[2])); | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 400); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 40000); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 100); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 10000); | ||||
// Make sure we compact to never get NO_PEER. | // Make sure we compact to never get NO_PEER. | ||||
BOOST_CHECK_EQUAL(pm.compact(), 100); | BOOST_CHECK_EQUAL(pm.compact(), 10000); | ||||
BOOST_CHECK(pm.verify()); | BOOST_CHECK(pm.verify()); | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 300); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 30000); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | ||||
for (int i = 0; i < 100; i++) { | for (int i = 0; i < 100; i++) { | ||||
PeerId p = pm.selectPeer(); | PeerId p = pm.selectPeer(); | ||||
BOOST_CHECK(p == peerids[0] || p == peerids[1] || p == peerids[3]); | BOOST_CHECK(p == peerids[0] || p == peerids[1] || p == peerids[3]); | ||||
} | } | ||||
// Add 4 more peers. | // Add 4 more peers. | ||||
for (int i = 0; i < 4; i++) { | for (int i = 0; i < 4; i++) { | ||||
auto p = buildRandomProof(active_chainstate, MIN_VALID_PROOF_SCORE); | auto p = buildRandomProof(active_chainstate, MIN_VALID_PROOF_SCORE); | ||||
peerids[i + 4] = TestPeerManager::registerAndGetPeerId(pm, p); | peerids[i + 4] = TestPeerManager::registerAndGetPeerId(pm, p); | ||||
BOOST_CHECK(pm.addNode(InsecureRand32(), p->getId())); | BOOST_CHECK(pm.addNode(InsecureRand32(), p->getId())); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 700); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 70000); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | ||||
BOOST_CHECK(pm.removePeer(peerids[0])); | BOOST_CHECK(pm.removePeer(peerids[0])); | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 700); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 70000); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 100); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 10000); | ||||
// Removing the last entry do not increase fragmentation. | // Removing the last entry do not increase fragmentation. | ||||
BOOST_CHECK(pm.removePeer(peerids[7])); | BOOST_CHECK(pm.removePeer(peerids[7])); | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 600); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 60000); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 100); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 10000); | ||||
// Make sure we compact to never get NO_PEER. | // Make sure we compact to never get NO_PEER. | ||||
BOOST_CHECK_EQUAL(pm.compact(), 100); | BOOST_CHECK_EQUAL(pm.compact(), 10000); | ||||
BOOST_CHECK(pm.verify()); | BOOST_CHECK(pm.verify()); | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 500); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 50000); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | ||||
for (int i = 0; i < 100; i++) { | for (int i = 0; i < 100; i++) { | ||||
PeerId p = pm.selectPeer(); | PeerId p = pm.selectPeer(); | ||||
BOOST_CHECK(p == peerids[1] || p == peerids[3] || p == peerids[4] || | BOOST_CHECK(p == peerids[1] || p == peerids[3] || p == peerids[4] || | ||||
p == peerids[5] || p == peerids[6]); | p == peerids[5] || p == peerids[6]); | ||||
} | } | ||||
Show All 17 Lines | for (int i = 0; i < 4; i++) { | ||||
BOOST_CHECK(pm.addNode(InsecureRand32(), p->getId())); | BOOST_CHECK(pm.addNode(InsecureRand32(), p->getId())); | ||||
} | } | ||||
// Remove all peers. | // Remove all peers. | ||||
for (auto p : peerids) { | for (auto p : peerids) { | ||||
pm.removePeer(p); | pm.removePeer(p); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 300); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 30000); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 300); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 30000); | ||||
for (int i = 0; i < 100; i++) { | for (int i = 0; i < 100; i++) { | ||||
BOOST_CHECK_EQUAL(pm.selectPeer(), NO_PEER); | BOOST_CHECK_EQUAL(pm.selectPeer(), NO_PEER); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(pm.compact(), 300); | BOOST_CHECK_EQUAL(pm.compact(), 30000); | ||||
BOOST_CHECK(pm.verify()); | BOOST_CHECK(pm.verify()); | ||||
BOOST_CHECK_EQUAL(pm.getSlotCount(), 0); | BOOST_CHECK_EQUAL(pm.getSlotCount(), 0); | ||||
BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | BOOST_CHECK_EQUAL(pm.getFragmentation(), 0); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(node_crud) { | BOOST_AUTO_TEST_CASE(node_crud) { | ||||
ChainstateManager &chainman = *Assert(m_node.chainman); | ChainstateManager &chainman = *Assert(m_node.chainman); | ||||
avalanche::PeerManager pm(PROOF_DUST_THRESHOLD, chainman); | avalanche::PeerManager pm(PROOF_DUST_THRESHOLD, chainman); | ||||
▲ Show 20 Lines • Show All 1,611 Lines • Show Last 20 Lines |