5 #ifndef BITCOIN_TEST_UTIL_SETUP_COMMON_H 6 #define BITCOIN_TEST_UTIL_SETUP_COMMON_H 24 #include <type_traits> 33 extern const std::function<void(const std::string&)>
G_TEST_LOG_FUN;
44 std::ostream& operator<<(typename std::enable_if<std::is_enum<T>::value, std::ostream>::type& stream,
const T& e)
46 return stream << static_cast<typename std::underlying_type<T>::type>(e);
134 const std::vector<CMutableTransaction>& txns,
154 std::pair<CMutableTransaction, CAmount>
CreateValidTransaction(
const std::vector<CTransactionRef>& input_transactions,
155 const std::vector<COutPoint>& inputs,
157 const std::vector<CKey>& input_signing_keys,
158 const std::vector<CTxOut>& outputs,
159 const std::optional<CFeeRate>& feerate,
160 const std::optional<uint32_t>& fee_output);
172 const std::vector<COutPoint>& inputs,
174 const std::vector<CKey>& input_signing_keys,
175 const std::vector<CTxOut>& outputs,
192 CKey input_signing_key,
229 template <
class T = const BasicTestingSetup>
232 opts.extra_args =
Cat(
239 return std::make_unique<T>(chain_type, opts);
260 return std::string(e.what()).find(
m_reason) != std::string::npos;
267 #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...
std::ostream & operator<<(std::ostream &os, const arith_uint256 &num)
bool m_has_custom_datadir
void MockMempoolMinFee(const CFeeRate &target_feerate)
Mock the mempool minimum feerate by adding a transaction and calling TrimToSize(0), simulating the mempool "reaching capacity" and evicting by descendant feerate.
bool m_block_tree_db_in_memory
std::vector< const char * > extra_args
node::CacheSizes m_cache_sizes
std::vector< CTransactionRef > m_coinbase_txns
util::SignalInterrupt m_interrupt
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...
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.
ChainTestingSetup(const ChainType chainType=ChainType::MAIN, TestOpts={})
BOOST_CHECK_EXCEPTION predicates to check the specific validation error.
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.
BasicTestingSetup(const ChainType chainType=ChainType::MAIN, TestOpts={})
Helper class that manages an interrupt flag, and allows a thread or signal to interrupt another threa...
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.
HasReason(const std::string &reason)
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. ...
bool operator()(const std::exception &e) const
TestChain100Setup(const ChainType chain_type=ChainType::REGTEST, TestOpts={})
Fee rate in satoshis per kilovirtualbyte: CAmount / kvB.
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.
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
TestingSetup(const ChainType chainType=ChainType::MAIN, TestOpts={})
#define T(expected, seed, data)
Testing setup that configures a complete environment.
bool min_validation_cache
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.
const std::string m_reason