mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 14:38:29 +01:00
Make removed and conflicted arguments optional to remove
This commit is contained in:
@@ -58,12 +58,12 @@ BOOST_AUTO_TEST_CASE(MempoolRemoveTest)
|
||||
std::list<CTransaction> removed;
|
||||
|
||||
// Nothing in pool, remove should do nothing:
|
||||
testPool.removeRecursive(txParent, removed);
|
||||
testPool.removeRecursive(txParent, &removed);
|
||||
BOOST_CHECK_EQUAL(removed.size(), 0);
|
||||
|
||||
// Just the parent:
|
||||
testPool.addUnchecked(txParent.GetHash(), entry.FromTx(txParent));
|
||||
testPool.removeRecursive(txParent, removed);
|
||||
testPool.removeRecursive(txParent, &removed);
|
||||
BOOST_CHECK_EQUAL(removed.size(), 1);
|
||||
removed.clear();
|
||||
|
||||
@@ -75,16 +75,16 @@ BOOST_AUTO_TEST_CASE(MempoolRemoveTest)
|
||||
testPool.addUnchecked(txGrandChild[i].GetHash(), entry.FromTx(txGrandChild[i]));
|
||||
}
|
||||
// Remove Child[0], GrandChild[0] should be removed:
|
||||
testPool.removeRecursive(txChild[0], removed);
|
||||
testPool.removeRecursive(txChild[0], &removed);
|
||||
BOOST_CHECK_EQUAL(removed.size(), 2);
|
||||
removed.clear();
|
||||
// ... make sure grandchild and child are gone:
|
||||
testPool.removeRecursive(txGrandChild[0], removed);
|
||||
testPool.removeRecursive(txGrandChild[0], &removed);
|
||||
BOOST_CHECK_EQUAL(removed.size(), 0);
|
||||
testPool.removeRecursive(txChild[0], removed);
|
||||
testPool.removeRecursive(txChild[0], &removed);
|
||||
BOOST_CHECK_EQUAL(removed.size(), 0);
|
||||
// Remove parent, all children/grandchildren should go:
|
||||
testPool.removeRecursive(txParent, removed);
|
||||
testPool.removeRecursive(txParent, &removed);
|
||||
BOOST_CHECK_EQUAL(removed.size(), 5);
|
||||
BOOST_CHECK_EQUAL(testPool.size(), 0);
|
||||
removed.clear();
|
||||
@@ -97,7 +97,7 @@ BOOST_AUTO_TEST_CASE(MempoolRemoveTest)
|
||||
}
|
||||
// Now remove the parent, as might happen if a block-re-org occurs but the parent cannot be
|
||||
// put into the mempool (maybe because it is non-standard):
|
||||
testPool.removeRecursive(txParent, removed);
|
||||
testPool.removeRecursive(txParent, &removed);
|
||||
BOOST_CHECK_EQUAL(removed.size(), 6);
|
||||
BOOST_CHECK_EQUAL(testPool.size(), 0);
|
||||
removed.clear();
|
||||
@@ -281,12 +281,11 @@ BOOST_AUTO_TEST_CASE(MempoolIndexingTest)
|
||||
BOOST_CHECK_EQUAL(pool.size(), 10);
|
||||
|
||||
// Now try removing tx10 and verify the sort order returns to normal
|
||||
std::list<CTransaction> removed;
|
||||
pool.removeRecursive(pool.mapTx.find(tx10.GetHash())->GetTx(), removed);
|
||||
pool.removeRecursive(pool.mapTx.find(tx10.GetHash())->GetTx());
|
||||
CheckSort<descendant_score>(pool, snapshotOrder);
|
||||
|
||||
pool.removeRecursive(pool.mapTx.find(tx9.GetHash())->GetTx(), removed);
|
||||
pool.removeRecursive(pool.mapTx.find(tx8.GetHash())->GetTx(), removed);
|
||||
pool.removeRecursive(pool.mapTx.find(tx9.GetHash())->GetTx());
|
||||
pool.removeRecursive(pool.mapTx.find(tx8.GetHash())->GetTx());
|
||||
/* Now check the sort on the mining score index.
|
||||
* Final order should be:
|
||||
*
|
||||
@@ -413,8 +412,7 @@ BOOST_AUTO_TEST_CASE(MempoolAncestorIndexingTest)
|
||||
/* after tx6 is mined, tx7 should move up in the sort */
|
||||
std::vector<CTransaction> vtx;
|
||||
vtx.push_back(tx6);
|
||||
std::list<CTransaction> dummy;
|
||||
pool.removeForBlock(vtx, 1, dummy, false);
|
||||
pool.removeForBlock(vtx, 1, NULL, false);
|
||||
|
||||
sortedOrder.erase(sortedOrder.begin()+1);
|
||||
sortedOrder.pop_back();
|
||||
@@ -549,12 +547,11 @@ BOOST_AUTO_TEST_CASE(MempoolSizeLimitTest)
|
||||
pool.addUnchecked(tx7.GetHash(), entry.Fee(9000LL).FromTx(tx7, &pool));
|
||||
|
||||
std::vector<CTransaction> vtx;
|
||||
std::list<CTransaction> conflicts;
|
||||
SetMockTime(42);
|
||||
SetMockTime(42 + CTxMemPool::ROLLING_FEE_HALFLIFE);
|
||||
BOOST_CHECK_EQUAL(pool.GetMinFee(1).GetFeePerK(), maxFeeRateRemoved.GetFeePerK() + 1000);
|
||||
// ... we should keep the same min fee until we get a block
|
||||
pool.removeForBlock(vtx, 1, conflicts);
|
||||
pool.removeForBlock(vtx, 1);
|
||||
SetMockTime(42 + 2*CTxMemPool::ROLLING_FEE_HALFLIFE);
|
||||
BOOST_CHECK_EQUAL(pool.GetMinFee(1).GetFeePerK(), (maxFeeRateRemoved.GetFeePerK() + 1000)/2);
|
||||
// ... then feerate should drop 1/2 each halflife
|
||||
|
||||
Reference in New Issue
Block a user