From c3e5d3422b890eb0a33361dc03784c17f8956128 Mon Sep 17 00:00:00 2001 From: "andrew@webrtc.org" Date: Fri, 23 Nov 2012 19:30:59 +0000 Subject: [PATCH] Add a logging_no_op.cc when enable_tracing==0. This should hopefully fix static initializer warnings when rolling webrtc in Chromium. TEST=logging_unittest succeeds with enable_tracing==1 and fails appropriately with enable_tracing==0. Review URL: https://webrtc-codereview.appspot.com/939026 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3159 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/build/common.gypi | 3 +++ webrtc/system_wrappers/interface/logging.h | 22 +++------------- webrtc/system_wrappers/source/logging.cc | 25 +++++++++++-------- .../system_wrappers/source/logging_no_op.cc | 23 +++++++++++++++++ .../source/logging_unittest.cc | 4 +-- .../source/system_wrappers.gyp | 3 +++ 6 files changed, 49 insertions(+), 31 deletions(-) create mode 100644 webrtc/system_wrappers/source/logging_no_op.cc diff --git a/webrtc/build/common.gypi b/webrtc/build/common.gypi index dca62eae6d..0049d13b9f 100644 --- a/webrtc/build/common.gypi +++ b/webrtc/build/common.gypi @@ -139,6 +139,9 @@ #'WEBRTC_SVNREVISION=" -#include +#include #include "webrtc/common_types.h" #include "webrtc/system_wrappers/interface/trace.h" namespace webrtc { +namespace { -static TraceLevel WebRtcSeverity(LoggingSeverity sev) { +TraceLevel WebRtcSeverity(LoggingSeverity sev) { switch (sev) { // TODO(andrew): SENSITIVE doesn't have a corresponding webrtc level. case LS_SENSITIVE: return kTraceInfo; @@ -30,6 +31,17 @@ static TraceLevel WebRtcSeverity(LoggingSeverity sev) { } } +const char* DescribeFile(const char* file) { + const char* end1 = ::strrchr(file, '/'); + const char* end2 = ::strrchr(file, '\\'); + if (!end1 && !end2) + return file; + else + return (end1 > end2) ? end1 + 1 : end2 + 1; +} + +} // namespace + LogMessage::LogMessage(const char* file, int line, LoggingSeverity sev) : severity_(sev) { print_stream_ << "(" << DescribeFile(file) << ":" << line << "): "; @@ -40,13 +52,4 @@ LogMessage::~LogMessage() { WEBRTC_TRACE(WebRtcSeverity(severity_), kTraceUndefined, 0, str.c_str()); } -const char* LogMessage::DescribeFile(const char* file) { - const char* end1 = ::strrchr(file, '/'); - const char* end2 = ::strrchr(file, '\\'); - if (!end1 && !end2) - return file; - else - return (end1 > end2) ? end1 + 1 : end2 + 1; -} - } // namespace webrtc diff --git a/webrtc/system_wrappers/source/logging_no_op.cc b/webrtc/system_wrappers/source/logging_no_op.cc new file mode 100644 index 0000000000..be0f799bde --- /dev/null +++ b/webrtc/system_wrappers/source/logging_no_op.cc @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "webrtc/system_wrappers/interface/logging.h" + +namespace webrtc { + +LogMessage::LogMessage(const char*, int, LoggingSeverity) { + // Avoid an unused-private-field warning. + (void)severity_; +} + +LogMessage::~LogMessage() { +} + +} // namespace webrtc diff --git a/webrtc/system_wrappers/source/logging_unittest.cc b/webrtc/system_wrappers/source/logging_unittest.cc index 6f36aba204..8d8a580f78 100644 --- a/webrtc/system_wrappers/source/logging_unittest.cc +++ b/webrtc/system_wrappers/source/logging_unittest.cc @@ -73,7 +73,7 @@ TEST_F(LoggingTest, LogStream) { std::string msg = "Important message"; expected_log_ << "(logging_unittest.cc:" << __LINE__ + 1 << "): " << msg; LOG(LS_WARNING) << msg; - cv_->SleepCS(*crit_.get()); + cv_->SleepCS(*crit_.get(), 2000); } } @@ -86,7 +86,7 @@ TEST_F(LoggingTest, LogFunctionError) { expected_log_ << "(logging_unittest.cc:" << __LINE__ + 2 << "): Foo failed: bar=" << bar << ", baz=" << baz; LOG_FERR2(LS_ERROR, Foo, bar, baz); - cv_->SleepCS(*crit_.get()); + cv_->SleepCS(*crit_.get(), 2000); } } diff --git a/webrtc/system_wrappers/source/system_wrappers.gyp b/webrtc/system_wrappers/source/system_wrappers.gyp index 0a29d0e558..4ce148bada 100644 --- a/webrtc/system_wrappers/source/system_wrappers.gyp +++ b/webrtc/system_wrappers/source/system_wrappers.gyp @@ -85,6 +85,7 @@ 'file_impl.h', 'list_no_stl.cc', 'logging.cc', + 'logging_no_op.cc', 'map.cc', 'rw_lock.cc', 'rw_lock_generic.cc', @@ -118,10 +119,12 @@ },], ['enable_tracing==1', { 'sources!': [ + 'logging_no_op.cc', 'trace_impl_no_op.cc', ], }, { 'sources!': [ + 'logging.cc', 'trace_impl.cc', 'trace_impl.h', 'trace_posix.cc',