Changeset View
Changeset View
Standalone View
Standalone View
src/avalanche/test/processor_tests.cpp
Show First 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | std::shared_ptr<Proof> GetProof() { | ||||
const CTransaction &coinbase = *m_coinbase_txns[current_coinbase]; | const CTransaction &coinbase = *m_coinbase_txns[current_coinbase]; | ||||
ProofBuilder pb(0, 0, masterpriv.GetPubKey()); | ProofBuilder pb(0, 0, masterpriv.GetPubKey()); | ||||
BOOST_CHECK(pb.addUTXO(COutPoint(coinbase.GetId(), 0), | BOOST_CHECK(pb.addUTXO(COutPoint(coinbase.GetId(), 0), | ||||
coinbase.vout[0].nValue, current_coinbase + 1, | coinbase.vout[0].nValue, current_coinbase + 1, | ||||
true, coinbaseKey)); | true, coinbaseKey)); | ||||
return std::make_shared<Proof>(pb.build()); | return std::make_shared<Proof>(pb.build()); | ||||
} | } | ||||
bool addNode(NodeId nodeid, const ProofId &proofid) { | |||||
return m_processor->withPeerManager([&](avalanche::PeerManager &pm) { | |||||
return pm.addNode(nodeid, proofid); | |||||
}); | |||||
} | |||||
bool addNode(NodeId nodeid) { | bool addNode(NodeId nodeid) { | ||||
auto proof = GetProof(); | auto proof = GetProof(); | ||||
BOOST_CHECK(m_processor->addProof(proof)); | BOOST_CHECK(m_processor->addProof(proof)); | ||||
return m_processor->addNode(nodeid, proof->getId()); | return addNode(nodeid, proof->getId()); | ||||
} | } | ||||
std::array<CNode *, 8> ConnectNodes() { | std::array<CNode *, 8> ConnectNodes() { | ||||
auto proof = GetProof(); | auto proof = GetProof(); | ||||
BOOST_CHECK(m_processor->addProof(proof)); | BOOST_CHECK(m_processor->addProof(proof)); | ||||
const ProofId &proofid = proof->getId(); | const ProofId &proofid = proof->getId(); | ||||
std::array<CNode *, 8> nodes; | std::array<CNode *, 8> nodes; | ||||
for (CNode *&n : nodes) { | for (CNode *&n : nodes) { | ||||
n = ConnectNode(NODE_AVALANCHE); | n = ConnectNode(NODE_AVALANCHE); | ||||
BOOST_CHECK(m_processor->addNode(n->GetId(), proofid)); | BOOST_CHECK(addNode(n->GetId(), proofid)); | ||||
} | } | ||||
return nodes; | return nodes; | ||||
} | } | ||||
void runEventLoop() { AvalancheTest::runEventLoop(*m_processor); } | void runEventLoop() { AvalancheTest::runEventLoop(*m_processor); } | ||||
NodeId getSuitableNodeToQuery() { | NodeId getSuitableNodeToQuery() { | ||||
▲ Show 20 Lines • Show All 587 Lines • ▼ Show 20 Lines | |||||
BOOST_AUTO_TEST_CASE(poll_inflight_count) { | BOOST_AUTO_TEST_CASE(poll_inflight_count) { | ||||
// Create enough nodes so that we run into the inflight request limit. | // Create enough nodes so that we run into the inflight request limit. | ||||
auto proof = GetProof(); | auto proof = GetProof(); | ||||
BOOST_CHECK(m_processor->addProof(proof)); | BOOST_CHECK(m_processor->addProof(proof)); | ||||
std::array<CNode *, AVALANCHE_MAX_INFLIGHT_POLL + 1> nodes; | std::array<CNode *, AVALANCHE_MAX_INFLIGHT_POLL + 1> nodes; | ||||
for (auto &n : nodes) { | for (auto &n : nodes) { | ||||
n = ConnectNode(NODE_AVALANCHE); | n = ConnectNode(NODE_AVALANCHE); | ||||
BOOST_CHECK(m_processor->addNode(n->GetId(), proof->getId())); | BOOST_CHECK(addNode(n->GetId(), proof->getId())); | ||||
} | } | ||||
// Add a block to poll | // Add a block to poll | ||||
CBlock block = CreateAndProcessBlock({}, CScript()); | CBlock block = CreateAndProcessBlock({}, CScript()); | ||||
const BlockHash blockHash = block.GetHash(); | const BlockHash blockHash = block.GetHash(); | ||||
const CBlockIndex *pindex; | const CBlockIndex *pindex; | ||||
{ | { | ||||
LOCK(cs_main); | LOCK(cs_main); | ||||
▲ Show 20 Lines • Show All 249 Lines • Show Last 20 Lines |