mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
Make unexpected time type in BCLog::LogMsg() a compile-time error
This commit is contained in:
parent
bddae7e7ff
commit
f530202353
2 changed files with 5 additions and 10 deletions
|
@ -9,6 +9,7 @@
|
|||
#include <logging.h>
|
||||
#include <util/macros.h>
|
||||
#include <util/time.h>
|
||||
#include <util/types.h>
|
||||
|
||||
#include <chrono>
|
||||
#include <string>
|
||||
|
@ -58,14 +59,14 @@ public:
|
|||
return strprintf("%s: %s", m_prefix, msg);
|
||||
}
|
||||
|
||||
if (std::is_same<TimeType, std::chrono::microseconds>::value) {
|
||||
if constexpr (std::is_same<TimeType, std::chrono::microseconds>::value) {
|
||||
return strprintf("%s: %s (%iμs)", m_prefix, msg, end_time.count());
|
||||
} else if (std::is_same<TimeType, std::chrono::milliseconds>::value) {
|
||||
} else if constexpr (std::is_same<TimeType, std::chrono::milliseconds>::value) {
|
||||
return strprintf("%s: %s (%.2fms)", m_prefix, msg, end_time.count() * 0.001);
|
||||
} else if (std::is_same<TimeType, std::chrono::seconds>::value) {
|
||||
} else if constexpr (std::is_same<TimeType, std::chrono::seconds>::value) {
|
||||
return strprintf("%s: %s (%.2fs)", m_prefix, msg, end_time.count() * 0.000001);
|
||||
} else {
|
||||
return "Error: unexpected time type";
|
||||
static_assert(ALWAYS_FALSE<TimeType>, "Error: unexpected time type");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -81,7 +82,6 @@ private:
|
|||
//! Forwarded on to LogPrint if specified - has the effect of only
|
||||
//! outputting the timing log when a particular debug= category is specified.
|
||||
const BCLog::LogFlags m_log_category{};
|
||||
|
||||
};
|
||||
|
||||
} // namespace BCLog
|
||||
|
|
|
@ -28,11 +28,6 @@ BOOST_AUTO_TEST_CASE(logging_timer)
|
|||
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)");
|
||||
|
||||
SetMockTime(1);
|
||||
auto minute_timer = BCLog::Timer<std::chrono::minutes>("tests", "end_msg");
|
||||
SetMockTime(2);
|
||||
BOOST_CHECK_EQUAL(minute_timer.LogMsg("test minutes"), "Error: unexpected time type");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
|
Loading…
Add table
Reference in a new issue