| Index: base/logging_unittest.cc
|
| diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc
|
| index e03c45ec179c8ad008d73e001ba143b2e6039932..4b7fdbcd46ad5db4cb640b55bbb96e25c2aa32bb 100644
|
| --- a/base/logging_unittest.cc
|
| +++ b/base/logging_unittest.cc
|
| @@ -80,6 +80,64 @@ TEST_F(LoggingTest, BasicLogging) {
|
| DVLOG_IF(0, true) << mock_log_source.Log();
|
| }
|
|
|
| +TEST_F(LoggingTest, LogIsOn) {
|
| +#if defined(NDEBUG)
|
| + const bool kDfatalIsFatal = false;
|
| +#else // defined(NDEBUG)
|
| + const bool kDfatalIsFatal = true;
|
| +#endif // defined(NDEBUG)
|
| +
|
| + SetMinLogLevel(LOG_INFO);
|
| + EXPECT_TRUE(LOG_IS_ON(INFO));
|
| + EXPECT_TRUE(LOG_IS_ON(WARNING));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR_REPORT));
|
| + EXPECT_TRUE(LOG_IS_ON(FATAL));
|
| + EXPECT_TRUE(LOG_IS_ON(DFATAL));
|
| +
|
| + SetMinLogLevel(LOG_WARNING);
|
| + EXPECT_FALSE(LOG_IS_ON(INFO));
|
| + EXPECT_TRUE(LOG_IS_ON(WARNING));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR_REPORT));
|
| + EXPECT_TRUE(LOG_IS_ON(FATAL));
|
| + EXPECT_TRUE(LOG_IS_ON(DFATAL));
|
| +
|
| + SetMinLogLevel(LOG_ERROR);
|
| + EXPECT_FALSE(LOG_IS_ON(INFO));
|
| + EXPECT_FALSE(LOG_IS_ON(WARNING));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR_REPORT));
|
| + EXPECT_TRUE(LOG_IS_ON(FATAL));
|
| + EXPECT_TRUE(LOG_IS_ON(DFATAL));
|
| +
|
| + SetMinLogLevel(LOG_ERROR_REPORT);
|
| + EXPECT_FALSE(LOG_IS_ON(INFO));
|
| + EXPECT_FALSE(LOG_IS_ON(WARNING));
|
| + EXPECT_FALSE(LOG_IS_ON(ERROR));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR_REPORT));
|
| + EXPECT_TRUE(LOG_IS_ON(FATAL));
|
| + EXPECT_EQ(kDfatalIsFatal, LOG_IS_ON(DFATAL));
|
| +
|
| + // LOG_IS_ON(ERROR_REPORT) should always be true.
|
| + SetMinLogLevel(LOG_FATAL);
|
| + EXPECT_FALSE(LOG_IS_ON(INFO));
|
| + EXPECT_FALSE(LOG_IS_ON(WARNING));
|
| + EXPECT_FALSE(LOG_IS_ON(ERROR));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR_REPORT));
|
| + EXPECT_TRUE(LOG_IS_ON(FATAL));
|
| + EXPECT_EQ(kDfatalIsFatal, LOG_IS_ON(DFATAL));
|
| +
|
| + // So should LOG_IS_ON(FATAL).
|
| + SetMinLogLevel(LOG_FATAL + 1);
|
| + EXPECT_FALSE(LOG_IS_ON(INFO));
|
| + EXPECT_FALSE(LOG_IS_ON(WARNING));
|
| + EXPECT_FALSE(LOG_IS_ON(ERROR));
|
| + EXPECT_TRUE(LOG_IS_ON(ERROR_REPORT));
|
| + EXPECT_TRUE(LOG_IS_ON(FATAL));
|
| + EXPECT_EQ(kDfatalIsFatal, LOG_IS_ON(DFATAL));
|
| +}
|
| +
|
| TEST_F(LoggingTest, LoggingIsLazy) {
|
| MockLogSource mock_log_source;
|
| EXPECT_CALL(mock_log_source, Log()).Times(0);
|
| @@ -105,14 +163,13 @@ TEST_F(LoggingTest, LoggingIsLazy) {
|
| DVLOG_IF(1, true) << mock_log_source.Log();
|
| }
|
|
|
| -TEST_F(LoggingTest, ChecksAreNotLazy) {
|
| +TEST_F(LoggingTest, CheckStreamsAreLazy) {
|
| MockLogSource mock_log_source, uncalled_mock_log_source;
|
| EXPECT_CALL(mock_log_source, Log()).Times(8).
|
| WillRepeatedly(Return("check message"));
|
| EXPECT_CALL(uncalled_mock_log_source, Log()).Times(0);
|
|
|
| - SetMinLogLevel(LOG_FATAL + 1);
|
| - EXPECT_FALSE(LOG_IS_ON(FATAL));
|
| + SetLogAssertHandler(&LogSink);
|
|
|
| CHECK(mock_log_source.Log()) << uncalled_mock_log_source.Log();
|
| PCHECK(!mock_log_source.Log()) << mock_log_source.Log();
|
| @@ -134,22 +191,19 @@ TEST_F(LoggingTest, DebugLoggingReleaseBehavior) {
|
| DVLOG_IF(1, debug_only_variable) << "test";
|
| }
|
|
|
| -TEST_F(LoggingTest, DchecksAreLazy) {
|
| +TEST_F(LoggingTest, DcheckStreamsAreLazy) {
|
| MockLogSource mock_log_source;
|
| EXPECT_CALL(mock_log_source, Log()).Times(0);
|
|
|
| #if !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG)
|
| // Unofficial release build.
|
| logging::g_enable_dcheck = false;
|
| -#else // !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG)
|
| - SetMinLogLevel(LOG_FATAL + 1);
|
| - EXPECT_FALSE(LOG_IS_ON(FATAL));
|
| -#endif // !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG)
|
| 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 // !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG)
|
| }
|
|
|
| TEST_F(LoggingTest, Dcheck) {
|
|
|