Changeset View
Changeset View
Standalone View
Standalone View
src/test/mempool_tests.cpp
Show All 38 Lines | BOOST_AUTO_TEST_CASE(TestPackageAccounting) { | ||||
// Add some outpoints to the tracking vector | // Add some outpoints to the tracking vector | ||||
for (size_t i = 0; i < maxOutputs; i++) { | for (size_t i = 0; i < maxOutputs; i++) { | ||||
outpoints.emplace_back(COutPoint(parentOfAllId, i)); | outpoints.emplace_back(COutPoint(parentOfAllId, i)); | ||||
} | } | ||||
Amount totalFee = Amount::zero(); | Amount totalFee = Amount::zero(); | ||||
size_t totalSize = CTransaction(parentOfAll).GetTotalSize(); | size_t totalSize = CTransaction(parentOfAll).GetTotalSize(); | ||||
int64_t totalSigOpCount = 0; | |||||
// Generate 100 transactions | // Generate 100 transactions | ||||
for (size_t totalTransactions = 0; totalTransactions < 100; | for (size_t totalTransactions = 0; totalTransactions < 100; | ||||
totalTransactions++) { | totalTransactions++) { | ||||
CMutableTransaction tx; | CMutableTransaction tx; | ||||
uint64_t minAncestors = std::numeric_limits<size_t>::max(); | uint64_t minAncestors = std::numeric_limits<size_t>::max(); | ||||
uint64_t maxAncestors = 0; | uint64_t maxAncestors = 0; | ||||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | for (size_t totalTransactions = 0; totalTransactions < 100; | ||||
minSize += CTransaction(tx).GetTotalSize(); | minSize += CTransaction(tx).GetTotalSize(); | ||||
maxSize += CTransaction(tx).GetTotalSize(); | maxSize += CTransaction(tx).GetTotalSize(); | ||||
minSigOpCount += randSigOpCount; | minSigOpCount += randSigOpCount; | ||||
maxSigOpCount += randSigOpCount; | maxSigOpCount += randSigOpCount; | ||||
// Calculate overall values | // Calculate overall values | ||||
totalFee += randFee; | totalFee += randFee; | ||||
totalSize += CTransaction(tx).GetTotalSize(); | totalSize += CTransaction(tx).GetTotalSize(); | ||||
totalSigOpCount += randSigOpCount; | |||||
CTxMemPoolEntry parentEntry = *testPool.mapTx.find(parentOfAllId); | CTxMemPoolEntry parentEntry = *testPool.mapTx.find(parentOfAllId); | ||||
CTxMemPoolEntry latestEntry = *testPool.mapTx.find(curId); | CTxMemPoolEntry latestEntry = *testPool.mapTx.find(curId); | ||||
// Ensure values are within the expected ranges | // Ensure values are within the expected ranges | ||||
BOOST_CHECK(latestEntry.GetCountWithAncestors() >= minAncestors); | BOOST_CHECK(latestEntry.GetCountWithAncestors() >= minAncestors); | ||||
BOOST_CHECK(latestEntry.GetCountWithAncestors() <= maxAncestors); | BOOST_CHECK(latestEntry.GetCountWithAncestors() <= maxAncestors); | ||||
BOOST_CHECK(latestEntry.GetSizeWithAncestors() >= minSize); | BOOST_CHECK(latestEntry.GetSizeWithAncestors() >= minSize); | ||||
BOOST_CHECK(latestEntry.GetSizeWithAncestors() <= maxSize); | BOOST_CHECK(latestEntry.GetSizeWithAncestors() <= maxSize); | ||||
BOOST_CHECK(latestEntry.GetSigOpCountWithAncestors() >= minSigOpCount); | BOOST_CHECK(latestEntry.GetSigOpCountWithAncestors() >= minSigOpCount); | ||||
BOOST_CHECK(latestEntry.GetSigOpCountWithAncestors() <= maxSigOpCount); | BOOST_CHECK(latestEntry.GetSigOpCountWithAncestors() <= maxSigOpCount); | ||||
BOOST_CHECK(latestEntry.GetModFeesWithAncestors() >= minFees); | BOOST_CHECK(latestEntry.GetModFeesWithAncestors() >= minFees); | ||||
BOOST_CHECK(latestEntry.GetModFeesWithAncestors() <= maxFees); | BOOST_CHECK(latestEntry.GetModFeesWithAncestors() <= maxFees); | ||||
BOOST_CHECK_EQUAL(parentEntry.GetCountWithDescendants(), | BOOST_CHECK_EQUAL(parentEntry.GetCountWithDescendants(), | ||||
testPool.mapTx.size()); | testPool.mapTx.size()); | ||||
BOOST_CHECK_EQUAL(parentEntry.GetSizeWithDescendants(), totalSize); | BOOST_CHECK_EQUAL(parentEntry.GetSizeWithDescendants(), totalSize); | ||||
BOOST_CHECK_EQUAL(parentEntry.GetModFeesWithDescendants(), totalFee); | BOOST_CHECK_EQUAL(parentEntry.GetModFeesWithDescendants(), totalFee); | ||||
BOOST_CHECK_EQUAL(parentEntry.GetSigOpCountWithDescendants(), | |||||
totalSigOpCount); | |||||
} | } | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(MempoolRemoveTest) { | BOOST_AUTO_TEST_CASE(MempoolRemoveTest) { | ||||
// Test CTxMemPool::remove functionality | // Test CTxMemPool::remove functionality | ||||
TestMemPoolEntryHelper entry; | TestMemPoolEntryHelper entry; | ||||
// Parent transaction with three children, and three grand-children: | // Parent transaction with three children, and three grand-children: | ||||
▲ Show 20 Lines • Show All 937 Lines • Show Last 20 Lines |