From 55e402ffef2493624058173ed1c24a4753086219 Mon Sep 17 00:00:00 2001 From: seduless Date: Sat, 18 Apr 2026 17:35:23 +0000 Subject: [PATCH] scripted-diff: Rename NodeClockContext to FakeNodeClock The previous name did not indicate the type was intended for testing. Renaming to FakeNodeClock makes this explicit and allows call sites to drop the ctx suffix on the variable name. Suggested in #34858 review feedback. -BEGIN VERIFY SCRIPT- s() { git grep -l "$1" -- src | xargs sed -i "s/$1/$2/g"; } s '\' 'FakeNodeClock' s '\' 'clock' -END VERIFY SCRIPT- --- src/bench/index_blockfilter.cpp | 4 +-- src/bench/util_time.cpp | 2 +- src/bench/wallet_balance.cpp | 2 +- src/bench/wallet_create_tx.cpp | 4 +-- src/bench/wallet_encrypt.cpp | 2 +- src/test/addrman_tests.cpp | 10 +++---- src/test/banman_tests.cpp | 2 +- src/test/chainstate_write_tests.cpp | 10 +++---- src/test/denialofservice_tests.cpp | 28 ++++++++++---------- src/test/fuzz/addrman.cpp | 4 +-- src/test/fuzz/banman.cpp | 4 +-- src/test/fuzz/block_index_tree.cpp | 2 +- src/test/fuzz/cmpctblock.cpp | 6 ++--- src/test/fuzz/connman.cpp | 2 +- src/test/fuzz/headerssync.cpp | 2 +- src/test/fuzz/i2p.cpp | 2 +- src/test/fuzz/load_external_block_file.cpp | 2 +- src/test/fuzz/mini_miner.cpp | 2 +- src/test/fuzz/net.cpp | 4 +-- src/test/fuzz/p2p_handshake.cpp | 4 +-- src/test/fuzz/p2p_headers_presync.cpp | 2 +- src/test/fuzz/partially_downloaded_block.cpp | 2 +- src/test/fuzz/process_message.cpp | 4 +-- src/test/fuzz/process_messages.cpp | 4 +-- src/test/fuzz/rbf.cpp | 4 +-- src/test/fuzz/rpc.cpp | 2 +- src/test/fuzz/socks5.cpp | 2 +- src/test/fuzz/txdownloadman.cpp | 4 +-- src/test/fuzz/txorphan.cpp | 4 +-- src/test/fuzz/util/check_globals.cpp | 2 +- src/test/fuzz/utxo_snapshot.cpp | 2 +- src/test/fuzz/utxo_total_supply.cpp | 2 +- src/test/fuzz/validation_load_mempool.cpp | 2 +- src/test/mempool_tests.cpp | 14 +++++----- src/test/orphanage_tests.cpp | 2 +- src/test/private_broadcast_tests.cpp | 12 ++++----- src/test/rpc_tests.cpp | 4 +-- src/test/testnet4_miner_tests.cpp | 6 ++--- src/test/util/time.h | 14 +++++----- src/test/util_tests.cpp | 2 +- src/util/time.h | 2 +- src/wallet/test/fuzz/fees.cpp | 2 +- src/wallet/test/fuzz/scriptpubkeyman.cpp | 4 +-- src/wallet/test/fuzz/spend.cpp | 2 +- 44 files changed, 99 insertions(+), 99 deletions(-) diff --git a/src/bench/index_blockfilter.cpp b/src/bench/index_blockfilter.cpp index a1e85b44114..781aa097801 100644 --- a/src/bench/index_blockfilter.cpp +++ b/src/bench/index_blockfilter.cpp @@ -38,10 +38,10 @@ static void BlockFilterIndexSync(benchmark::Bench& bench) CPubKey pubkey{"02ed26169896db86ced4cbb7b3ecef9859b5952825adbeab998fb5b307e54949c9"_hex_u8}; CScript script = GetScriptForDestination(WitnessV0KeyHash(pubkey)); std::vector noTxns; - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; for (int i = 0; i < CHAIN_SIZE - 100; i++) { test_setup->CreateAndProcessBlock(noTxns, script); - clock_ctx += 1s; + clock += 1s; } assert(WITH_LOCK(::cs_main, return test_setup->m_node.chainman->ActiveHeight() == CHAIN_SIZE)); diff --git a/src/bench/util_time.cpp b/src/bench/util_time.cpp index 19ffd0e0498..0079549c0d1 100644 --- a/src/bench/util_time.cpp +++ b/src/bench/util_time.cpp @@ -15,7 +15,7 @@ static void BenchTimeDeprecated(benchmark::Bench& bench) static void BenchTimeMock(benchmark::Bench& bench) { - NodeClockContext clock_ctx{111s}; + FakeNodeClock clock{111s}; bench.run([&] { (void)GetTime(); }); diff --git a/src/bench/wallet_balance.cpp b/src/bench/wallet_balance.cpp index 07fd46a9fca..dd04a5c11a9 100644 --- a/src/bench/wallet_balance.cpp +++ b/src/bench/wallet_balance.cpp @@ -33,7 +33,7 @@ static void WalletBalance(benchmark::Bench& bench, const bool set_dirty, const b // Set clock to genesis block, so the descriptors/keys creation time don't interfere with the blocks scanning process. // The reason is 'generatetoaddress', which creates a chain with deterministic timestamps in the past. - NodeClockContext clock_ctx{test_setup->m_node.chainman->GetParams().GenesisBlock().Time()}; + FakeNodeClock clock{test_setup->m_node.chainman->GetParams().GenesisBlock().Time()}; CWallet wallet{test_setup->m_node.chain.get(), "", CreateMockableWalletDatabase()}; { LOCK(wallet.cs_wallet); diff --git a/src/bench/wallet_create_tx.cpp b/src/bench/wallet_create_tx.cpp index 11125e26fed..68bbc3d64fa 100644 --- a/src/bench/wallet_create_tx.cpp +++ b/src/bench/wallet_create_tx.cpp @@ -118,7 +118,7 @@ static void WalletCreateTx(benchmark::Bench& bench, const OutputType output_type const auto test_setup = MakeNoLogFileContext(); // Set clock to genesis block, so the descriptors/keys creation time don't interfere with the blocks scanning process. - NodeClockContext clock_ctx{test_setup->m_node.chainman->GetParams().GenesisBlock().Time()}; + FakeNodeClock clock{test_setup->m_node.chainman->GetParams().GenesisBlock().Time()}; CWallet wallet{test_setup->m_node.chain.get(), "", CreateMockableWalletDatabase()}; { LOCK(wallet.cs_wallet); @@ -173,7 +173,7 @@ static void AvailableCoins(benchmark::Bench& bench, const std::vector(); // Set clock to genesis block, so the descriptors/keys creation time don't interfere with the blocks scanning process. - NodeClockContext clock_ctx{test_setup->m_node.chainman->GetParams().GenesisBlock().Time()}; + FakeNodeClock clock{test_setup->m_node.chainman->GetParams().GenesisBlock().Time()}; CWallet wallet{test_setup->m_node.chain.get(), "", CreateMockableWalletDatabase()}; { LOCK(wallet.cs_wallet); diff --git a/src/bench/wallet_encrypt.cpp b/src/bench/wallet_encrypt.cpp index 442e4bf569b..586460133d7 100644 --- a/src/bench/wallet_encrypt.cpp +++ b/src/bench/wallet_encrypt.cpp @@ -45,7 +45,7 @@ static void WalletEncrypt(benchmark::Bench& bench, unsigned int key_count) // Setting a mock time is necessary to force default derive iteration count during // wallet encryption. - NodeClockContext clock_ctx{1s}; + FakeNodeClock clock{1s}; std::unique_ptr database; std::shared_ptr wallet; diff --git a/src/test/addrman_tests.cpp b/src/test/addrman_tests.cpp index 8ebafb0d091..117ca8c6a14 100644 --- a/src/test/addrman_tests.cpp +++ b/src/test/addrman_tests.cpp @@ -97,7 +97,7 @@ BOOST_AUTO_TEST_CASE(addrman_simple) BOOST_AUTO_TEST_CASE(addrman_terrible_many_failures) { - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; auto addrman{std::make_unique(EMPTY_NETGROUPMAN, DETERMINISTIC, GetCheckRatio(m_node))}; @@ -108,7 +108,7 @@ BOOST_AUTO_TEST_CASE(addrman_terrible_many_failures) BOOST_CHECK(addrman->Add({addr}, source)); BOOST_CHECK(addrman->Good(addr)); - clock_ctx += ADDRMAN_MIN_FAIL + 24h; + clock += ADDRMAN_MIN_FAIL + 24h; CAddress addr_helper{CAddress(ResolveService("251.252.2.3", 8333), NODE_NONE)}; addr_helper.nTime = Now(); @@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(addrman_terrible_many_failures) BOOST_AUTO_TEST_CASE(addrman_penalty_self_announcement) { - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; auto addrman = std::make_unique(EMPTY_NETGROUPMAN, DETERMINISTIC, GetCheckRatio(m_node)); const auto base_time{Now() - 10000s}; @@ -1030,8 +1030,8 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks) BOOST_CHECK_EQUAL(addrman->SelectTriedCollision().first.ToStringAddrPort(), "250.1.1.36:0"); // Eviction is also successful if too much time has passed since last try - NodeClockContext clock_ctx{}; - clock_ctx += 4h; + FakeNodeClock clock{}; + clock += 4h; addrman->ResolveCollisions(); BOOST_CHECK(addrman->SelectTriedCollision().first.ToStringAddrPort() == "[::]:0"); //Now 19 is in tried again, and 36 back to new diff --git a/src/test/banman_tests.cpp b/src/test/banman_tests.cpp index d1e79e35774..a2053896b04 100644 --- a/src/test/banman_tests.cpp +++ b/src/test/banman_tests.cpp @@ -17,7 +17,7 @@ BOOST_FIXTURE_TEST_SUITE(banman_tests, BasicTestingSetup) BOOST_AUTO_TEST_CASE(file) { - NodeClockContext clock_ctx{777s}; + FakeNodeClock clock{777s}; const fs::path banlist_path{m_args.GetDataDirBase() / "banlist_test"}; { const std::string entries_write{ diff --git a/src/test/chainstate_write_tests.cpp b/src/test/chainstate_write_tests.cpp index b7f7afa7105..64a3fc1b8f7 100644 --- a/src/test/chainstate_write_tests.cpp +++ b/src/test/chainstate_write_tests.cpp @@ -31,7 +31,7 @@ BOOST_FIXTURE_TEST_CASE(chainstate_write_interval, TestingSetup) m_node.validation_signals->RegisterSharedValidationInterface(sub); auto& chainstate{Assert(m_node.chainman)->ActiveChainstate()}; BlockValidationState state_dummy{}; - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; // The first periodic flush sets m_next_write and does not flush chainstate.FlushStateToDisk(state_dummy, FlushStateMode::PERIODIC); @@ -39,12 +39,12 @@ BOOST_FIXTURE_TEST_CASE(chainstate_write_interval, TestingSetup) BOOST_CHECK(!sub->m_did_flush); // The periodic flush interval is between 50 and 70 minutes (inclusive) - clock_ctx += DATABASE_WRITE_INTERVAL_MIN - 1min; + clock += DATABASE_WRITE_INTERVAL_MIN - 1min; chainstate.FlushStateToDisk(state_dummy, FlushStateMode::PERIODIC); m_node.validation_signals->SyncWithValidationInterfaceQueue(); BOOST_CHECK(!sub->m_did_flush); - clock_ctx += DATABASE_WRITE_INTERVAL_MAX; + clock += DATABASE_WRITE_INTERVAL_MAX; chainstate.FlushStateToDisk(state_dummy, FlushStateMode::PERIODIC); m_node.validation_signals->SyncWithValidationInterfaceQueue(); BOOST_CHECK(sub->m_did_flush); @@ -70,7 +70,7 @@ BOOST_FIXTURE_TEST_CASE(write_during_multiblock_activation, TestChain100Setup) auto& chainstate{Assert(m_node.chainman)->ActiveChainstate()}; BlockValidationState state_dummy{}; - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; // Pop two blocks from the tip const CBlockIndex* tip{chainstate.m_chain.Tip()}; @@ -89,7 +89,7 @@ BOOST_FIXTURE_TEST_CASE(write_during_multiblock_activation, TestChain100Setup) m_node.validation_signals->SyncWithValidationInterfaceQueue(); // The periodic flush interval is between 50 and 70 minutes (inclusive) // The next call to a PERIODIC write will flush - clock_ctx += DATABASE_WRITE_INTERVAL_MAX; + clock += DATABASE_WRITE_INTERVAL_MAX; const auto sub{std::make_shared()}; m_node.validation_signals->RegisterSharedValidationInterface(sub); diff --git a/src/test/denialofservice_tests.cpp b/src/test/denialofservice_tests.cpp index 13b32b4fe22..1a003c00a9e 100644 --- a/src/test/denialofservice_tests.cpp +++ b/src/test/denialofservice_tests.cpp @@ -91,8 +91,8 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction) } connman.FlushSendBuffer(dummyNode1); - NodeClockContext clock_ctx{}; - clock_ctx += 21min; + FakeNodeClock clock{}; + clock += 21min; BOOST_CHECK(peerman.SendMessages(dummyNode1)); // should result in getheaders { @@ -101,7 +101,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction) BOOST_CHECK(!to_send.empty()); } - clock_ctx += 3min; + clock += 3min; BOOST_CHECK(peerman.SendMessages(dummyNode1)); // should result in disconnect BOOST_CHECK(dummyNode1.fDisconnect == true); @@ -153,7 +153,7 @@ BOOST_FIXTURE_TEST_CASE(stale_tip_peer_management, OutboundTest) options.m_max_automatic_connections = DEFAULT_MAX_PEER_CONNECTIONS; const auto time_init{Now()}; - NodeClockContext clock_ctx{time_init}; + FakeNodeClock clock{time_init}; const auto delta{3 * std::chrono::seconds{m_node.chainman->GetConsensus().nPowTargetSpacing} + 1s}; connman->Init(options); std::vector vNodes; @@ -170,7 +170,7 @@ BOOST_FIXTURE_TEST_CASE(stale_tip_peer_management, OutboundTest) BOOST_CHECK(node->fDisconnect == false); } - clock_ctx += delta; + clock += delta; // Now tip should definitely be stale, and we should look for an extra // outbound peer @@ -185,9 +185,9 @@ BOOST_FIXTURE_TEST_CASE(stale_tip_peer_management, OutboundTest) // If we add one more peer, something should get marked for eviction // on the next check (since we're mocking the time to be in the future, the // required time connected check should be satisfied). - clock_ctx.set(time_init); + clock.set(time_init); AddRandomOutboundPeer(id, vNodes, *peerLogic, *connman, ConnectionType::OUTBOUND_FULL_RELAY); - clock_ctx += delta; + clock += delta; peerLogic->CheckForStaleTipAndEvictPeers(); for (int i = 0; i < max_outbound_full_relay; ++i) { @@ -213,9 +213,9 @@ BOOST_FIXTURE_TEST_CASE(stale_tip_peer_management, OutboundTest) // Add an onion peer, that will be protected because it is the only one for // its network, so another peer gets disconnected instead. - clock_ctx.set(time_init); + clock.set(time_init); AddRandomOutboundPeer(id, vNodes, *peerLogic, *connman, ConnectionType::OUTBOUND_FULL_RELAY, /*onion_peer=*/true); - clock_ctx += delta; + clock += delta; peerLogic->CheckForStaleTipAndEvictPeers(); for (int i = 0; i < max_outbound_full_relay - 2; ++i) { @@ -226,9 +226,9 @@ BOOST_FIXTURE_TEST_CASE(stale_tip_peer_management, OutboundTest) BOOST_CHECK(vNodes[max_outbound_full_relay]->fDisconnect == false); // Add a second onion peer which won't be protected - clock_ctx.set(time_init); + clock.set(time_init); AddRandomOutboundPeer(id, vNodes, *peerLogic, *connman, ConnectionType::OUTBOUND_FULL_RELAY, /*onion_peer=*/true); - clock_ctx += delta; + clock += delta; peerLogic->CheckForStaleTipAndEvictPeers(); BOOST_CHECK(vNodes.back()->fDisconnect == true); @@ -243,7 +243,7 @@ BOOST_FIXTURE_TEST_CASE(stale_tip_peer_management, OutboundTest) BOOST_FIXTURE_TEST_CASE(block_relay_only_eviction, OutboundTest) { NodeId id{0}; - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; auto connman = std::make_unique(0x1337, 0x1337, *m_node.addrman, *m_node.netgroupman, Params()); auto peerLogic = PeerManager::make(*connman, *m_node.addrman, nullptr, *m_node.chainman, *m_node.mempool, *m_node.warnings, {}); @@ -275,7 +275,7 @@ BOOST_FIXTURE_TEST_CASE(block_relay_only_eviction, OutboundTest) } BOOST_CHECK(vNodes.back()->fDisconnect == false); - clock_ctx += MINIMUM_CONNECT_TIME; + clock += MINIMUM_CONNECT_TIME; peerLogic->CheckForStaleTipAndEvictPeers(); for (int i = 0; i < max_outbound_block_relay; ++i) { BOOST_CHECK(vNodes[i]->fDisconnect == false); @@ -413,7 +413,7 @@ BOOST_AUTO_TEST_CASE(DoS_bantime) auto peerLogic = PeerManager::make(*connman, *m_node.addrman, banman.get(), *m_node.chainman, *m_node.mempool, *m_node.warnings, {}); banman->ClearBanned(); - const NodeClockContext clock_ctx{}; // keep mocktime constant + const FakeNodeClock clock{}; // keep mocktime constant CAddress addr(ip(0xa0b0c001), NODE_NONE); NodeId id{0}; diff --git a/src/test/fuzz/addrman.cpp b/src/test/fuzz/addrman.cpp index 750480285de..435de296d84 100644 --- a/src/test/fuzz/addrman.cpp +++ b/src/test/fuzz/addrman.cpp @@ -117,7 +117,7 @@ FUZZ_TARGET(addrman, .init = initialize_addrman) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; NetGroupManager netgroupman{ConsumeNetGroupManager(fuzzed_data_provider)}; auto addr_man_ptr = std::make_unique(netgroupman, fuzzed_data_provider, GetCheckRatio()); if (fuzzed_data_provider.ConsumeBool()) { @@ -202,7 +202,7 @@ FUZZ_TARGET(addrman_serdeser, .init = initialize_addrman) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; NetGroupManager netgroupman{ConsumeNetGroupManager(fuzzed_data_provider)}; AddrManDeterministic addr_man1{netgroupman, fuzzed_data_provider, GetCheckRatio()}; diff --git a/src/test/fuzz/banman.cpp b/src/test/fuzz/banman.cpp index aa7e76b90c7..aac93c9dad7 100644 --- a/src/test/fuzz/banman.cpp +++ b/src/test/fuzz/banman.cpp @@ -45,7 +45,7 @@ FUZZ_TARGET(banman, .init = initialize_banman) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; fs::path banlist_file = gArgs.GetDataDirNet() / "fuzzed_banlist"; const bool start_with_corrupted_banlist{fuzzed_data_provider.ConsumeBool()}; @@ -125,7 +125,7 @@ FUZZ_TARGET(banman, .init = initialize_banman) } if (!force_read_and_write_to_err) { ban_man.DumpBanlist(); - clock_ctx.set(ConsumeTime(fuzzed_data_provider)); + clock.set(ConsumeTime(fuzzed_data_provider)); banmap_t banmap; ban_man.GetBanned(banmap); BanMan ban_man_read{banlist_file, /*client_interface=*/nullptr, /*default_ban_time=*/0}; diff --git a/src/test/fuzz/block_index_tree.cpp b/src/test/fuzz/block_index_tree.cpp index 2eac6d6bd26..ad38f6e608f 100644 --- a/src/test/fuzz/block_index_tree.cpp +++ b/src/test/fuzz/block_index_tree.cpp @@ -42,7 +42,7 @@ void initialize_block_index_tree() FUZZ_TARGET(block_index_tree, .init = initialize_block_index_tree) { FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; auto& chainman = static_cast(*g_setup->m_node.chainman); auto& blockman = static_cast(chainman.m_blockman); CBlockIndex* genesis = chainman.ActiveChainstate().m_chain[0]; diff --git a/src/test/fuzz/cmpctblock.cpp b/src/test/fuzz/cmpctblock.cpp index 882169c93a3..ff5279caed8 100644 --- a/src/test/fuzz/cmpctblock.cpp +++ b/src/test/fuzz/cmpctblock.cpp @@ -163,7 +163,7 @@ FUZZ_TARGET(cmpctblock, .init = initialize_cmpctblock) SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{1610000000s}; + FakeNodeClock clock{1610000000s}; auto setup = g_setup; auto& mempool = *setup->m_node.mempool; @@ -453,10 +453,10 @@ FUZZ_TARGET(cmpctblock, .init = initialize_cmpctblock) [&]() { // Set mock time randomly or to tip's time. if (fuzzed_data_provider.ConsumeBool()) { - clock_ctx.set(ConsumeTime(fuzzed_data_provider)); + clock.set(ConsumeTime(fuzzed_data_provider)); } else { const NodeSeconds tip_time = WITH_LOCK(::cs_main, return chainman.ActiveChain().Tip()->Time()); - clock_ctx.set(tip_time); + clock.set(tip_time); } sent_net_msg = false; diff --git a/src/test/fuzz/connman.cpp b/src/test/fuzz/connman.cpp index 669a1169a83..614bdf4f337 100644 --- a/src/test/fuzz/connman.cpp +++ b/src/test/fuzz/connman.cpp @@ -41,7 +41,7 @@ FUZZ_TARGET(connman, .init = initialize_connman) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; auto netgroupman{ConsumeNetGroupManager(fuzzed_data_provider)}; auto addr_man_ptr{std::make_unique(netgroupman, fuzzed_data_provider, GetCheckRatio())}; if (fuzzed_data_provider.ConsumeBool()) { diff --git a/src/test/fuzz/headerssync.cpp b/src/test/fuzz/headerssync.cpp index f54ea980e4e..54a179aa89f 100644 --- a/src/test/fuzz/headerssync.cpp +++ b/src/test/fuzz/headerssync.cpp @@ -60,7 +60,7 @@ FUZZ_TARGET(headers_sync_state, .init = initialize_headers_sync_state_fuzz) CBlockHeader genesis_header{Params().GenesisBlock()}; CBlockIndex start_index(genesis_header); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider, /*min=*/start_index.GetMedianTimePast())}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider, /*min=*/start_index.GetMedianTimePast())}; const uint256 genesis_hash = genesis_header.GetHash(); start_index.phashBlock = &genesis_hash; diff --git a/src/test/fuzz/i2p.cpp b/src/test/fuzz/i2p.cpp index d262e1d0f31..5c94a19b8d8 100644 --- a/src/test/fuzz/i2p.cpp +++ b/src/test/fuzz/i2p.cpp @@ -27,7 +27,7 @@ FUZZ_TARGET(i2p, .init = initialize_i2p) SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; // Mock CreateSock() to create FuzzedSock. auto CreateSockOrig = CreateSock; diff --git a/src/test/fuzz/load_external_block_file.cpp b/src/test/fuzz/load_external_block_file.cpp index 8b86f70dd23..be7e2bde8fb 100644 --- a/src/test/fuzz/load_external_block_file.cpp +++ b/src/test/fuzz/load_external_block_file.cpp @@ -29,7 +29,7 @@ void initialize_load_external_block_file() FUZZ_TARGET(load_external_block_file, .init = initialize_load_external_block_file) { FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; FuzzedFileProvider fuzzed_file_provider{fuzzed_data_provider}; AutoFile fuzzed_block_file{fuzzed_file_provider.open()}; if (fuzzed_block_file.IsNull()) { diff --git a/src/test/fuzz/mini_miner.cpp b/src/test/fuzz/mini_miner.cpp index daa3dae3411..27bf3237922 100644 --- a/src/test/fuzz/mini_miner.cpp +++ b/src/test/fuzz/mini_miner.cpp @@ -49,7 +49,7 @@ FUZZ_TARGET(mini_miner, .init = initialize_miner) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; bilingual_str error; CTxMemPool pool{CTxMemPool::Options{}, error}; Assert(error.empty()); diff --git a/src/test/fuzz/net.cpp b/src/test/fuzz/net.cpp index 20fbae1594b..93ea00cb94c 100644 --- a/src/test/fuzz/net.cpp +++ b/src/test/fuzz/net.cpp @@ -32,7 +32,7 @@ void initialize_net() FUZZ_TARGET(net, .init = initialize_net) { FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; CNode node{ConsumeNode(fuzzed_data_provider)}; node.SetCommonVersion(fuzzed_data_provider.ConsumeIntegral()); if (const auto service_opt = @@ -81,7 +81,7 @@ FUZZ_TARGET(net, .init = initialize_net) FUZZ_TARGET(local_address, .init = initialize_net) { FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; CService service{ConsumeService(fuzzed_data_provider)}; CNode node{ConsumeNode(fuzzed_data_provider)}; { diff --git a/src/test/fuzz/p2p_handshake.cpp b/src/test/fuzz/p2p_handshake.cpp index 85b18476f1e..affc63c9a16 100644 --- a/src/test/fuzz/p2p_handshake.cpp +++ b/src/test/fuzz/p2p_handshake.cpp @@ -41,7 +41,7 @@ FUZZ_TARGET(p2p_handshake, .init = ::initialize) auto& node{g_setup->m_node}; auto& connman{static_cast(*node.connman)}; auto& chainman{static_cast(*node.chainman)}; - NodeClockContext clock_ctx{1610000000s}; // any time to successfully reset ibd + FakeNodeClock clock{1610000000s}; // any time to successfully reset ibd chainman.ResetIbd(); node.banman.reset(); @@ -80,7 +80,7 @@ FUZZ_TARGET(p2p_handshake, .init = ::initialize) continue; } - clock_ctx += std::chrono::seconds{ + clock += std::chrono::seconds{ fuzzed_data_provider.ConsumeIntegralInRange( -std::chrono::seconds{10min}.count(), // Allow mocktime to go backwards slightly std::chrono::seconds{TIMEOUT_INTERVAL}.count()), diff --git a/src/test/fuzz/p2p_headers_presync.cpp b/src/test/fuzz/p2p_headers_presync.cpp index 0e60cb2aded..d8a748ee6ea 100644 --- a/src/test/fuzz/p2p_headers_presync.cpp +++ b/src/test/fuzz/p2p_headers_presync.cpp @@ -168,7 +168,7 @@ FUZZ_TARGET(p2p_headers_presync, .init = initialize) ChainstateManager& chainman = *g_testing_setup->m_node.chainman; CBlockHeader base{chainman.GetParams().GenesisBlock()}; - const NodeClockContext clock_ctx{base.Time()}; + const FakeNodeClock clock{base.Time()}; LOCK(NetEventsInterface::g_msgproc_mutex); diff --git a/src/test/fuzz/partially_downloaded_block.cpp b/src/test/fuzz/partially_downloaded_block.cpp index 12fdb8f7d2e..56815c4690d 100644 --- a/src/test/fuzz/partially_downloaded_block.cpp +++ b/src/test/fuzz/partially_downloaded_block.cpp @@ -48,7 +48,7 @@ FUZZ_TARGET(partially_downloaded_block, .init = initialize_pdb) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; auto block{ConsumeDeserializable(fuzzed_data_provider, TX_WITH_WITNESS)}; if (!block || block->vtx.size() == 0 || diff --git a/src/test/fuzz/process_message.cpp b/src/test/fuzz/process_message.cpp index 3ebedd919a2..f5d59891f25 100644 --- a/src/test/fuzz/process_message.cpp +++ b/src/test/fuzz/process_message.cpp @@ -83,7 +83,7 @@ FUZZ_TARGET(process_message, .init = initialize_process_message) connman.Reset(); auto& chainman{static_cast(*node.chainman)}; const auto block_index_size{WITH_LOCK(chainman.GetMutex(), return chainman.BlockIndex().size())}; - NodeClockContext clock_ctx{1610000000s}; // any time to successfully reset ibd + FakeNodeClock clock{1610000000s}; // any time to successfully reset ibd chainman.ResetIbd(); chainman.DisableNextWrite(); @@ -116,7 +116,7 @@ FUZZ_TARGET(process_message, .init = initialize_process_message) connman.AddTestNode(p2p_node); FillNode(fuzzed_data_provider, connman, p2p_node); - clock_ctx.set(ConsumeTime(fuzzed_data_provider)); + clock.set(ConsumeTime(fuzzed_data_provider)); CSerializedNetMsg net_msg; net_msg.m_type = random_message_type; diff --git a/src/test/fuzz/process_messages.cpp b/src/test/fuzz/process_messages.cpp index 21b44515187..68eb2b8ddb9 100644 --- a/src/test/fuzz/process_messages.cpp +++ b/src/test/fuzz/process_messages.cpp @@ -72,7 +72,7 @@ FUZZ_TARGET(process_messages, .init = initialize_process_messages) connman.Reset(); auto& chainman{static_cast(*node.chainman)}; const auto block_index_size{WITH_LOCK(chainman.GetMutex(), return chainman.BlockIndex().size())}; - NodeClockContext clock_ctx{1610000000s}; // any time to successfully reset ibd + FakeNodeClock clock{1610000000s}; // any time to successfully reset ibd chainman.ResetIbd(); chainman.DisableNextWrite(); @@ -110,7 +110,7 @@ FUZZ_TARGET(process_messages, .init = initialize_process_messages) { const std::string random_message_type{fuzzed_data_provider.ConsumeBytesAsString(CMessageHeader::MESSAGE_TYPE_SIZE).c_str()}; - clock_ctx.set(ConsumeTime(fuzzed_data_provider)); + clock.set(ConsumeTime(fuzzed_data_provider)); CSerializedNetMsg net_msg; net_msg.m_type = random_message_type; diff --git a/src/test/fuzz/rbf.cpp b/src/test/fuzz/rbf.cpp index 26488f1e994..a94d2b9dc7a 100644 --- a/src/test/fuzz/rbf.cpp +++ b/src/test/fuzz/rbf.cpp @@ -54,7 +54,7 @@ FUZZ_TARGET(rbf, .init = initialize_rbf) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; std::optional mtx = ConsumeDeserializable(fuzzed_data_provider, TX_WITH_WITNESS); if (!mtx) { return; @@ -96,7 +96,7 @@ FUZZ_TARGET(package_rbf, .init = initialize_package_rbf) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; // "Real" virtual size is not important for this test since ConsumeTxMemPoolEntry generates its own virtual size values // so we construct small transactions for performance reasons. Child simply needs an input for later to perhaps connect to parent. diff --git a/src/test/fuzz/rpc.cpp b/src/test/fuzz/rpc.cpp index a6e486ce80d..e3d3e540dcb 100644 --- a/src/test/fuzz/rpc.cpp +++ b/src/test/fuzz/rpc.cpp @@ -372,7 +372,7 @@ FUZZ_TARGET(rpc, .init = initialize_rpc) SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; bool good_data{true}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; const std::string rpc_command = fuzzed_data_provider.ConsumeRandomLengthString(64); if (!g_limit_to_rpc_command.empty() && rpc_command != g_limit_to_rpc_command) { return; diff --git a/src/test/fuzz/socks5.cpp b/src/test/fuzz/socks5.cpp index 12db69a2368..0bd1710d2a8 100644 --- a/src/test/fuzz/socks5.cpp +++ b/src/test/fuzz/socks5.cpp @@ -31,7 +31,7 @@ void initialize_socks5() FUZZ_TARGET(socks5, .init = initialize_socks5) { FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; ProxyCredentials proxy_credentials; proxy_credentials.username = fuzzed_data_provider.ConsumeRandomLengthString(512); proxy_credentials.password = fuzzed_data_provider.ConsumeRandomLengthString(512); diff --git a/src/test/fuzz/txdownloadman.cpp b/src/test/fuzz/txdownloadman.cpp index a2c7fc562c9..ab08fd25435 100644 --- a/src/test/fuzz/txdownloadman.cpp +++ b/src/test/fuzz/txdownloadman.cpp @@ -169,7 +169,7 @@ FUZZ_TARGET(txdownloadman, .init = initialize) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; // Initialize txdownloadman bilingual_str error; @@ -294,7 +294,7 @@ FUZZ_TARGET(txdownloadman_impl, .init = initialize) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; // Initialize a TxDownloadManagerImpl bilingual_str error; diff --git a/src/test/fuzz/txorphan.cpp b/src/test/fuzz/txorphan.cpp index 394aed30ef6..fcb530b03da 100644 --- a/src/test/fuzz/txorphan.cpp +++ b/src/test/fuzz/txorphan.cpp @@ -41,7 +41,7 @@ FUZZ_TARGET(txorphan, .init = initialize_orphanage) SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); FastRandomContext orphanage_rng{ConsumeUInt256(fuzzed_data_provider)}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; auto orphanage = node::MakeTxOrphanage(); std::vector outpoints; // Duplicates are tolerated @@ -232,7 +232,7 @@ FUZZ_TARGET(txorphan_protected, .init = initialize_orphanage) SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); FastRandomContext orphanage_rng{ConsumeUInt256(fuzzed_data_provider)}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; // We have num_peers peers. Some subset of them will never exceed their reserved weight or announcement count, and // should therefore never have any orphans evicted. diff --git a/src/test/fuzz/util/check_globals.cpp b/src/test/fuzz/util/check_globals.cpp index ca3111534d3..6e7901dd98f 100644 --- a/src/test/fuzz/util/check_globals.cpp +++ b/src/test/fuzz/util/check_globals.cpp @@ -43,7 +43,7 @@ struct CheckGlobalsImpl { "The current fuzz target accessed system time.\n\n" "This is acceptable, but requires the fuzz target to use \n" - "a NodeClockContext, SteadyClockContext or call \n" + "a FakeNodeClock, SteadyClockContext or call \n" "SetMockTime() at the \n" "beginning of processing the \n" "fuzz input.\n\n" diff --git a/src/test/fuzz/utxo_snapshot.cpp b/src/test/fuzz/utxo_snapshot.cpp index ed286865d08..b15ff137602 100644 --- a/src/test/fuzz/utxo_snapshot.cpp +++ b/src/test/fuzz/utxo_snapshot.cpp @@ -104,7 +104,7 @@ void utxo_snapshot_fuzz(FuzzBufferType buffer) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider, /*min=*/1296688602)}; // regtest genesis block timestamp + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider, /*min=*/1296688602)}; // regtest genesis block timestamp auto& setup{*g_setup}; bool dirty_chainman{false}; // Reuse the global chainman, but reset it when it is dirty auto& chainman{*setup.m_node.chainman}; diff --git a/src/test/fuzz/utxo_total_supply.cpp b/src/test/fuzz/utxo_total_supply.cpp index b59cbf997db..a6e70372c32 100644 --- a/src/test/fuzz/utxo_total_supply.cpp +++ b/src/test/fuzz/utxo_total_supply.cpp @@ -35,7 +35,7 @@ FUZZ_TARGET(utxo_total_supply) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider, /*min=*/1296688602)}; // regtest genesis block timestamp + FakeNodeClock clock{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, diff --git a/src/test/fuzz/validation_load_mempool.cpp b/src/test/fuzz/validation_load_mempool.cpp index 9180945d0e7..b859f245569 100644 --- a/src/test/fuzz/validation_load_mempool.cpp +++ b/src/test/fuzz/validation_load_mempool.cpp @@ -41,7 +41,7 @@ FUZZ_TARGET(validation_load_mempool, .init = initialize_validation_load_mempool) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; FuzzedFileProvider fuzzed_file_provider{fuzzed_data_provider}; bilingual_str error; diff --git a/src/test/mempool_tests.cpp b/src/test/mempool_tests.cpp index 77024c3edc6..daaf2e61c28 100644 --- a/src/test/mempool_tests.cpp +++ b/src/test/mempool_tests.cpp @@ -252,29 +252,29 @@ BOOST_AUTO_TEST_CASE(MempoolSizeLimitTest) TryAddToMempool(pool, entry.Fee(900LL).FromTx(tx7)); std::vector vtx; - NodeClockContext clock_ctx{42s}; + FakeNodeClock clock{42s}; constexpr std::chrono::seconds HALFLIFE{CTxMemPool::ROLLING_FEE_HALFLIFE}; - clock_ctx += HALFLIFE; + clock += HALFLIFE; BOOST_CHECK_EQUAL(pool.GetMinFee(1).GetFeePerK(), maxFeeRateRemoved.GetFeePerK() + DEFAULT_INCREMENTAL_RELAY_FEE); // ... we should keep the same min fee until we get a block pool.removeForBlock(vtx, 1); - clock_ctx += HALFLIFE; + clock += HALFLIFE; BOOST_CHECK_EQUAL(pool.GetMinFee(1).GetFeePerK(), llround((maxFeeRateRemoved.GetFeePerK() + DEFAULT_INCREMENTAL_RELAY_FEE)/2.0)); // ... then feerate should drop 1/2 each halflife - clock_ctx += HALFLIFE / 2; + clock += HALFLIFE / 2; BOOST_CHECK_EQUAL(pool.GetMinFee(pool.DynamicMemoryUsage() * 5 / 2).GetFeePerK(), llround((maxFeeRateRemoved.GetFeePerK() + DEFAULT_INCREMENTAL_RELAY_FEE)/4.0)); // ... with a 1/2 halflife when mempool is < 1/2 its target size - clock_ctx += HALFLIFE / 4; + clock += HALFLIFE / 4; BOOST_CHECK_EQUAL(pool.GetMinFee(pool.DynamicMemoryUsage() * 9 / 2).GetFeePerK(), llround((maxFeeRateRemoved.GetFeePerK() + DEFAULT_INCREMENTAL_RELAY_FEE)/8.0)); // ... with a 1/4 halflife when mempool is < 1/4 its target size - clock_ctx += 5 * HALFLIFE; + clock += 5 * HALFLIFE; BOOST_CHECK_EQUAL(pool.GetMinFee(1).GetFeePerK(), DEFAULT_INCREMENTAL_RELAY_FEE); // ... but feerate should never drop below DEFAULT_INCREMENTAL_RELAY_FEE - clock_ctx += HALFLIFE; + clock += HALFLIFE; BOOST_CHECK_EQUAL(pool.GetMinFee(1).GetFeePerK(), 0); // ... unless it has gone all the way to 0 (after getting past DEFAULT_INCREMENTAL_RELAY_FEE/2) } diff --git a/src/test/orphanage_tests.cpp b/src/test/orphanage_tests.cpp index f001360a177..c09f987aca4 100644 --- a/src/test/orphanage_tests.cpp +++ b/src/test/orphanage_tests.cpp @@ -432,7 +432,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans) FillableSigningProvider keystore; BOOST_CHECK(keystore.AddKey(key)); - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; std::vector orphans_added; diff --git a/src/test/private_broadcast_tests.cpp b/src/test/private_broadcast_tests.cpp index 2e87dc80955..8e7d13551ae 100644 --- a/src/test/private_broadcast_tests.cpp +++ b/src/test/private_broadcast_tests.cpp @@ -27,7 +27,7 @@ static CTransactionRef MakeDummyTx(uint32_t id, size_t num_witness) BOOST_AUTO_TEST_CASE(basic) { - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; PrivateBroadcast pb; const NodeId recipient1{1}; @@ -95,7 +95,7 @@ BOOST_AUTO_TEST_CASE(basic) BOOST_CHECK_EQUAL(pb.GetStale().size(), 0); // 2. Fast-forward the mock clock past the INITIAL_STALE_DURATION. - clock_ctx += PrivateBroadcast::INITIAL_STALE_DURATION + 1min; + clock += PrivateBroadcast::INITIAL_STALE_DURATION + 1min; // 3. Now that the initial duration has passed, both unconfirmed transactions should be stale. BOOST_CHECK_EQUAL(pb.GetStale().size(), 2); @@ -126,7 +126,7 @@ BOOST_AUTO_TEST_CASE(basic) BOOST_CHECK_EQUAL(stale_state.size(), 1); BOOST_CHECK_EQUAL(stale_state[0], tx_for_recipient2); - clock_ctx += 10h; + clock += 10h; BOOST_CHECK_EQUAL(pb.GetStale().size(), 2); @@ -142,7 +142,7 @@ BOOST_AUTO_TEST_CASE(basic) BOOST_AUTO_TEST_CASE(stale_unpicked_tx) { - NodeClockContext clock_ctx{}; + FakeNodeClock clock{}; PrivateBroadcast pb; const auto tx{MakeDummyTx(/*id=*/42, /*num_witness=*/0)}; @@ -150,9 +150,9 @@ BOOST_AUTO_TEST_CASE(stale_unpicked_tx) // Unpicked transactions use the longer INITIAL_STALE_DURATION. BOOST_CHECK_EQUAL(pb.GetStale().size(), 0); - clock_ctx += PrivateBroadcast::INITIAL_STALE_DURATION - 1min; + clock += PrivateBroadcast::INITIAL_STALE_DURATION - 1min; BOOST_CHECK_EQUAL(pb.GetStale().size(), 0); - clock_ctx += 2min; + clock += 2min; const auto stale_state{pb.GetStale()}; BOOST_REQUIRE_EQUAL(stale_state.size(), 1); BOOST_CHECK_EQUAL(stale_state[0], tx); diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index e8a3d992df5..390cd50c3c3 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -342,9 +342,9 @@ BOOST_AUTO_TEST_CASE(rpc_ban) BOOST_CHECK_NO_THROW(CallRPC(std::string("clearbanned"))); - NodeClockContext clock_ctx{10'000s}; + FakeNodeClock clock{10'000s}; BOOST_CHECK_NO_THROW(r = CallRPC(std::string("setban 127.0.0.0/24 add 200"))); - clock_ctx += 2s; + clock += 2s; const int64_t time_remaining_expected{198}; BOOST_CHECK_NO_THROW(r = CallRPC(std::string("listbanned"))); ar = r.get_array(); diff --git a/src/test/testnet4_miner_tests.cpp b/src/test/testnet4_miner_tests.cpp index ccd12cb23f7..ecaec1d18c6 100644 --- a/src/test/testnet4_miner_tests.cpp +++ b/src/test/testnet4_miner_tests.cpp @@ -42,7 +42,7 @@ BOOST_AUTO_TEST_CASE(MiningInterface) // Set node time a few minutes past the testnet4 genesis block const auto template_time{3min + WITH_LOCK(cs_main, return m_node.chainman->ActiveChain().Tip()->Time())}; - NodeClockContext clock_ctx{template_time}; + FakeNodeClock clock{template_time}; block_template = mining->createNewBlock({}, /*cooldown=*/false); BOOST_REQUIRE(block_template); @@ -57,14 +57,14 @@ BOOST_AUTO_TEST_CASE(MiningInterface) BOOST_REQUIRE(should_be_nullptr == nullptr); // This remains the case when exactly 20 minutes have gone by - clock_ctx += 17min; + clock += 17min; should_be_nullptr = block_template->waitNext(wait_options); BOOST_REQUIRE(should_be_nullptr == nullptr); // One second later the difficulty drops and it returns a new template // Note that we can't test the actual difficulty change, because the // difficulty is already at 1. - clock_ctx += 1s; + clock += 1s; block_template = block_template->waitNext(wait_options); BOOST_REQUIRE(block_template); } diff --git a/src/test/util/time.h b/src/test/util/time.h index 72dfd0e7a88..0d93a61cb31 100644 --- a/src/test/util/time.h +++ b/src/test/util/time.h @@ -36,22 +36,22 @@ public: /// Helper to initialize the global NodeClock, let a duration elapse, /// and reset it after use in a test. -class NodeClockContext +class FakeNodeClock { NodeSeconds m_t{std::chrono::seconds::max()}; public: /// Initialize with the given time. - explicit NodeClockContext(NodeSeconds init_time) { set(init_time); } - explicit NodeClockContext(std::chrono::seconds init_time) { set(init_time); } + explicit FakeNodeClock(NodeSeconds init_time) { set(init_time); } + explicit FakeNodeClock(std::chrono::seconds init_time) { set(init_time); } /// Initialize with current time. - explicit NodeClockContext() { set(Now()); } + explicit FakeNodeClock() { set(Now()); } /// Unset mocktime. - ~NodeClockContext() { set(0s); } + ~FakeNodeClock() { set(0s); } - NodeClockContext(const NodeClockContext&) = delete; - NodeClockContext& operator=(const NodeClockContext&) = delete; + FakeNodeClock(const FakeNodeClock&) = delete; + FakeNodeClock& operator=(const FakeNodeClock&) = delete; /// Set mocktime. void set(NodeSeconds t) { SetMockTime(m_t = t); } diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index 5747c3b080e..e26234f8696 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -587,7 +587,7 @@ BOOST_AUTO_TEST_CASE(strprintf_numbers) BOOST_AUTO_TEST_CASE(util_mocktime) { - NodeClockContext clock_ctx{111s}; + FakeNodeClock clock{111s}; // Check that mock time does not change after a sleep for (const auto& num_sleep : {0ms, 1ms}) { UninterruptibleSleep(num_sleep); diff --git a/src/util/time.h b/src/util/time.h index 119c47a4e8e..2e54ff85a70 100644 --- a/src/util/time.h +++ b/src/util/time.h @@ -23,7 +23,7 @@ using namespace std::chrono_literals; /// Version of the system clock that is mockable in the context of tests (via -/// NodeClockContext or ::SetMockTime), otherwise the system clock. +/// FakeNodeClock or ::SetMockTime), otherwise the system clock. struct NodeClock : public std::chrono::system_clock { using time_point = std::chrono::time_point; /** Return current system time or mocked time, if set */ diff --git a/src/wallet/test/fuzz/fees.cpp b/src/wallet/test/fuzz/fees.cpp index 0d332c5908b..36c1f56b0a9 100644 --- a/src/wallet/test/fuzz/fees.cpp +++ b/src/wallet/test/fuzz/fees.cpp @@ -63,7 +63,7 @@ FUZZ_TARGET(wallet_fees, .init = initialize_setup) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; auto& node{g_setup->m_node}; Chainstate* chainstate = &node.chainman->ActiveChainstate(); diff --git a/src/wallet/test/fuzz/scriptpubkeyman.cpp b/src/wallet/test/fuzz/scriptpubkeyman.cpp index b6b3c5d5597..fc10be4aa3b 100644 --- a/src/wallet/test/fuzz/scriptpubkeyman.cpp +++ b/src/wallet/test/fuzz/scriptpubkeyman.cpp @@ -93,7 +93,7 @@ FUZZ_TARGET(scriptpubkeyman, .init = initialize_spkm) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; const auto& node{g_setup->m_node}; Chainstate& chainstate{node.chainman->ActiveChainstate()}; std::unique_ptr wallet_ptr{std::make_unique(node.chain.get(), "", CreateMockableWalletDatabase())}; @@ -218,7 +218,7 @@ FUZZ_TARGET(spkm_migration, .init = initialize_spkm_migration) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; const auto& node{g_setup->m_node}; Chainstate& chainstate{node.chainman->ActiveChainstate()}; diff --git a/src/wallet/test/fuzz/spend.cpp b/src/wallet/test/fuzz/spend.cpp index e9a6bea71ef..56ddaa9cb75 100644 --- a/src/wallet/test/fuzz/spend.cpp +++ b/src/wallet/test/fuzz/spend.cpp @@ -34,7 +34,7 @@ FUZZ_TARGET(wallet_create_transaction, .init = initialize_setup) { SeedRandomStateForTest(SeedRand::ZEROS); FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; - NodeClockContext clock_ctx{ConsumeTime(fuzzed_data_provider)}; + FakeNodeClock clock{ConsumeTime(fuzzed_data_provider)}; const auto& node = g_setup->m_node; Chainstate& chainstate{node.chainman->ActiveChainstate()}; ArgsManager& args = *node.args;