diff --git a/src/init.cpp b/src/init.cpp index 1f72c22ec2f..a1be6d7ec09 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1052,7 +1052,9 @@ bool AppInitParameterInteraction(const ArgsManager& args) if (!g_wallet_init_interface.ParameterInteraction()) return false; // Option to startup with mocktime set (used for regression testing): - SetMockTime(args.GetIntArg("-mocktime", 0)); // SetMockTime(0) is a no-op + if (const auto mocktime{args.GetIntArg("-mocktime")}) { + SetMockTime(std::chrono::seconds{*mocktime}); + } if (args.GetBoolArg("-peerbloomfilters", DEFAULT_PEERBLOOMFILTERS)) g_local_services = ServiceFlags(g_local_services | NODE_BLOOM); diff --git a/src/test/fuzz/package_eval.cpp b/src/test/fuzz/package_eval.cpp index ff20f12fc73..f263ffb6031 100644 --- a/src/test/fuzz/package_eval.cpp +++ b/src/test/fuzz/package_eval.cpp @@ -42,6 +42,7 @@ void initialize_tx_pool() { static const auto testing_setup = MakeNoLogFileContext(); g_setup = testing_setup.get(); + SetMockTime(WITH_LOCK(g_setup->m_node.chainman->GetMutex(), return g_setup->m_node.chainman->ActiveTip()->Time())); BlockAssembler::Options options; options.coinbase_output_script = P2WSH_EMPTY; diff --git a/src/test/fuzz/process_message.cpp b/src/test/fuzz/process_message.cpp index 4bd38a1ac68..ac521370e8e 100644 --- a/src/test/fuzz/process_message.cpp +++ b/src/test/fuzz/process_message.cpp @@ -44,6 +44,7 @@ void initialize_process_message() /*chain_type=*/ChainType::REGTEST, {.extra_args = {"-txreconciliation"}}); g_setup = testing_setup.get(); + SetMockTime(WITH_LOCK(g_setup->m_node.chainman->GetMutex(), return g_setup->m_node.chainman->ActiveTip()->Time())); for (int i = 0; i < 2 * COINBASE_MATURITY; i++) { MineBlock(g_setup->m_node, {}); } diff --git a/src/test/fuzz/process_messages.cpp b/src/test/fuzz/process_messages.cpp index 0688868c02b..f172b1ad6e1 100644 --- a/src/test/fuzz/process_messages.cpp +++ b/src/test/fuzz/process_messages.cpp @@ -34,6 +34,7 @@ void initialize_process_messages() /*chain_type=*/ChainType::REGTEST, {.extra_args = {"-txreconciliation"}}); g_setup = testing_setup.get(); + SetMockTime(WITH_LOCK(g_setup->m_node.chainman->GetMutex(), return g_setup->m_node.chainman->ActiveTip()->Time())); for (int i = 0; i < 2 * COINBASE_MATURITY; i++) { MineBlock(g_setup->m_node, {}); } diff --git a/src/test/fuzz/tx_pool.cpp b/src/test/fuzz/tx_pool.cpp index a697ee9d838..025e6d51ef6 100644 --- a/src/test/fuzz/tx_pool.cpp +++ b/src/test/fuzz/tx_pool.cpp @@ -44,6 +44,7 @@ void initialize_tx_pool() { static const auto testing_setup = MakeNoLogFileContext(); g_setup = testing_setup.get(); + SetMockTime(WITH_LOCK(g_setup->m_node.chainman->GetMutex(), return g_setup->m_node.chainman->ActiveTip()->Time())); BlockAssembler::Options options; options.coinbase_output_script = P2WSH_OP_TRUE; diff --git a/src/test/fuzz/utxo_snapshot.cpp b/src/test/fuzz/utxo_snapshot.cpp index 0916c6258c7..56d3615570f 100644 --- a/src/test/fuzz/utxo_snapshot.cpp +++ b/src/test/fuzz/utxo_snapshot.cpp @@ -72,6 +72,7 @@ void initialize_chain() const auto params{CreateChainParams(ArgsManager{}, ChainType::REGTEST)}; static const auto chain{CreateBlockChain(2 * COINBASE_MATURITY, *params)}; g_chain = &chain; + SetMockTime(chain.back()->Time()); // Make sure we can generate a valid snapshot. sanity_check_snapshot(); diff --git a/src/test/fuzz/utxo_total_supply.cpp b/src/test/fuzz/utxo_total_supply.cpp index 9be85df99fa..d9382ca8317 100644 --- a/src/test/fuzz/utxo_total_supply.cpp +++ b/src/test/fuzz/utxo_total_supply.cpp @@ -24,14 +24,13 @@ FUZZ_TARGET(utxo_total_supply) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - const auto mock_time{ConsumeTime(fuzzed_data_provider, /*min=*/1296688602)}; // regtest genesis block timestamp + SetMockTime(ConsumeTime(fuzzed_data_provider, /*min=*/1296688602)); // regtest genesis block timestamp /** The testing setup that creates a chainman only (no chainstate) */ ChainTestingSetup test_setup{ ChainType::REGTEST, { .extra_args = { "-testactivationheight=bip34@2", - strprintf("-mocktime=%d", mock_time).c_str() }, }, };