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

Side by Side Diff: mojo/public/cpp/environment/tests/logger_unittest.cc

Issue 1997473005: Remove requirement that mojo::Environment be instantiated. (Closed) Base URL: https://github.com/domokit/mojo.git@work797_no_utility_tls
Patch Set: SetDefaultAsyncWaiter Created 4 years, 7 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "mojo/public/c/environment/logger.h" 5 #include "mojo/public/c/environment/logger.h"
6 #include "mojo/public/cpp/environment/environment.h" 6 #include "mojo/public/cpp/environment/environment.h"
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace mojo { 9 namespace mojo {
10 namespace { 10 namespace {
11 11
12 std::vector<std::string> g_log_msgs; 12 std::vector<std::string> g_log_msgs;
13 const MojoLogger kTestLogger = { 13 const MojoLogger kTestLogger = {
14 [](MojoLogLevel log_level, 14 [](MojoLogLevel log_level,
15 const char* source_file, 15 const char* source_file,
16 uint32_t source_line, 16 uint32_t source_line,
17 const char* message) { g_log_msgs.push_back(message); }, 17 const char* message) { g_log_msgs.push_back(message); },
18 []() { return MOJO_LOG_LEVEL_INFO; }, [](MojoLogLevel lvl) {}}; 18 []() { return MOJO_LOG_LEVEL_INFO; }, [](MojoLogLevel lvl) {}};
19 19
20 TEST(LoggerTest, Basic) { 20 TEST(LoggerTest, Basic) {
21 const char kPath[] = "/fake/path/to/file.cc"; 21 const char kPath[] = "/fake/path/to/file.cc";
22 22
23 Environment environment;
24 const MojoLogger* const logger = Environment::GetDefaultLogger(); 23 const MojoLogger* const logger = Environment::GetDefaultLogger();
25 24
26 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE - 1, kPath, 123, 25 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE - 1, kPath, 123,
27 "Logged at VERBOSE-1 level"); 26 "Logged at VERBOSE-1 level");
28 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, kPath, 123, 27 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, kPath, 123,
29 "Logged at VERBOSE level"); 28 "Logged at VERBOSE level");
30 logger->LogMessage(MOJO_LOG_LEVEL_INFO, kPath, 123, "Logged at INFO level"); 29 logger->LogMessage(MOJO_LOG_LEVEL_INFO, kPath, 123, "Logged at INFO level");
31 logger->LogMessage(MOJO_LOG_LEVEL_WARNING, kPath, 123, 30 logger->LogMessage(MOJO_LOG_LEVEL_WARNING, kPath, 123,
32 "Logged at WARNING level"); 31 "Logged at WARNING level");
33 logger->LogMessage(MOJO_LOG_LEVEL_ERROR, kPath, 123, "Logged at ERROR level"); 32 logger->LogMessage(MOJO_LOG_LEVEL_ERROR, kPath, 123, "Logged at ERROR level");
34 33
35 // This should kill us: 34 // This should kill us:
36 EXPECT_DEATH_IF_SUPPORTED({ 35 EXPECT_DEATH_IF_SUPPORTED({
37 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, kPath, 123, 36 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, kPath, 123,
38 "Logged at FATAL level"); 37 "Logged at FATAL level");
39 }, ""); 38 }, "");
40 } 39 }
41 40
42 TEST(LoggerTest, LogLevels) { 41 TEST(LoggerTest, LogLevels) {
43 const char kPath[] = "/fake/path/to/file.cc"; 42 const char kPath[] = "/fake/path/to/file.cc";
44 43
45 Environment environment;
46 const MojoLogger* const logger = Environment::GetDefaultLogger(); 44 const MojoLogger* const logger = Environment::GetDefaultLogger();
47 45
48 for (MojoLogLevel log_level = MOJO_LOG_LEVEL_VERBOSE - 1; 46 for (MojoLogLevel log_level = MOJO_LOG_LEVEL_VERBOSE - 1;
49 log_level <= MOJO_LOG_LEVEL_FATAL + 1; 47 log_level <= MOJO_LOG_LEVEL_FATAL + 1;
50 log_level++) { 48 log_level++) {
51 logger->SetMinimumLogLevel(log_level); 49 logger->SetMinimumLogLevel(log_level);
52 50
53 if (log_level <= MOJO_LOG_LEVEL_FATAL) 51 if (log_level <= MOJO_LOG_LEVEL_FATAL)
54 EXPECT_EQ(log_level, logger->GetMinimumLogLevel()); 52 EXPECT_EQ(log_level, logger->GetMinimumLogLevel());
55 else 53 else
(...skipping 11 matching lines...) Expand all
67 65
68 // This should kill us: 66 // This should kill us:
69 EXPECT_DEATH_IF_SUPPORTED({ 67 EXPECT_DEATH_IF_SUPPORTED({
70 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, kPath, 123, 68 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, kPath, 123,
71 "Logged at FATAL level"); 69 "Logged at FATAL level");
72 }, ""); 70 }, "");
73 } 71 }
74 } 72 }
75 73
76 TEST(LoggerTest, NoFile) { 74 TEST(LoggerTest, NoFile) {
77 Environment environment;
78 const MojoLogger* const logger = Environment::GetDefaultLogger(); 75 const MojoLogger* const logger = Environment::GetDefaultLogger();
79 76
80 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE - 1, nullptr, 0, 77 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE - 1, nullptr, 0,
81 "Logged at VERBOSE-1 level"); 78 "Logged at VERBOSE-1 level");
82 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, nullptr, 0, 79 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, nullptr, 0,
83 "Logged at VERBOSE level"); 80 "Logged at VERBOSE level");
84 logger->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0, "Logged at INFO level"); 81 logger->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0, "Logged at INFO level");
85 logger->LogMessage(MOJO_LOG_LEVEL_WARNING, nullptr, 0, 82 logger->LogMessage(MOJO_LOG_LEVEL_WARNING, nullptr, 0,
86 "Logged at WARNING level"); 83 "Logged at WARNING level");
87 logger->LogMessage(MOJO_LOG_LEVEL_ERROR, nullptr, 0, "Logged at ERROR level"); 84 logger->LogMessage(MOJO_LOG_LEVEL_ERROR, nullptr, 0, "Logged at ERROR level");
88 85
89 // This should kill us: 86 // This should kill us:
90 EXPECT_DEATH_IF_SUPPORTED({ 87 EXPECT_DEATH_IF_SUPPORTED({
91 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, nullptr, 0, 88 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, nullptr, 0,
92 "Logged at FATAL level"); 89 "Logged at FATAL level");
93 }, ""); 90 }, "");
94 } 91 }
95 92
96 TEST(LoggerTest, SetDefaultLogger) { 93 TEST(LoggerTest, SetDefaultLogger) {
97 Environment environment;
98 Environment::SetDefaultLogger(&kTestLogger); 94 Environment::SetDefaultLogger(&kTestLogger);
99 95
100 std::vector<std::string> expected_msgs; 96 std::vector<std::string> expected_msgs;
101 expected_msgs.push_back("First message!"); 97 expected_msgs.push_back("First message!");
102 expected_msgs.push_back("Second message!"); 98 expected_msgs.push_back("Second message!");
103 expected_msgs.push_back("Third message!"); 99 expected_msgs.push_back("Third message!");
104 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0, 100 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0,
105 expected_msgs[0].c_str()); 101 expected_msgs[0].c_str());
106 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0, 102 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0,
107 expected_msgs[1].c_str()); 103 expected_msgs[1].c_str());
108 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0, 104 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0,
109 expected_msgs[2].c_str()); 105 expected_msgs[2].c_str());
110 106
111 EXPECT_EQ(expected_msgs, g_log_msgs); 107 EXPECT_EQ(expected_msgs, g_log_msgs);
112 108
113 // This should restore the default logger. 109 // This should restore the default logger.
114 Environment::SetDefaultLogger(nullptr); 110 Environment::SetDefaultLogger(nullptr);
115 111
116 EXPECT_NE(&kTestLogger, Environment::GetDefaultLogger()); 112 EXPECT_NE(&kTestLogger, Environment::GetDefaultLogger());
117 EXPECT_NE(nullptr, Environment::GetDefaultLogger()); 113 EXPECT_NE(nullptr, Environment::GetDefaultLogger());
118 } 114 }
119 115
120 } // namespace 116 } // namespace
121 } // namespace mojo 117 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/environment/tests/async_waiter_unittest.cc ('k') | mojo/public/cpp/environment/tests/logging_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698