From 498b323425d960274c40472a6a847afc1982201d Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Mon, 6 Sep 2021 21:01:57 +0200 Subject: [PATCH] log, timer: improve BCLog::LogMsg() - make timer code more homogeneous - replace division with multiplication - log if the time type is unexpected --- src/logging/timer.h | 18 +++++------------- src/test/logging_tests.cpp | 13 +++++++++---- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/logging/timer.h b/src/logging/timer.h index 647e3fa30e8..6d584084cad 100644 --- a/src/logging/timer.h +++ b/src/logging/timer.h @@ -60,21 +60,13 @@ public: if (std::is_same::value) { return strprintf("%s: %s (%iμs)", m_prefix, msg, end_time.count()); - } - - std::string units; - float divisor = 1; - - if (std::is_same::value) { - units = "ms"; - divisor = 1000.; + } else if (std::is_same::value) { + return strprintf("%s: %s (%.2fms)", m_prefix, msg, end_time.count() * 0.001); } else if (std::is_same::value) { - units = "s"; - divisor = 1000. * 1000.; + return strprintf("%s: %s (%.2fs)", m_prefix, msg, end_time.count() * 0.000001); + } else { + return "Error: unexpected time type"; } - - const float time_ms = end_time.count() / divisor; - return strprintf("%s: %s (%.2f%s)", m_prefix, msg, time_ms, units); } private: diff --git a/src/test/logging_tests.cpp b/src/test/logging_tests.cpp index e2e31c62d70..0e384f72e2a 100644 --- a/src/test/logging_tests.cpp +++ b/src/test/logging_tests.cpp @@ -15,9 +15,9 @@ BOOST_FIXTURE_TEST_SUITE(logging_tests, BasicTestingSetup) BOOST_AUTO_TEST_CASE(logging_timer) { SetMockTime(1); - auto sec_timer = BCLog::Timer("tests", "end_msg"); + auto micro_timer = BCLog::Timer("tests", "end_msg"); SetMockTime(2); - BOOST_CHECK_EQUAL(sec_timer.LogMsg("test secs"), "tests: test secs (1.00s)"); + BOOST_CHECK_EQUAL(micro_timer.LogMsg("test micros"), "tests: test micros (1000000μs)"); SetMockTime(1); auto ms_timer = BCLog::Timer("tests", "end_msg"); @@ -25,9 +25,14 @@ BOOST_AUTO_TEST_CASE(logging_timer) BOOST_CHECK_EQUAL(ms_timer.LogMsg("test ms"), "tests: test ms (1000.00ms)"); SetMockTime(1); - auto micro_timer = BCLog::Timer("tests", "end_msg"); + auto sec_timer = BCLog::Timer("tests", "end_msg"); SetMockTime(2); - BOOST_CHECK_EQUAL(micro_timer.LogMsg("test micros"), "tests: test micros (1000000μs)"); + BOOST_CHECK_EQUAL(sec_timer.LogMsg("test secs"), "tests: test secs (1.00s)"); + + SetMockTime(1); + auto minute_timer = BCLog::Timer("tests", "end_msg"); + SetMockTime(2); + BOOST_CHECK_EQUAL(minute_timer.LogMsg("test minutes"), "Error: unexpected time type"); } BOOST_AUTO_TEST_SUITE_END()