Allow logging of char* null pointer.
Bug: chromium:927027 Change-Id: I220c11b1b2dd2921c814a361009d008e74245af3 Reviewed-on: https://webrtc-review.googlesource.com/c/121426 Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26557}
This commit is contained in:
@ -531,9 +531,11 @@ void Log(const LogArgType* fmt, ...) {
|
||||
case LogArgType::kLongDouble:
|
||||
log_message.stream() << va_arg(args, long double);
|
||||
break;
|
||||
case LogArgType::kCharP:
|
||||
log_message.stream() << va_arg(args, const char*);
|
||||
case LogArgType::kCharP: {
|
||||
const char* s = va_arg(args, const char*);
|
||||
log_message.stream() << (s ? s : "(null)");
|
||||
break;
|
||||
}
|
||||
case LogArgType::kStdString:
|
||||
log_message.stream() << *va_arg(args, const std::string*);
|
||||
break;
|
||||
|
@ -162,13 +162,14 @@ TEST(LogTest, SingleStream) {
|
||||
std::string s1 = "char*";
|
||||
std::string s2 = "std::string";
|
||||
std::string s3 = "absl::stringview";
|
||||
|
||||
const char* null_string = nullptr;
|
||||
void* p = reinterpret_cast<void*>(0xabcd);
|
||||
|
||||
// Log all suported types(except doubles/floats) as a sanity-check.
|
||||
RTC_LOG(LS_INFO) << "|" << i << "|" << l << "|" << ll << "|" << u << "|" << ul
|
||||
<< "|" << ull << "|" << s1.c_str() << "|" << s2 << "|"
|
||||
<< absl::string_view(s3) << "|" << p << "|";
|
||||
<< absl::string_view(s3) << "|" << p << "|" << null_string
|
||||
<< "|";
|
||||
|
||||
// Signed integers
|
||||
EXPECT_NE(std::string::npos, str.find("|1|"));
|
||||
@ -188,6 +189,9 @@ TEST(LogTest, SingleStream) {
|
||||
// void*
|
||||
EXPECT_NE(std::string::npos, str.find("|abcd|"));
|
||||
|
||||
// null char*
|
||||
EXPECT_NE(std::string::npos, str.find("|(null)|"));
|
||||
|
||||
LogMessage::RemoveLogToStream(&stream);
|
||||
EXPECT_EQ(LS_NONE, LogMessage::GetLogToStream(&stream));
|
||||
EXPECT_EQ(sev, LogMessage::GetLogToStream(nullptr));
|
||||
|
Reference in New Issue
Block a user