diff options
Diffstat (limited to 'src/bench/mempool_stress.cpp')
-rw-r--r-- | src/bench/mempool_stress.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/bench/mempool_stress.cpp b/src/bench/mempool_stress.cpp index 21d7407fca..16c57881d4 100644 --- a/src/bench/mempool_stress.cpp +++ b/src/bench/mempool_stress.cpp @@ -6,6 +6,7 @@ #include <policy/policy.h> #include <test/util/setup_common.h> #include <txmempool.h> +#include <validation.h> #include <vector> @@ -98,4 +99,20 @@ static void ComplexMemPool(benchmark::Bench& bench) }); } +static void MempoolCheck(benchmark::Bench& bench) +{ + FastRandomContext det_rand{true}; + const int childTxs = bench.complexityN() > 1 ? static_cast<int>(bench.complexityN()) : 2000; + const std::vector<CTransactionRef> ordered_coins = CreateOrderedCoins(det_rand, childTxs, /* min_ancestors */ 5); + const auto testing_setup = MakeNoLogFileContext<const TestingSetup>(CBaseChainParams::MAIN, {"-checkmempool=1"}); + CTxMemPool pool; + LOCK2(cs_main, pool.cs); + for (auto& tx : ordered_coins) AddTx(tx, pool); + + bench.run([&]() NO_THREAD_SAFETY_ANALYSIS { + pool.check(testing_setup.get()->m_node.chainman->ActiveChainstate()); + }); +} + BENCHMARK(ComplexMemPool); +BENCHMARK(MempoolCheck); |