summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-10 19:59:52 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-10 19:59:52 +0000
commit941635a75dae04279729e9f6ca6d553c912da3d6 (patch)
tree2d79a154c35bc9bc31693a7017a8591cf524dcb5 /base
parentddcbb213c0fd94f07428c14fd29513b13b9fe1f9 (diff)
downloadchromium_src-941635a75dae04279729e9f6ca6d553c912da3d6.zip
chromium_src-941635a75dae04279729e9f6ca6d553c912da3d6.tar.gz
chromium_src-941635a75dae04279729e9f6ca6d553c912da3d6.tar.bz2
Revert 70920 - Made logging not look up --enable-dcheck from command line
Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70782 Review URL: http://codereview.chromium.org/6070006 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/6099012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70923 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r--base/logging.cc8
-rw-r--r--base/logging.h23
-rw-r--r--base/logging_unittest.cc8
-rw-r--r--base/test/test_suite.cc10
4 files changed, 19 insertions, 30 deletions
diff --git a/base/logging.cc b/base/logging.cc
index bdce7b3..cfb1065 100644
--- a/base/logging.cc
+++ b/base/logging.cc
@@ -64,7 +64,7 @@ typedef pthread_mutex_t* MutexHandle;
namespace logging {
-DcheckState g_dcheck_state = DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS;
+bool g_enable_dcheck = false;
VlogInfo* g_vlog_info = NULL;
const char* const log_severity_names[LOG_NUM_SEVERITIES] = {
@@ -353,10 +353,10 @@ bool InitializeLogFileHandle() {
bool BaseInitLoggingImpl(const PathChar* new_log_file,
LoggingDestination logging_dest,
LogLockingState lock_log,
- OldFileDeletionState delete_old,
- DcheckState dcheck_state) {
+ OldFileDeletionState delete_old) {
CommandLine* command_line = CommandLine::ForCurrentProcess();
- g_dcheck_state = dcheck_state;
+ g_enable_dcheck =
+ command_line->HasSwitch(switches::kEnableDCHECK);
delete g_vlog_info;
g_vlog_info = NULL;
// Don't bother initializing g_vlog_info unless we use one of the
diff --git a/base/logging.h b/base/logging.h
index 662deae..a097568 100644
--- a/base/logging.h
+++ b/base/logging.h
@@ -165,11 +165,6 @@ enum LogLockingState { LOCK_LOG_FILE, DONT_LOCK_LOG_FILE };
// Defaults to APPEND_TO_OLD_LOG_FILE.
enum OldFileDeletionState { DELETE_OLD_LOG_FILE, APPEND_TO_OLD_LOG_FILE };
-enum DcheckState {
- DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS,
- ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS
-};
-
// TODO(avi): do we want to do a unification of character types here?
#if defined(OS_WIN)
typedef wchar_t PathChar;
@@ -193,8 +188,7 @@ typedef char PathChar;
bool BaseInitLoggingImpl(const PathChar* log_file,
LoggingDestination logging_dest,
LogLockingState lock_log,
- OldFileDeletionState delete_old,
- DcheckState dcheck_state);
+ OldFileDeletionState delete_old);
// Sets the log file name and other global logging state. Calling this function
// is recommended, and is normally done at the beginning of application init.
@@ -209,10 +203,8 @@ bool BaseInitLoggingImpl(const PathChar* log_file,
inline bool InitLogging(const PathChar* log_file,
LoggingDestination logging_dest,
LogLockingState lock_log,
- OldFileDeletionState delete_old,
- DcheckState dcheck_state) {
- return BaseInitLoggingImpl(log_file, logging_dest, lock_log,
- delete_old, dcheck_state);
+ OldFileDeletionState delete_old) {
+ return BaseInitLoggingImpl(log_file, logging_dest, lock_log, delete_old);
}
// Sets the log level. Anything at or above this level will be written to the
@@ -608,11 +600,10 @@ enum { DEBUG_MODE = ENABLE_DLOG };
COMPACT_GOOGLE_LOG_EX_ERROR_REPORT(ClassName , ##__VA_ARGS__)
#define COMPACT_GOOGLE_LOG_DCHECK COMPACT_GOOGLE_LOG_ERROR_REPORT
const LogSeverity LOG_DCHECK = LOG_ERROR_REPORT;
-extern DcheckState g_dcheck_state;
-#define DCHECK_IS_ON() \
- ((::logging::g_dcheck_state == \
- ::logging::ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS) && \
- LOG_IS_ON(DCHECK))
+// This is set to true in InitLogging when we want to enable the
+// DCHECKs in release.
+extern bool g_enable_dcheck;
+#define DCHECK_IS_ON() (::logging::g_enable_dcheck && LOG_IS_ON(DCHECK))
#else // defined(NDEBUG)
diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc
index bb6e3d1..4b7fdbc 100644
--- a/base/logging_unittest.cc
+++ b/base/logging_unittest.cc
@@ -197,7 +197,7 @@ TEST_F(LoggingTest, DcheckStreamsAreLazy) {
#if !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG)
// Unofficial release build.
- g_dcheck_state = DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS;
+ logging::g_enable_dcheck = false;
DCHECK(mock_log_source.Log()) << mock_log_source.Log();
DPCHECK(mock_log_source.Log()) << mock_log_source.Log();
DCHECK_EQ(0, 0) << mock_log_source.Log();
@@ -213,13 +213,13 @@ TEST_F(LoggingTest, Dcheck) {
EXPECT_FALSE(DLOG_IS_ON(DCHECK));
#elif defined(NDEBUG)
// Unofficial release build.
- g_dcheck_state = ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS;
- SetLogReportHandler(&LogSink);
+ logging::g_enable_dcheck = true;
+ logging::SetLogReportHandler(&LogSink);
EXPECT_TRUE(DCHECK_IS_ON());
EXPECT_FALSE(DLOG_IS_ON(DCHECK));
#else
// Unofficial debug build.
- SetLogAssertHandler(&LogSink);
+ logging::SetLogAssertHandler(&LogSink);
EXPECT_TRUE(DCHECK_IS_ON());
EXPECT_TRUE(DLOG_IS_ON(DCHECK));
#endif // defined(LOGGING_IS_OFFICIAL_BUILD)
diff --git a/base/test/test_suite.cc b/base/test/test_suite.cc
index 5f8a616..aa23f04 100644
--- a/base/test/test_suite.cc
+++ b/base/test/test_suite.cc
@@ -175,12 +175,10 @@ void TestSuite::Initialize() {
FilePath exe;
PathService::Get(base::FILE_EXE, &exe);
FilePath log_filename = exe.ReplaceExtension(FILE_PATH_LITERAL("log"));
- logging::InitLogging(
- log_filename.value().c_str(),
- logging::LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG,
- logging::LOCK_LOG_FILE,
- logging::DELETE_OLD_LOG_FILE,
- logging::DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS);
+ logging::InitLogging(log_filename.value().c_str(),
+ logging::LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG,
+ logging::LOCK_LOG_FILE,
+ logging::DELETE_OLD_LOG_FILE);
// We want process and thread IDs because we may have multiple processes.
// Note: temporarily enabled timestamps in an effort to catch bug 6361.
logging::SetLogItems(true, true, true, true);