5 #ifndef BITCOIN_TEST_UTIL_SETUP_COMMON_H 6 #define BITCOIN_TEST_UTIL_SETUP_COMMON_H 28 #include <type_traits> 39 extern const std::function<void(const std::string&)>
G_TEST_LOG_FUN;
165 const std::vector<CMutableTransaction>& txns,
185 std::pair<CMutableTransaction, CAmount>
CreateValidTransaction(
const std::vector<CTransactionRef>& input_transactions,
186 const std::vector<COutPoint>& inputs,
188 const std::vector<CKey>& input_signing_keys,
189 const std::vector<CTxOut>& outputs,
190 const std::optional<CFeeRate>& feerate,
191 const std::optional<uint32_t>& fee_output);
203 const std::vector<COutPoint>& inputs,
205 const std::vector<CKey>& input_signing_keys,
206 const std::vector<CTxOut>& outputs,
223 CKey input_signing_key,
249 template <
class T = const BasicTestingSetup>
252 opts.extra_args =
Cat(
259 return std::make_unique<T>(chain_type, opts);
264 #endif // BITCOIN_TEST_UTIL_SETUP_COMMON_H std::shared_ptr< const CTransaction > CTransactionRef
Testing setup that performs all steps up until right before ChainstateManager gets initialized...
kernel::CacheSizes m_kernel_cache_sizes
bool m_has_custom_datadir
void SetupCommonTestArgs(ArgsManager &argsman)
Register common test args.
bool m_block_tree_db_in_memory
std::vector< const char * > extra_args
ArgsManager m_args
Test-specific arguments and settings.
std::vector< CTransactionRef > m_coinbase_txns
BasicTestingSetup(ChainType chainType=ChainType::MAIN, TestOpts={})
ChainTestingSetup(ChainType chainType=ChainType::MAIN, TestOpts={})
util::SignalInterrupt m_interrupt
void SeedRandomForTest(SeedRand seed)
Seed the global RNG state and m_rng for testing and log the seed value.
int64_t CAmount
Amount in satoshis (Can be negative)
NodeContext struct containing references to chain state and connection state.
CBlock CreateAndProcessBlock(const std::vector< CMutableTransaction > &txns, const CScript &scriptPubKey, Chainstate *chainstate=nullptr)
Create a new block with just given transactions, coinbase paying to scriptPubKey, and try to add it t...
Chainstate stores and provides an API to update our local knowledge of the current best chain...
void Reseed(const uint256 &seed) noexcept
Reseed with explicit seed (only for testing).
TestingSetup(ChainType chainType=ChainType::MAIN, TestOpts={})
bool block_tree_db_in_memory
std::vector< CTransactionRef > PopulateMempool(FastRandomContext &det_rand, size_t num_transactions, bool submit)
Create transactions spending from m_coinbase_txns.
void mineBlocks(int num_blocks)
Mine a series of new blocks on the active chain.
const std::function< std::string()> G_TEST_GET_FULL_NAME
Retrieve the unit test name.
Testing fixture that pre-creates a 100-block REGTEST-mode block chain.
256-bit unsigned big integer.
Helper class that manages an interrupt flag, and allows a thread or signal to interrupt another threa...
void SeedRandomStateForTest(SeedRand seedtype)
Seed the global RNG state for testing and log the seed value.
std::pair< CMutableTransaction, CAmount > CreateValidTransaction(const std::vector< CTransactionRef > &input_transactions, const std::vector< COutPoint > &inputs, int input_height, const std::vector< CKey > &input_signing_keys, const std::vector< CTxOut > &outputs, const std::optional< CFeeRate > &feerate, const std::optional< uint32_t > &fee_output)
Create a transaction, optionally setting the fee based on the feerate.
Serialized script, used inside transaction inputs and outputs.
CMutableTransaction CreateValidMempoolTransaction(const std::vector< CTransactionRef > &input_transactions, const std::vector< COutPoint > &inputs, int input_height, const std::vector< CKey > &input_signing_keys, const std::vector< CTxOut > &outputs, bool submit=true)
Create a transaction and, optionally, submit to the mempool.
std::function< void()> m_make_chainman
CBlock CreateBlock(const std::vector< CMutableTransaction > &txns, const CScript &scriptPubKey, Chainstate &chainstate)
Create a new block with just given transactions, coinbase paying to scriptPubKey. ...
uint256 GetRandHash() noexcept
Generate a random uint256.
Fee rate in satoshis per virtualbyte: CAmount / vB the feerate is represented internally as FeeFrac...
const std::function< void(const std::string &)> G_TEST_LOG_FUN
This is connected to the logger.
bool m_coins_db_in_memory
A mutable version of CTransaction.
const std::function< std::vector< const char * >)> G_TEST_COMMAND_LINE_ARGUMENTS
Retrieve the command line arguments.
static constexpr CAmount CENT
An encapsulated private key.
kernel::CacheSizes kernel
Identical to TestingSetup, but chain set to testnet4.
Identical to TestingSetup, but chain set to regtest.
Path class wrapper to block calls to the fs::path(std::string) implicit constructor and the fs::path:...
void LoadVerifyActivateChainstate()
bool setup_validation_interface
Testing setup that configures a complete environment.
CacheSizes CalculateCacheSizes(const ArgsManager &args, size_t n_indexes)
bool min_validation_cache
TestChain100Setup(ChainType chain_type=ChainType::REGTEST, TestOpts={})
std::unique_ptr< T > MakeNoLogFileContext(const ChainType chain_type=ChainType::REGTEST, TestOpts opts={})
Make a test setup that has disk access to the debug.log file disabled.
V Cat(V v1, V &&v2)
Concatenate two vectors, moving elements.
static constexpr CAmount COIN
The amount of satoshis in one BTC.