OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 DPLOG_IF(INFO, debug_only_variable) << "test"; | 190 DPLOG_IF(INFO, debug_only_variable) << "test"; |
191 DVLOG_IF(1, debug_only_variable) << "test"; | 191 DVLOG_IF(1, debug_only_variable) << "test"; |
192 } | 192 } |
193 | 193 |
194 TEST_F(LoggingTest, DcheckStreamsAreLazy) { | 194 TEST_F(LoggingTest, DcheckStreamsAreLazy) { |
195 MockLogSource mock_log_source; | 195 MockLogSource mock_log_source; |
196 EXPECT_CALL(mock_log_source, Log()).Times(0); | 196 EXPECT_CALL(mock_log_source, Log()).Times(0); |
197 | 197 |
198 #if !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG) | 198 #if !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG) |
199 // Unofficial release build. | 199 // Unofficial release build. |
200 logging::g_enable_dcheck = false; | 200 g_dcheck_state = DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS; |
201 DCHECK(mock_log_source.Log()) << mock_log_source.Log(); | 201 DCHECK(mock_log_source.Log()) << mock_log_source.Log(); |
202 DPCHECK(mock_log_source.Log()) << mock_log_source.Log(); | 202 DPCHECK(mock_log_source.Log()) << mock_log_source.Log(); |
203 DCHECK_EQ(0, 0) << mock_log_source.Log(); | 203 DCHECK_EQ(0, 0) << mock_log_source.Log(); |
204 DCHECK_EQ(mock_log_source.Log(), static_cast<const char*>(NULL)) | 204 DCHECK_EQ(mock_log_source.Log(), static_cast<const char*>(NULL)) |
205 << mock_log_source.Log(); | 205 << mock_log_source.Log(); |
206 #endif // !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG) | 206 #endif // !defined(LOGGING_IS_OFFICIAL_BUILD) && defined(NDEBUG) |
207 } | 207 } |
208 | 208 |
209 TEST_F(LoggingTest, Dcheck) { | 209 TEST_F(LoggingTest, Dcheck) { |
210 #if defined(LOGGING_IS_OFFICIAL_BUILD) | 210 #if defined(LOGGING_IS_OFFICIAL_BUILD) |
211 // Official build. | 211 // Official build. |
212 EXPECT_FALSE(DCHECK_IS_ON()); | 212 EXPECT_FALSE(DCHECK_IS_ON()); |
213 EXPECT_FALSE(DLOG_IS_ON(DCHECK)); | 213 EXPECT_FALSE(DLOG_IS_ON(DCHECK)); |
214 #elif defined(NDEBUG) | 214 #elif defined(NDEBUG) |
215 // Unofficial release build. | 215 // Unofficial release build. |
216 logging::g_enable_dcheck = true; | 216 g_dcheck_state = ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS; |
217 logging::SetLogReportHandler(&LogSink); | 217 SetLogReportHandler(&LogSink); |
218 EXPECT_TRUE(DCHECK_IS_ON()); | 218 EXPECT_TRUE(DCHECK_IS_ON()); |
219 EXPECT_FALSE(DLOG_IS_ON(DCHECK)); | 219 EXPECT_FALSE(DLOG_IS_ON(DCHECK)); |
220 #else | 220 #else |
221 // Unofficial debug build. | 221 // Unofficial debug build. |
222 logging::SetLogAssertHandler(&LogSink); | 222 SetLogAssertHandler(&LogSink); |
223 EXPECT_TRUE(DCHECK_IS_ON()); | 223 EXPECT_TRUE(DCHECK_IS_ON()); |
224 EXPECT_TRUE(DLOG_IS_ON(DCHECK)); | 224 EXPECT_TRUE(DLOG_IS_ON(DCHECK)); |
225 #endif // defined(LOGGING_IS_OFFICIAL_BUILD) | 225 #endif // defined(LOGGING_IS_OFFICIAL_BUILD) |
226 | 226 |
227 EXPECT_EQ(0, log_sink_call_count); | 227 EXPECT_EQ(0, log_sink_call_count); |
228 DCHECK(false); | 228 DCHECK(false); |
229 EXPECT_EQ(DCHECK_IS_ON() ? 1 : 0, log_sink_call_count); | 229 EXPECT_EQ(DCHECK_IS_ON() ? 1 : 0, log_sink_call_count); |
230 DPCHECK(false); | 230 DPCHECK(false); |
231 EXPECT_EQ(DCHECK_IS_ON() ? 2 : 0, log_sink_call_count); | 231 EXPECT_EQ(DCHECK_IS_ON() ? 2 : 0, log_sink_call_count); |
232 DCHECK_EQ(0, 1); | 232 DCHECK_EQ(0, 1); |
233 EXPECT_EQ(DCHECK_IS_ON() ? 3 : 0, log_sink_call_count); | 233 EXPECT_EQ(DCHECK_IS_ON() ? 3 : 0, log_sink_call_count); |
234 } | 234 } |
235 | 235 |
236 TEST_F(LoggingTest, DcheckReleaseBehavior) { | 236 TEST_F(LoggingTest, DcheckReleaseBehavior) { |
237 int some_variable = 1; | 237 int some_variable = 1; |
238 // These should still reference |some_variable| so we don't get | 238 // These should still reference |some_variable| so we don't get |
239 // unused variable warnings. | 239 // unused variable warnings. |
240 DCHECK(some_variable) << "test"; | 240 DCHECK(some_variable) << "test"; |
241 DPCHECK(some_variable) << "test"; | 241 DPCHECK(some_variable) << "test"; |
242 DCHECK_EQ(some_variable, 1) << "test"; | 242 DCHECK_EQ(some_variable, 1) << "test"; |
243 } | 243 } |
244 | 244 |
245 } // namespace | 245 } // namespace |
246 | 246 |
247 } // namespace logging | 247 } // namespace logging |
OLD | NEW |