Skip to content

Commit

Permalink
Merge bitcoin#21676: test: Use mocktime to avoid intermittent failure…
Browse files Browse the repository at this point in the history
… in rpc_tests

fa40d6a test: Reset mocktime in the common setup (MarcoFalke)
fa78590 test: Use mocktime to avoid intermittent failure (MarcoFalke)

Pull request description:

  See bitcoin#21602 (comment)

ACKs for top commit:
  jonatack:
    Code review ACK fa40d6a
  jarolrod:
    ACK fa40d6a

Tree-SHA512: 4967e006f3d2c4eb92f03c9086a6abe3190ad54755d251c30d20422c574bb1a154c06f3d5bcb0d4deaa3c4abfd3864d743b71d84897edd358e829bb42233ad12
  • Loading branch information
MarcoFalke authored and knst committed Apr 10, 2024
1 parent 76a41eb commit 21ad71c
Show file tree
Hide file tree
Showing 6 changed files with 7 additions and 16 deletions.
1 change: 0 additions & 1 deletion src/test/denialofservice_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
BOOST_CHECK(peerLogic->SendMessages(&dummyNode1)); // should result in disconnect
}
BOOST_CHECK(dummyNode1.fDisconnect == true);
SetMockTime(0);

peerLogic->FinalizeNode(dummyNode1);
}
Expand Down
3 changes: 0 additions & 3 deletions src/test/logging_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ BOOST_FIXTURE_TEST_SUITE(logging_tests, BasicTestingSetup)

BOOST_AUTO_TEST_CASE(logging_timer)
{

SetMockTime(1);
auto sec_timer = BCLog::Timer<std::chrono::seconds>("tests", "end_msg");
SetMockTime(2);
Expand All @@ -29,8 +28,6 @@ BOOST_AUTO_TEST_CASE(logging_timer)
auto micro_timer = BCLog::Timer<std::chrono::microseconds>("tests", "end_msg");
SetMockTime(2);
BOOST_CHECK_EQUAL(micro_timer.LogMsg("test micros"), "tests: test micros (1000000μs)");

SetMockTime(0);
}

BOOST_AUTO_TEST_SUITE_END()
2 changes: 0 additions & 2 deletions src/test/mempool_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -571,8 +571,6 @@ BOOST_AUTO_TEST_CASE(MempoolSizeLimitTest)
SetMockTime(42 + 8*CTxMemPool::ROLLING_FEE_HALFLIFE + CTxMemPool::ROLLING_FEE_HALFLIFE/2 + CTxMemPool::ROLLING_FEE_HALFLIFE/4);
BOOST_CHECK_EQUAL(pool.GetMinFee(1).GetFeePerK(), 0);
// ... unless it has gone all the way to 0 (after getting past 1000/2)

SetMockTime(0);
}

inline CTransactionRef make_tx(std::vector<CAmount>&& output_values, std::vector<CTransactionRef>&& inputs=std::vector<CTransactionRef>(), std::vector<uint32_t>&& input_indices=std::vector<uint32_t>())
Expand Down
10 changes: 6 additions & 4 deletions src/test/rpc_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,11 @@ BOOST_AUTO_TEST_CASE(rpc_ban)

BOOST_CHECK_NO_THROW(CallRPC(std::string("clearbanned")));

auto now = 10'000s;
SetMockTime(now);
BOOST_CHECK_NO_THROW(r = CallRPC(std::string("setban 127.0.0.0/24 add 200")));
SetMockTime(now += 2s);
const int64_t time_remaining_expected{198};
BOOST_CHECK_NO_THROW(r = CallRPC(std::string("listbanned")));
ar = r.get_array();
o1 = ar[0].get_obj();
Expand All @@ -332,12 +336,10 @@ BOOST_AUTO_TEST_CASE(rpc_ban)
const int64_t ban_created{find_value(o1, "ban_created").get_int64()};
const int64_t ban_duration{find_value(o1, "ban_duration").get_int64()};
const int64_t time_remaining{find_value(o1, "time_remaining").get_int64()};
const int64_t now{GetTime()};
BOOST_CHECK_EQUAL(adr.get_str(), "127.0.0.0/24");
BOOST_CHECK(banned_until > now);
BOOST_CHECK(banned_until - now <= 200);
BOOST_CHECK_EQUAL(banned_until, time_remaining_expected + now.count());
BOOST_CHECK_EQUAL(ban_duration, banned_until - ban_created);
BOOST_CHECK_EQUAL(time_remaining, banned_until - now);
BOOST_CHECK_EQUAL(time_remaining, time_remaining_expected);

// must throw an exception because 127.0.0.1 is in already banned subnet range
BOOST_CHECK_THROW(r = CallRPC(std::string("setban 127.0.0.1 add")), std::runtime_error);
Expand Down
2 changes: 1 addition & 1 deletion src/test/util/setup_common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ BasicTestingSetup::BasicTestingSetup(const std::string& chainName, const std::ve

BasicTestingSetup::~BasicTestingSetup()
{
SetMockTime(0s); // Reset mocktime for following tests
connman.reset();
llmq::quorumSnapshotManager.reset();
m_node.cpoolman.reset();
Expand Down Expand Up @@ -498,7 +499,6 @@ TestChainSetup::~TestChainSetup()
g_txindex->Stop();
SyncWithValidationInterfaceQueue();
g_txindex.reset();
SetMockTime(0);
}

CTxMemPoolEntry TestMemPoolEntryHelper::FromTx(const CMutableTransaction& tx) const
Expand Down
5 changes: 0 additions & 5 deletions src/wallet/test/wallet_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -315,8 +315,6 @@ BOOST_FIXTURE_TEST_CASE(importwallet_rescan, TestChain100Setup)
BOOST_CHECK_EQUAL(found, expected);
}
}

SetMockTime(0);
}

// Verify getaddressinfo RPC produces more or less expected results
Expand Down Expand Up @@ -473,9 +471,6 @@ BOOST_AUTO_TEST_CASE(ComputeTimeSmart)
// If there are future entries, new transaction should use time of the
// newest entry that is no more than 300 seconds ahead of the clock time.
BOOST_CHECK_EQUAL(AddTx(*m_node.chainman, m_wallet, 5, 50, 600), 300);

// Reset mock time for other tests.
SetMockTime(0);
}

BOOST_AUTO_TEST_CASE(LoadReceiveRequests)
Expand Down

0 comments on commit 21ad71c

Please sign in to comment.