Fix logging MakeVal template
Types with ToLogString implemented were not being recognized correctly.
Now types like TimeDelta and Timestamp can be logged as normal.
Change-Id: Ia15f90bdd1d63a39f7452f9b4bba178d01b74352
Bug: webrtc:13995
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259863
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36646}
diff --git a/rtc_base/logging_unittest.cc b/rtc_base/logging_unittest.cc
index cd8d753..c267778 100644
--- a/rtc_base/logging_unittest.cc
+++ b/rtc_base/logging_unittest.cc
@@ -22,6 +22,7 @@
#include "rtc_base/event.h"
#include "rtc_base/platform_thread.h"
#include "rtc_base/time_utils.h"
+#include "test/gmock.h"
#include "test/gtest.h"
namespace rtc {
@@ -299,5 +300,20 @@
EXPECT_FALSE(was_called);
}
+struct TestStruct {};
+std::string ToLogString(TestStruct foo) {
+ return "bar";
+}
+
+TEST(LogTest, ToLogStringUsedForUnknownTypes) {
+ std::string str;
+ LogSinkImpl stream(&str);
+ LogMessage::AddLogToStream(&stream, LS_INFO);
+ TestStruct t;
+ RTC_LOG(LS_INFO) << t;
+ EXPECT_THAT(str, ::testing::HasSubstr("bar"));
+ LogMessage::RemoveLogToStream(&stream);
+}
+
} // namespace rtc
#endif // RTC_LOG_ENABLED()