| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/logging.h" | 6 #include "base/logging.h" |
| 7 | 7 |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 LogStateSaver log_state_saver_; | 47 LogStateSaver log_state_saver_; |
| 48 }; | 48 }; |
| 49 | 49 |
| 50 class MockLogSource { | 50 class MockLogSource { |
| 51 public: | 51 public: |
| 52 MOCK_METHOD0(Log, const char*()); | 52 MOCK_METHOD0(Log, const char*()); |
| 53 }; | 53 }; |
| 54 | 54 |
| 55 TEST_F(LoggingTest, BasicLogging) { | 55 TEST_F(LoggingTest, BasicLogging) { |
| 56 MockLogSource mock_log_source; | 56 MockLogSource mock_log_source; |
| 57 const int kExpectedDebugOrReleaseCalls = 6; | 57 EXPECT_CALL(mock_log_source, Log()).Times(DEBUG_MODE ? 16 : 8). |
| 58 const int kExpectedDebugCalls = 6; | |
| 59 const int kExpectedCalls = | |
| 60 kExpectedDebugOrReleaseCalls + (DEBUG_MODE ? kExpectedDebugCalls : 0); | |
| 61 EXPECT_CALL(mock_log_source, Log()).Times(kExpectedCalls). | |
| 62 WillRepeatedly(Return("log message")); | 58 WillRepeatedly(Return("log message")); |
| 63 | 59 |
| 64 SetMinLogLevel(LOG_INFO); | 60 SetMinLogLevel(LOG_INFO); |
| 65 | 61 |
| 66 EXPECT_TRUE(LOG_IS_ON(INFO)); | 62 EXPECT_TRUE(LOG_IS_ON(INFO)); |
| 67 // As of g++-4.5, the first argument to EXPECT_EQ cannot be a | 63 // As of g++-4.5, the first argument to EXPECT_EQ cannot be a |
| 68 // constant expression. | 64 // constant expression. |
| 69 const bool kIsDebugMode = (DEBUG_MODE != 0); | 65 const bool kIsDebugMode = (DEBUG_MODE != 0); |
| 70 EXPECT_TRUE(kIsDebugMode == DLOG_IS_ON(INFO)); | 66 EXPECT_TRUE(kIsDebugMode == DLOG_IS_ON(INFO)); |
| 71 EXPECT_TRUE(VLOG_IS_ON(0)); | 67 EXPECT_TRUE(VLOG_IS_ON(0)); |
| 72 | 68 |
| 73 LOG(INFO) << mock_log_source.Log(); | 69 LOG(INFO) << mock_log_source.Log(); |
| 74 LOG_IF(INFO, true) << mock_log_source.Log(); | 70 LOG_IF(INFO, true) << mock_log_source.Log(); |
| 75 PLOG(INFO) << mock_log_source.Log(); | 71 PLOG(INFO) << mock_log_source.Log(); |
| 76 PLOG_IF(INFO, true) << mock_log_source.Log(); | 72 PLOG_IF(INFO, true) << mock_log_source.Log(); |
| 77 VLOG(0) << mock_log_source.Log(); | 73 VLOG(0) << mock_log_source.Log(); |
| 78 VLOG_IF(0, true) << mock_log_source.Log(); | 74 VLOG_IF(0, true) << mock_log_source.Log(); |
| 75 VPLOG(0) << mock_log_source.Log(); |
| 76 VPLOG_IF(0, true) << mock_log_source.Log(); |
| 79 | 77 |
| 80 DLOG(INFO) << mock_log_source.Log(); | 78 DLOG(INFO) << mock_log_source.Log(); |
| 81 DLOG_IF(INFO, true) << mock_log_source.Log(); | 79 DLOG_IF(INFO, true) << mock_log_source.Log(); |
| 82 DPLOG(INFO) << mock_log_source.Log(); | 80 DPLOG(INFO) << mock_log_source.Log(); |
| 83 DPLOG_IF(INFO, true) << mock_log_source.Log(); | 81 DPLOG_IF(INFO, true) << mock_log_source.Log(); |
| 84 DVLOG(0) << mock_log_source.Log(); | 82 DVLOG(0) << mock_log_source.Log(); |
| 85 DVLOG_IF(0, true) << mock_log_source.Log(); | 83 DVLOG_IF(0, true) << mock_log_source.Log(); |
| 84 DVPLOG(0) << mock_log_source.Log(); |
| 85 DVPLOG_IF(0, true) << mock_log_source.Log(); |
| 86 } | 86 } |
| 87 | 87 |
| 88 TEST_F(LoggingTest, LogIsOn) { | 88 TEST_F(LoggingTest, LogIsOn) { |
| 89 #if defined(NDEBUG) | 89 #if defined(NDEBUG) |
| 90 const bool kDfatalIsFatal = false; | 90 const bool kDfatalIsFatal = false; |
| 91 #else // defined(NDEBUG) | 91 #else // defined(NDEBUG) |
| 92 const bool kDfatalIsFatal = true; | 92 const bool kDfatalIsFatal = true; |
| 93 #endif // defined(NDEBUG) | 93 #endif // defined(NDEBUG) |
| 94 | 94 |
| 95 SetMinLogLevel(LOG_INFO); | 95 SetMinLogLevel(LOG_INFO); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 EXPECT_FALSE(LOG_IS_ON(INFO)); | 152 EXPECT_FALSE(LOG_IS_ON(INFO)); |
| 153 EXPECT_FALSE(DLOG_IS_ON(INFO)); | 153 EXPECT_FALSE(DLOG_IS_ON(INFO)); |
| 154 EXPECT_FALSE(VLOG_IS_ON(1)); | 154 EXPECT_FALSE(VLOG_IS_ON(1)); |
| 155 | 155 |
| 156 LOG(INFO) << mock_log_source.Log(); | 156 LOG(INFO) << mock_log_source.Log(); |
| 157 LOG_IF(INFO, false) << mock_log_source.Log(); | 157 LOG_IF(INFO, false) << mock_log_source.Log(); |
| 158 PLOG(INFO) << mock_log_source.Log(); | 158 PLOG(INFO) << mock_log_source.Log(); |
| 159 PLOG_IF(INFO, false) << mock_log_source.Log(); | 159 PLOG_IF(INFO, false) << mock_log_source.Log(); |
| 160 VLOG(1) << mock_log_source.Log(); | 160 VLOG(1) << mock_log_source.Log(); |
| 161 VLOG_IF(1, true) << mock_log_source.Log(); | 161 VLOG_IF(1, true) << mock_log_source.Log(); |
| 162 VPLOG(1) << mock_log_source.Log(); |
| 163 VPLOG_IF(1, true) << mock_log_source.Log(); |
| 162 | 164 |
| 163 DLOG(INFO) << mock_log_source.Log(); | 165 DLOG(INFO) << mock_log_source.Log(); |
| 164 DLOG_IF(INFO, true) << mock_log_source.Log(); | 166 DLOG_IF(INFO, true) << mock_log_source.Log(); |
| 165 DPLOG(INFO) << mock_log_source.Log(); | 167 DPLOG(INFO) << mock_log_source.Log(); |
| 166 DPLOG_IF(INFO, true) << mock_log_source.Log(); | 168 DPLOG_IF(INFO, true) << mock_log_source.Log(); |
| 167 DVLOG(1) << mock_log_source.Log(); | 169 DVLOG(1) << mock_log_source.Log(); |
| 168 DVLOG_IF(1, true) << mock_log_source.Log(); | 170 DVLOG_IF(1, true) << mock_log_source.Log(); |
| 171 DVPLOG(1) << mock_log_source.Log(); |
| 172 DVPLOG_IF(1, true) << mock_log_source.Log(); |
| 169 } | 173 } |
| 170 | 174 |
| 171 // Official builds have CHECKs directly call BreakDebugger. | 175 // Official builds have CHECKs directly call BreakDebugger. |
| 172 #if !defined(OFFICIAL_BUILD) | 176 #if !defined(OFFICIAL_BUILD) |
| 173 | 177 |
| 174 TEST_F(LoggingTest, CheckStreamsAreLazy) { | 178 TEST_F(LoggingTest, CheckStreamsAreLazy) { |
| 175 MockLogSource mock_log_source, uncalled_mock_log_source; | 179 MockLogSource mock_log_source, uncalled_mock_log_source; |
| 176 EXPECT_CALL(mock_log_source, Log()).Times(8). | 180 EXPECT_CALL(mock_log_source, Log()).Times(8). |
| 177 WillRepeatedly(Return("check message")); | 181 WillRepeatedly(Return("check message")); |
| 178 EXPECT_CALL(uncalled_mock_log_source, Log()).Times(0); | 182 EXPECT_CALL(uncalled_mock_log_source, Log()).Times(0); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 // These should still reference |some_variable| so we don't get | 251 // These should still reference |some_variable| so we don't get |
| 248 // unused variable warnings. | 252 // unused variable warnings. |
| 249 DCHECK(some_variable) << "test"; | 253 DCHECK(some_variable) << "test"; |
| 250 DPCHECK(some_variable) << "test"; | 254 DPCHECK(some_variable) << "test"; |
| 251 DCHECK_EQ(some_variable, 1) << "test"; | 255 DCHECK_EQ(some_variable, 1) << "test"; |
| 252 } | 256 } |
| 253 | 257 |
| 254 } // namespace | 258 } // namespace |
| 255 | 259 |
| 256 } // namespace logging | 260 } // namespace logging |
| OLD | NEW |