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

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

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 4 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include <mojo/environment/logger.h>
6
7 #include "gtest/gtest.h"
8 #include "mojo/public/cpp/environment/environment.h"
9
10 namespace mojo {
11 namespace {
12
13 std::vector<std::string> g_log_msgs;
14 const MojoLogger kTestLogger = {
15 [](MojoLogLevel log_level,
16 const char* source_file,
17 uint32_t source_line,
18 const char* message) { g_log_msgs.push_back(message); },
19 []() { return MOJO_LOG_LEVEL_INFO; }, [](MojoLogLevel lvl) {}};
20
21 TEST(LoggerTest, Basic) {
22 const char kPath[] = "/fake/path/to/file.cc";
23
24 const MojoLogger* const logger = Environment::GetDefaultLogger();
25
26 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE - 1, kPath, 123,
27 "Logged at VERBOSE-1 level");
28 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, kPath, 123,
29 "Logged at VERBOSE level");
30 logger->LogMessage(MOJO_LOG_LEVEL_INFO, kPath, 123, "Logged at INFO level");
31 logger->LogMessage(MOJO_LOG_LEVEL_WARNING, kPath, 123,
32 "Logged at WARNING level");
33 logger->LogMessage(MOJO_LOG_LEVEL_ERROR, kPath, 123, "Logged at ERROR level");
34
35 // This should kill us:
36 EXPECT_DEATH_IF_SUPPORTED({
37 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, kPath, 123,
38 "Logged at FATAL level");
39 }, "");
40 }
41
42 TEST(LoggerTest, LogLevels) {
43 const char kPath[] = "/fake/path/to/file.cc";
44
45 const MojoLogger* const logger = Environment::GetDefaultLogger();
46
47 for (MojoLogLevel log_level = MOJO_LOG_LEVEL_VERBOSE - 1;
48 log_level <= MOJO_LOG_LEVEL_FATAL + 1;
49 log_level++) {
50 logger->SetMinimumLogLevel(log_level);
51
52 if (log_level <= MOJO_LOG_LEVEL_FATAL)
53 EXPECT_EQ(log_level, logger->GetMinimumLogLevel());
54 else
55 EXPECT_EQ(MOJO_LOG_LEVEL_FATAL, logger->GetMinimumLogLevel());
56
57 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE - 1, kPath, 123,
58 "Logged at VERBOSE-1 level");
59 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, kPath, 123,
60 "Logged at VERBOSE level");
61 logger->LogMessage(MOJO_LOG_LEVEL_INFO, kPath, 123, "Logged at INFO level");
62 logger->LogMessage(MOJO_LOG_LEVEL_WARNING, kPath, 123,
63 "Logged at WARNING level");
64 logger->LogMessage(MOJO_LOG_LEVEL_ERROR, kPath, 123,
65 "Logged at ERROR level");
66
67 // This should kill us:
68 EXPECT_DEATH_IF_SUPPORTED({
69 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, kPath, 123,
70 "Logged at FATAL level");
71 }, "");
72 }
73 }
74
75 TEST(LoggerTest, NoFile) {
76 const MojoLogger* const logger = Environment::GetDefaultLogger();
77
78 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE - 1, nullptr, 0,
79 "Logged at VERBOSE-1 level");
80 logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, nullptr, 0,
81 "Logged at VERBOSE level");
82 logger->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0, "Logged at INFO level");
83 logger->LogMessage(MOJO_LOG_LEVEL_WARNING, nullptr, 0,
84 "Logged at WARNING level");
85 logger->LogMessage(MOJO_LOG_LEVEL_ERROR, nullptr, 0, "Logged at ERROR level");
86
87 // This should kill us:
88 EXPECT_DEATH_IF_SUPPORTED({
89 logger->LogMessage(MOJO_LOG_LEVEL_FATAL, nullptr, 0,
90 "Logged at FATAL level");
91 }, "");
92 }
93
94 TEST(LoggerTest, SetDefaultLogger) {
95 Environment::SetDefaultLogger(&kTestLogger);
96
97 std::vector<std::string> expected_msgs;
98 expected_msgs.push_back("First message!");
99 expected_msgs.push_back("Second message!");
100 expected_msgs.push_back("Third message!");
101 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0,
102 expected_msgs[0].c_str());
103 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0,
104 expected_msgs[1].c_str());
105 Environment::GetDefaultLogger()->LogMessage(MOJO_LOG_LEVEL_INFO, nullptr, 0,
106 expected_msgs[2].c_str());
107
108 EXPECT_EQ(expected_msgs, g_log_msgs);
109
110 // This should restore the default logger.
111 Environment::SetDefaultLogger(nullptr);
112
113 EXPECT_NE(&kTestLogger, Environment::GetDefaultLogger());
114 EXPECT_NE(nullptr, Environment::GetDefaultLogger());
115 }
116
117 } // namespace
118 } // 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