diff --git a/src/avalanche/test/processor_tests.cpp b/src/avalanche/test/processor_tests.cpp --- a/src/avalanche/test/processor_tests.cpp +++ b/src/avalanche/test/processor_tests.cpp @@ -35,9 +35,9 @@ return p.getSuitableNodeToQuery(); } - static avalanche::PeerManager &getPeerManager(Processor &p) { + template static auto withPeerManager(Processor &p, F fun) { LOCK(p.cs_peerManager); - return *p.peerManager; + return fun(*p.peerManager); } static uint64_t getRound(const Processor &p) { return p.round; } @@ -133,18 +133,23 @@ DelegationBuilder(*proof).build()); } + template auto withPeerManager(F fun) { + return AvalancheTest::withPeerManager(*m_processor, fun); + } + std::array ConnectNodes() { - avalanche::PeerManager &pm = getPeerManager(); - auto proof = GetProof(); - Delegation dg = DelegationBuilder(*proof).build(); + return withPeerManager([&](avalanche::PeerManager &pm) { + auto proof = GetProof(); + Delegation dg = DelegationBuilder(*proof).build(); - std::array nodes; - for (CNode *&n : nodes) { - n = ConnectNode(NODE_AVALANCHE); - BOOST_CHECK(pm.addNode(n->GetId(), proof, dg)); - } + std::array nodes; + for (CNode *&n : nodes) { + n = ConnectNode(NODE_AVALANCHE); + BOOST_CHECK(pm.addNode(n->GetId(), proof, dg)); + } - return nodes; + return nodes; + }); } void runEventLoop() { AvalancheTest::runEventLoop(*m_processor); } @@ -157,10 +162,6 @@ return AvalancheTest::getInvsForNextPoll(*m_processor); } - avalanche::PeerManager &getPeerManager() { - return AvalancheTest::getPeerManager(*m_processor); - } - uint64_t getRound() const { return AvalancheTest::getRound(*m_processor); } }; } // namespace @@ -743,15 +744,16 @@ BOOST_AUTO_TEST_CASE(poll_inflight_count) { // Create enough nodes so that we run into the inflight request limit. - avalanche::PeerManager &pm = getPeerManager(); - auto proof = GetProof(); - Delegation dg = DelegationBuilder(*proof).build(); + withPeerManager([&](avalanche::PeerManager &pm) { + auto proof = GetProof(); + Delegation dg = DelegationBuilder(*proof).build(); - std::array nodes; - for (auto &n : nodes) { - n = ConnectNode(NODE_AVALANCHE); - BOOST_CHECK(pm.addNode(n->GetId(), proof, dg)); - } + std::array nodes; + for (auto &n : nodes) { + n = ConnectNode(NODE_AVALANCHE); + BOOST_CHECK(pm.addNode(n->GetId(), proof, dg)); + } + }); // Add a block to poll CBlock block = CreateAndProcessBlock({}, CScript());