mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-07 03:03:58 +01:00
De-duplicate add_coin methods to a test util helper
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
//
|
||||
#include <sync.h>
|
||||
#include <test/util/coins.h>
|
||||
#include <test/util/random.h>
|
||||
#include <test/util/setup_common.h>
|
||||
#include <validation.h>
|
||||
@@ -25,19 +26,6 @@ BOOST_AUTO_TEST_CASE(getcoinscachesizestate)
|
||||
LOCK(::cs_main);
|
||||
auto& view = chainstate.CoinsTip();
|
||||
|
||||
//! Create and add a Coin with DynamicMemoryUsage of 80 bytes to the given view.
|
||||
auto add_coin = [](CCoinsViewCache& coins_view) -> COutPoint {
|
||||
Coin newcoin;
|
||||
uint256 txid = InsecureRand256();
|
||||
COutPoint outp{txid, 0};
|
||||
newcoin.nHeight = 1;
|
||||
newcoin.out.nValue = InsecureRandMoneyAmount();
|
||||
newcoin.out.scriptPubKey.assign(uint32_t{56}, 1);
|
||||
coins_view.AddCoin(outp, std::move(newcoin), false);
|
||||
|
||||
return outp;
|
||||
};
|
||||
|
||||
// The number of bytes consumed by coin's heap data, i.e. CScript
|
||||
// (prevector<28, unsigned char>) when assigned 56 bytes of data per above.
|
||||
//
|
||||
@@ -62,7 +50,7 @@ BOOST_AUTO_TEST_CASE(getcoinscachesizestate)
|
||||
// Add a bunch of coins to see that we at least flip over to CRITICAL.
|
||||
|
||||
for (int i{0}; i < 1000; ++i) {
|
||||
COutPoint res = add_coin(view);
|
||||
const COutPoint res = AddTestCoin(view);
|
||||
BOOST_CHECK_EQUAL(view.AccessCoin(res).DynamicMemoryUsage(), COIN_SIZE);
|
||||
}
|
||||
|
||||
@@ -84,7 +72,7 @@ BOOST_AUTO_TEST_CASE(getcoinscachesizestate)
|
||||
constexpr int COINS_UNTIL_CRITICAL{3};
|
||||
|
||||
for (int i{0}; i < COINS_UNTIL_CRITICAL; ++i) {
|
||||
COutPoint res = add_coin(view);
|
||||
const COutPoint res = AddTestCoin(view);
|
||||
print_view_mem_usage(view);
|
||||
BOOST_CHECK_EQUAL(view.AccessCoin(res).DynamicMemoryUsage(), COIN_SIZE);
|
||||
BOOST_CHECK_EQUAL(
|
||||
@@ -94,7 +82,7 @@ BOOST_AUTO_TEST_CASE(getcoinscachesizestate)
|
||||
|
||||
// Adding some additional coins will push us over the edge to CRITICAL.
|
||||
for (int i{0}; i < 4; ++i) {
|
||||
add_coin(view);
|
||||
AddTestCoin(view);
|
||||
print_view_mem_usage(view);
|
||||
if (chainstate.GetCoinsCacheSizeState(MAX_COINS_CACHE_BYTES, /*max_mempool_size_bytes=*/0) ==
|
||||
CoinsCacheSizeState::CRITICAL) {
|
||||
@@ -112,7 +100,7 @@ BOOST_AUTO_TEST_CASE(getcoinscachesizestate)
|
||||
CoinsCacheSizeState::OK);
|
||||
|
||||
for (int i{0}; i < 3; ++i) {
|
||||
add_coin(view);
|
||||
AddTestCoin(view);
|
||||
print_view_mem_usage(view);
|
||||
BOOST_CHECK_EQUAL(
|
||||
chainstate.GetCoinsCacheSizeState(MAX_COINS_CACHE_BYTES, /*max_mempool_size_bytes=*/1 << 10),
|
||||
@@ -121,7 +109,7 @@ BOOST_AUTO_TEST_CASE(getcoinscachesizestate)
|
||||
|
||||
// Adding another coin with the additional mempool room will put us >90%
|
||||
// but not yet critical.
|
||||
add_coin(view);
|
||||
AddTestCoin(view);
|
||||
print_view_mem_usage(view);
|
||||
|
||||
// Only perform these checks on 64 bit hosts; I haven't done the math for 32.
|
||||
@@ -137,7 +125,7 @@ BOOST_AUTO_TEST_CASE(getcoinscachesizestate)
|
||||
|
||||
// Using the default max_* values permits way more coins to be added.
|
||||
for (int i{0}; i < 1000; ++i) {
|
||||
add_coin(view);
|
||||
AddTestCoin(view);
|
||||
BOOST_CHECK_EQUAL(
|
||||
chainstate.GetCoinsCacheSizeState(),
|
||||
CoinsCacheSizeState::OK);
|
||||
|
||||
Reference in New Issue
Block a user