18 std::vector<CTransactionRef> block_vtx(m_coinbase_txns);
25 std::unordered_map<uint256, CTransaction*, SaltedTxidHasher> temp_map;
28 temp_map.reserve(100);
32 for (
const auto& tx : block_vtx)
37 const size_t ENTRY_USAGE_ESTIMATE{
43 +
sizeof(
decltype(temp_map)::value_type))};
50 std::vector<CTransactionRef> two_txns({block_vtx.at(0), block_vtx.at(1)});
51 auto evicted_txns{disconnectpool.AddTransactionsFromBlock(two_txns)};
52 BOOST_CHECK(disconnectpool.DynamicMemoryUsage() <= MAP_1 + ENTRY_USAGE_ESTIMATE);
59 disconnectpool.clear();
66 const size_t USAGE_100_OVERESTIMATE{MAP_100 + ENTRY_USAGE_ESTIMATE * 100};
68 auto evicted_txns{disconnectpool.AddTransactionsFromBlock(block_vtx)};
70 BOOST_CHECK(disconnectpool.DynamicMemoryUsage() <= USAGE_100_OVERESTIMATE);
72 usage_full = disconnectpool.DynamicMemoryUsage();
74 disconnectpool.clear();
79 const size_t MAX_MEMUSAGE_99{usage_full -
sizeof(
void*)};
81 auto evicted_txns{disconnectpool.AddTransactionsFromBlock(block_vtx)};
82 BOOST_CHECK(disconnectpool.DynamicMemoryUsage() <= MAX_MEMUSAGE_99);
91 disconnectpool.clear();