summaryrefslogtreecommitdiffstats
path: root/base/logging_unittest.cc
diff options
context:
space:
mode:
authorwangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-10 18:23:38 +0000
committerwangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-10 18:23:38 +0000
commit1a150551a669a94dbdc316b452721b721354bedc (patch)
treeafe18b1e11656f71d8cb09f19c88ae5a88773dab /base/logging_unittest.cc
parent9d4a5601ae06d88f19522e0aca4f08f2f0c946c3 (diff)
downloadchromium_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.cc42
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);