From 9d92c3d7f42c18939a9a6aa1ee185f1c958360a0 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Fri, 20 Jan 2023 11:05:09 -0800 Subject: [PATCH] Create InsecureRandMoneyAmount() test util helper to generate semi-random CAmounts up to MAX_MONEY rather than only uint32, and use it in the unit tests. --- src/test/coins_tests.cpp | 2 +- src/test/sighash_tests.cpp | 2 +- src/test/util/blockfilter.cpp | 1 - src/test/util/random.h | 6 ++++++ src/test/validation_chainstate_tests.cpp | 2 +- src/test/validation_flush_tests.cpp | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/test/coins_tests.cpp b/src/test/coins_tests.cpp index e91ea3536d0..2344aa7a8ca 100644 --- a/src/test/coins_tests.cpp +++ b/src/test/coins_tests.cpp @@ -173,7 +173,7 @@ void SimulationTest(CCoinsView* base, bool fake_best_block) if (InsecureRandRange(5) == 0 || coin.IsSpent()) { Coin newcoin; - newcoin.out.nValue = InsecureRand32(); + newcoin.out.nValue = InsecureRandMoneyAmount(); newcoin.nHeight = 1; // Infrequently test adding unspendable coins. diff --git a/src/test/sighash_tests.cpp b/src/test/sighash_tests.cpp index 0a33d1b26fd..e2d11afa6aa 100644 --- a/src/test/sighash_tests.cpp +++ b/src/test/sighash_tests.cpp @@ -110,7 +110,7 @@ void static RandomTransaction(CMutableTransaction& tx, bool fSingle) for (int out = 0; out < outs; out++) { tx.vout.push_back(CTxOut()); CTxOut &txout = tx.vout.back(); - txout.nValue = InsecureRandRange(100000000); + txout.nValue = InsecureRandMoneyAmount(); RandomScript(txout.scriptPubKey); } } diff --git a/src/test/util/blockfilter.cpp b/src/test/util/blockfilter.cpp index 3ae22921b9c..ec703c6a7b7 100644 --- a/src/test/util/blockfilter.cpp +++ b/src/test/util/blockfilter.cpp @@ -28,4 +28,3 @@ bool ComputeFilter(BlockFilterType filter_type, const CBlockIndex* block_index, filter = BlockFilter(filter_type, block, block_undo); return true; } - diff --git a/src/test/util/random.h b/src/test/util/random.h index 72c9ec85e27..7997e8a3467 100644 --- a/src/test/util/random.h +++ b/src/test/util/random.h @@ -5,6 +5,7 @@ #ifndef BITCOIN_TEST_UTIL_RANDOM_H #define BITCOIN_TEST_UTIL_RANDOM_H +#include #include #include #include @@ -36,4 +37,9 @@ static inline bool InsecureRandBool() return g_insecure_rand_ctx.randbool(); } +static inline CAmount InsecureRandMoneyAmount() +{ + return static_cast(InsecureRandRange(MAX_MONEY + 1)); +} + #endif // BITCOIN_TEST_UTIL_RANDOM_H diff --git a/src/test/validation_chainstate_tests.cpp b/src/test/validation_chainstate_tests.cpp index 877ee30aa35..1c4d1f3366f 100644 --- a/src/test/validation_chainstate_tests.cpp +++ b/src/test/validation_chainstate_tests.cpp @@ -32,7 +32,7 @@ BOOST_AUTO_TEST_CASE(validation_chainstate_resize_caches) uint256 txid = InsecureRand256(); COutPoint outp{txid, 0}; newcoin.nHeight = 1; - newcoin.out.nValue = InsecureRand32(); + newcoin.out.nValue = InsecureRandMoneyAmount(); newcoin.out.scriptPubKey.assign(uint32_t{56}, 1); coins_view.AddCoin(outp, std::move(newcoin), false); diff --git a/src/test/validation_flush_tests.cpp b/src/test/validation_flush_tests.cpp index b917fd78b8f..c63736ba16c 100644 --- a/src/test/validation_flush_tests.cpp +++ b/src/test/validation_flush_tests.cpp @@ -31,7 +31,7 @@ BOOST_AUTO_TEST_CASE(getcoinscachesizestate) uint256 txid = InsecureRand256(); COutPoint outp{txid, 0}; newcoin.nHeight = 1; - newcoin.out.nValue = InsecureRand32(); + newcoin.out.nValue = InsecureRandMoneyAmount(); newcoin.out.scriptPubKey.assign(uint32_t{56}, 1); coins_view.AddCoin(outp, std::move(newcoin), false);