Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: base/logging_unittest.cc

Issue 2638763004: Report CHECK/DCHECK to test launcher summary output. (Closed)
Patch Set: Fix logging unittest. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | base/test/gtest_xml_unittest_result_printer.h » ('j') | base/test/test_suite.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/compiler_specific.h" 5 #include "base/compiler_specific.h"
6 #include "base/logging.h" 6 #include "base/logging.h"
7 #include "base/macros.h" 7 #include "base/macros.h"
8 8
9 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 class LoggingTest : public testing::Test { 45 class LoggingTest : public testing::Test {
46 private: 46 private:
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 // Message handler used by test launcher to debug CHECK/DCHECK.
56 // This object will temporary disable message handler for test.
dcheng 2017/01/20 08:26:23 Nit: Scoper object to temporarily clear any log me
alex-ac 2017/01/20 12:11:16 Done.
57 class MockLogMessageHandler {
58 public:
59 MockLogMessageHandler() : saved_handler_(GetLogMessageHandler()) {
60 SetLogMessageHandler(nullptr);
61 }
62
63 ~MockLogMessageHandler() { SetLogMessageHandler(saved_handler_); }
64
65 private:
66 LogMessageHandlerFunction saved_handler_;
67 };
68
55 TEST_F(LoggingTest, BasicLogging) { 69 TEST_F(LoggingTest, BasicLogging) {
56 MockLogSource mock_log_source; 70 MockLogSource mock_log_source;
57 EXPECT_CALL(mock_log_source, Log()).Times(DEBUG_MODE ? 16 : 8). 71 EXPECT_CALL(mock_log_source, Log()).Times(DEBUG_MODE ? 16 : 8).
58 WillRepeatedly(Return("log message")); 72 WillRepeatedly(Return("log message"));
59 73
60 SetMinLogLevel(LOG_INFO); 74 SetMinLogLevel(LOG_INFO);
61 75
62 EXPECT_TRUE(LOG_IS_ON(INFO)); 76 EXPECT_TRUE(LOG_IS_ON(INFO));
63 // As of g++-4.5, the first argument to EXPECT_EQ cannot be a 77 // As of g++-4.5, the first argument to EXPECT_EQ cannot be a
64 // constant expression. 78 // constant expression.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 DLOG_IF(INFO, true) << mock_log_source.Log(); 159 DLOG_IF(INFO, true) << mock_log_source.Log();
146 DPLOG(INFO) << mock_log_source.Log(); 160 DPLOG(INFO) << mock_log_source.Log();
147 DPLOG_IF(INFO, true) << mock_log_source.Log(); 161 DPLOG_IF(INFO, true) << mock_log_source.Log();
148 DVLOG(1) << mock_log_source.Log(); 162 DVLOG(1) << mock_log_source.Log();
149 DVLOG_IF(1, true) << mock_log_source.Log(); 163 DVLOG_IF(1, true) << mock_log_source.Log();
150 DVPLOG(1) << mock_log_source.Log(); 164 DVPLOG(1) << mock_log_source.Log();
151 DVPLOG_IF(1, true) << mock_log_source.Log(); 165 DVPLOG_IF(1, true) << mock_log_source.Log();
152 } 166 }
153 167
154 TEST_F(LoggingTest, LoggingIsLazyByDestination) { 168 TEST_F(LoggingTest, LoggingIsLazyByDestination) {
169 MockLogMessageHandler mock_handler;
155 MockLogSource mock_log_source; 170 MockLogSource mock_log_source;
156 MockLogSource mock_log_source_error; 171 MockLogSource mock_log_source_error;
157 EXPECT_CALL(mock_log_source, Log()).Times(0); 172 EXPECT_CALL(mock_log_source, Log()).Times(0);
158 173
159 // Severity >= ERROR is always printed to stderr. 174 // Severity >= ERROR is always printed to stderr.
160 EXPECT_CALL(mock_log_source_error, Log()).Times(1). 175 EXPECT_CALL(mock_log_source_error, Log()).Times(1).
161 WillRepeatedly(Return("log message")); 176 WillRepeatedly(Return("log message"));
162 177
163 LoggingSettings settings; 178 LoggingSettings settings;
164 settings.logging_dest = LOG_NONE; 179 settings.logging_dest = LOG_NONE;
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 std::wstring wstr = L"Hello World"; 356 std::wstring wstr = L"Hello World";
342 std::ostringstream ostr; 357 std::ostringstream ostr;
343 ostr << wstr; 358 ostr << wstr;
344 EXPECT_EQ("Hello World", ostr.str()); 359 EXPECT_EQ("Hello World", ostr.str());
345 } 360 }
346 } // namespace nested_test 361 } // namespace nested_test
347 362
348 } // namespace 363 } // namespace
349 364
350 } // namespace logging 365 } // namespace logging
OLDNEW
« no previous file with comments | « no previous file | base/test/gtest_xml_unittest_result_printer.h » ('j') | base/test/test_suite.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698