diff options
author | wangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-10 18:23:38 +0000 |
---|---|---|
committer | wangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-10 18:23:38 +0000 |
commit | 1a150551a669a94dbdc316b452721b721354bedc (patch) | |
tree | afe18b1e11656f71d8cb09f19c88ae5a88773dab /base/logging_unittest.cc | |
parent | 9d4a5601ae06d88f19522e0aca4f08f2f0c946c3 (diff) | |
download | chromium_src-1a150551a669a94dbdc316b452721b721354bedc.zip chromium_src-1a150551a669a94dbdc316b452721b721354bedc.tar.gz chromium_src-1a150551a669a94dbdc316b452721b721354bedc.tar.bz2 |
Let DCHECK in non-official-release build be opt-in with dcheck_always_on=1 only
- Remove DCHECK in non-official-release build by default
- Gyp variable dcheck_always_on=1 (existing) forces to enable DCHECK
in release build
- Remove flag --enable-dcheck
Other effects/notes:
- Now allow "buildtype=Official dcheck_always_on=1" (which will
enable DCHECK in official build) combination.
- Gyp variable logging_like_official_build no longer has an effect
- Leave DCHECK_IS_ON() unchanged. May deal with it in a later change
if needed.
This won't affect bots which use dcheck_always_on=1.
BUG=350462
TEST=LoggingTest.Dcheck
R=thakis@chromium.org
TBR=darin,sehr (command line changes in components/nacl and mojo)
Review URL: https://codereview.chromium.org/189603007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255987 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/logging_unittest.cc')
-rw-r--r-- | base/logging_unittest.cc | 42 |
1 files changed, 18 insertions, 24 deletions
diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc index 4996abc..7b98e0f 100644 --- a/base/logging_unittest.cc +++ b/base/logging_unittest.cc @@ -17,11 +17,11 @@ using ::testing::Return; // Needs to be global since log assert handlers can't maintain state. int log_sink_call_count = 0; -#if !LOGGING_IS_OFFICIAL_BUILD +#if !defined(OFFICIAL_BUILD) || defined(DCHECK_ALWAYS_ON) || !defined(NDEBUG) void LogSink(const std::string& str) { ++log_sink_call_count; } -#endif // !LOGGING_IS_OFFICIAL_BUILD +#endif // Class to make sure any manipulations we do to the min log level are // contained (i.e., do not affect other unit tests). @@ -169,7 +169,7 @@ TEST_F(LoggingTest, LoggingIsLazy) { } // Official builds have CHECKs directly call BreakDebugger. -#if !LOGGING_IS_OFFICIAL_BUILD +#if !defined(OFFICIAL_BUILD) TEST_F(LoggingTest, CheckStreamsAreLazy) { MockLogSource mock_log_source, uncalled_mock_log_source; @@ -204,40 +204,34 @@ TEST_F(LoggingTest, DebugLoggingReleaseBehavior) { TEST_F(LoggingTest, DcheckStreamsAreLazy) { MockLogSource mock_log_source; EXPECT_CALL(mock_log_source, Log()).Times(0); -#if !LOGGING_IS_OFFICIAL_BUILD && defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) - // Unofficial release build without dcheck enabled. - set_dcheck_state(DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS); - 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(); - DCHECK_EQ(mock_log_source.Log(), static_cast<const char*>(NULL)) - << mock_log_source.Log(); -#endif + if (DCHECK_IS_ON()) { + DCHECK(true) << mock_log_source.Log(); + DCHECK_EQ(0, 0) << mock_log_source.Log(); + } else { + 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(); + DCHECK_EQ(mock_log_source.Log(), static_cast<const char*>(NULL)) + << mock_log_source.Log(); + } } TEST_F(LoggingTest, Dcheck) { -#if LOGGING_IS_OFFICIAL_BUILD - // Official build. +#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) + // Release build. EXPECT_FALSE(DCHECK_IS_ON()); EXPECT_FALSE(DLOG_IS_ON(DCHECK)); -#elif defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) - // Unofficial release build. - set_dcheck_state(ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS); - SetLogReportHandler(&LogSink); - EXPECT_TRUE(DCHECK_IS_ON()); - EXPECT_FALSE(DLOG_IS_ON(DCHECK)); #elif defined(NDEBUG) && defined(DCHECK_ALWAYS_ON) - // Unofficial release build with real DCHECKS. - set_dcheck_state(ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS); + // Release build with real DCHECKS. SetLogAssertHandler(&LogSink); EXPECT_TRUE(DCHECK_IS_ON()); EXPECT_FALSE(DLOG_IS_ON(DCHECK)); #else - // Unofficial debug build. + // Debug build. SetLogAssertHandler(&LogSink); EXPECT_TRUE(DCHECK_IS_ON()); EXPECT_TRUE(DLOG_IS_ON(DCHECK)); -#endif // defined(LOGGING_IS_OFFICIAL_BUILD) +#endif EXPECT_EQ(0, log_sink_call_count); DCHECK(false); |