mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-15 00:59:38 +02:00
Merge bitcoin/bitcoin#27005: util: Use steady clock for logging timer
fad7af700eUse steady clock for logging timer (MarcoFalke) Pull request description: The logging timer has many issues: * The underlying clock is mockable, meaning that benchmarks are useless when mocktime was set at the beginning or end of the benchmark. * The underlying clock is not monotonic, meaning that benchmarks are useless when the system time was changed during the benchmark. Fix all issues in this patch. ACKs for top commit: stickies-v: Approach ACKfad7af700ejohn-moffett: ACKfad7af700eTree-SHA512: bec8da0f338ed4611e1807937575e1b2afda25139d88015b1c29fa7d13946fbfbc4ee589b576c0508d505df5e5fafafcbc07d63ce4bab4b01475260d9d5d2107
This commit is contained in:
@@ -75,20 +75,9 @@ struct LogSetup : public BasicTestingSetup {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(logging_timer)
|
||||
{
|
||||
SetMockTime(1);
|
||||
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(1);
|
||||
auto ms_timer = BCLog::Timer<std::chrono::milliseconds>("tests", "end_msg");
|
||||
SetMockTime(2);
|
||||
BOOST_CHECK_EQUAL(ms_timer.LogMsg("test ms"), "tests: test ms (1000.00ms)");
|
||||
|
||||
SetMockTime(1);
|
||||
auto sec_timer = BCLog::Timer<std::chrono::seconds>("tests", "end_msg");
|
||||
SetMockTime(2);
|
||||
BOOST_CHECK_EQUAL(sec_timer.LogMsg("test secs"), "tests: test secs (1.00s)");
|
||||
const std::string_view result_prefix{"tests: msg ("};
|
||||
BOOST_CHECK_EQUAL(micro_timer.LogMsg("msg").substr(0, result_prefix.size()), result_prefix);
|
||||
}
|
||||
|
||||
BOOST_FIXTURE_TEST_CASE(logging_LogPrintf_, LogSetup)
|
||||
|
||||
Reference in New Issue
Block a user