blob: 1910c001acfc0b321ed92ab0e8795687fbe06e14 [file] [log] [blame]
Ben Chanbc49ac72012-04-10 19:59:45 -07001// Copyright (c) 2012 The Chromium OS 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
Christopher Wileyb691efd2012-08-09 13:51:51 -07005#include "shill/logging.h"
Ben Chanbc49ac72012-04-10 19:59:45 -07006#include "shill/scope_logger.h"
7
8#include <gmock/gmock.h>
9#include <gtest/gtest.h>
10
11namespace shill {
12
13class ScopeLoggerTest : public testing::Test {
14 protected:
mukesh agrawale638be32012-05-31 15:13:24 -070015 ScopeLoggerTest() {}
Ben Chanbc49ac72012-04-10 19:59:45 -070016
17 void TearDown() {
mukesh agrawale638be32012-05-31 15:13:24 -070018 logger_.set_verbose_level(0);
19 logger_.DisableAllScopes();
Ben Chanbc49ac72012-04-10 19:59:45 -070020 }
21
mukesh agrawale638be32012-05-31 15:13:24 -070022 ScopeLogger logger_;
Ben Chanbc49ac72012-04-10 19:59:45 -070023};
24
25TEST_F(ScopeLoggerTest, DefaultConstruction) {
Ben Chanbc49ac72012-04-10 19:59:45 -070026 for (int scope = 0; scope < ScopeLogger::kNumScopes; ++scope) {
27 for (int verbose_level = 0; verbose_level < 5; ++verbose_level) {
mukesh agrawale638be32012-05-31 15:13:24 -070028 EXPECT_FALSE(logger_.IsLogEnabled(
Ben Chanbc49ac72012-04-10 19:59:45 -070029 static_cast<ScopeLogger::Scope>(scope), verbose_level));
30 }
31 }
32}
33
34TEST_F(ScopeLoggerTest, GetAllScopeNames) {
Ben Chan1c722602012-04-17 17:37:35 -070035 EXPECT_EQ("cellular+"
36 "connection+"
37 "crypto+"
Ben Chanfad4a0b2012-04-18 15:49:59 -070038 "daemon+"
Ben Chan1c722602012-04-17 17:37:35 -070039 "dbus+"
40 "device+"
Ben Chanfad4a0b2012-04-18 15:49:59 -070041 "dhcp+"
42 "dns+"
Ben Chan1c722602012-04-17 17:37:35 -070043 "ethernet+"
Ben Chanfad4a0b2012-04-18 15:49:59 -070044 "http+"
45 "httpproxy+"
Ben Chan1c722602012-04-17 17:37:35 -070046 "inet+"
Paul Stewart6c72c972012-07-27 11:29:20 -070047 "link+"
Ben Chan1c722602012-04-17 17:37:35 -070048 "manager+"
49 "metrics+"
50 "modem+"
51 "portal+"
Ben Chanfad4a0b2012-04-18 15:49:59 -070052 "power+"
Ben Chan1c722602012-04-17 17:37:35 -070053 "profile+"
Ben Chanfad4a0b2012-04-18 15:49:59 -070054 "property+"
55 "resolver+"
56 "route+"
Ben Chan1c722602012-04-17 17:37:35 -070057 "rtnl+"
58 "service+"
59 "storage+"
60 "task+"
61 "vpn+"
Darin Petkov096b3472012-05-15 10:26:22 +020062 "wifi+"
63 "wimax",
mukesh agrawale638be32012-05-31 15:13:24 -070064 logger_.GetAllScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070065}
66
67TEST_F(ScopeLoggerTest, GetEnabledScopeNames) {
mukesh agrawale638be32012-05-31 15:13:24 -070068 EXPECT_EQ("", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070069
mukesh agrawale638be32012-05-31 15:13:24 -070070 logger_.SetScopeEnabled(ScopeLogger::kWiFi, true);
71 EXPECT_EQ("wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070072
mukesh agrawale638be32012-05-31 15:13:24 -070073 logger_.SetScopeEnabled(ScopeLogger::kService, true);
74 EXPECT_EQ("service+wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070075
mukesh agrawale638be32012-05-31 15:13:24 -070076 logger_.SetScopeEnabled(ScopeLogger::kVPN, true);
77 EXPECT_EQ("service+vpn+wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070078
mukesh agrawale638be32012-05-31 15:13:24 -070079 logger_.SetScopeEnabled(ScopeLogger::kWiFi, false);
80 EXPECT_EQ("service+vpn", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070081}
82
83TEST_F(ScopeLoggerTest, EnableScopesByName) {
mukesh agrawale638be32012-05-31 15:13:24 -070084 logger_.EnableScopesByName("");
85 EXPECT_EQ("", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070086
mukesh agrawale638be32012-05-31 15:13:24 -070087 logger_.EnableScopesByName("+wifi");
88 EXPECT_EQ("wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070089
mukesh agrawale638be32012-05-31 15:13:24 -070090 logger_.EnableScopesByName("+service");
91 EXPECT_EQ("service+wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070092
mukesh agrawale638be32012-05-31 15:13:24 -070093 logger_.EnableScopesByName("+vpn+wifi");
94 EXPECT_EQ("service+vpn+wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070095
mukesh agrawale638be32012-05-31 15:13:24 -070096 logger_.EnableScopesByName("-wifi");
97 EXPECT_EQ("service+vpn", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -070098
mukesh agrawale638be32012-05-31 15:13:24 -070099 logger_.EnableScopesByName("-vpn-service+wifi");
100 EXPECT_EQ("wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -0700101
mukesh agrawale638be32012-05-31 15:13:24 -0700102 logger_.EnableScopesByName("+-wifi-");
103 EXPECT_EQ("", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -0700104
mukesh agrawale638be32012-05-31 15:13:24 -0700105 logger_.EnableScopesByName("-vpn+vpn+wifi-wifi");
106 EXPECT_EQ("vpn", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -0700107
mukesh agrawale638be32012-05-31 15:13:24 -0700108 logger_.EnableScopesByName("wifi");
109 EXPECT_EQ("wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -0700110
mukesh agrawale638be32012-05-31 15:13:24 -0700111 logger_.EnableScopesByName("");
112 EXPECT_EQ("", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -0700113}
114
115TEST_F(ScopeLoggerTest, EnableScopesByNameWithUnknownScopeName) {
mukesh agrawale638be32012-05-31 15:13:24 -0700116 logger_.EnableScopesByName("foo");
117 EXPECT_EQ("", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -0700118
mukesh agrawale638be32012-05-31 15:13:24 -0700119 logger_.EnableScopesByName("wifi+foo+vpn");
120 EXPECT_EQ("vpn+wifi", logger_.GetEnabledScopeNames());
Ben Chanbc49ac72012-04-10 19:59:45 -0700121}
122
123TEST_F(ScopeLoggerTest, SetScopeEnabled) {
mukesh agrawale638be32012-05-31 15:13:24 -0700124 EXPECT_FALSE(logger_.IsLogEnabled(ScopeLogger::kService, 0));
Ben Chanbc49ac72012-04-10 19:59:45 -0700125
mukesh agrawale638be32012-05-31 15:13:24 -0700126 logger_.SetScopeEnabled(ScopeLogger::kService, true);
127 EXPECT_TRUE(logger_.IsLogEnabled(ScopeLogger::kService, 0));
Ben Chanbc49ac72012-04-10 19:59:45 -0700128
mukesh agrawale638be32012-05-31 15:13:24 -0700129 logger_.SetScopeEnabled(ScopeLogger::kService, false);
130 EXPECT_FALSE(logger_.IsLogEnabled(ScopeLogger::kService, 0));
Ben Chanbc49ac72012-04-10 19:59:45 -0700131}
132
133TEST_F(ScopeLoggerTest, SetVerboseLevel) {
Christopher Wileyd34a47c2012-08-01 15:42:45 -0700134 ScopeLogger *logger = ScopeLogger::GetInstance();
135 logger->SetScopeEnabled(ScopeLogger::kService, true);
136 EXPECT_TRUE(logger->IsLogEnabled(ScopeLogger::kService, 0));
137 EXPECT_FALSE(logger->IsLogEnabled(ScopeLogger::kService, 1));
138 EXPECT_FALSE(logger->IsLogEnabled(ScopeLogger::kService, 2));
139 EXPECT_TRUE(SLOG_IS_ON(Service, 0));
140 EXPECT_FALSE(SLOG_IS_ON(Service, 1));
141 EXPECT_FALSE(SLOG_IS_ON(Service, 2));
Ben Chanbc49ac72012-04-10 19:59:45 -0700142
Christopher Wileyd34a47c2012-08-01 15:42:45 -0700143 logger->set_verbose_level(1);
144 EXPECT_TRUE(logger->IsLogEnabled(ScopeLogger::kService, 0));
145 EXPECT_TRUE(logger->IsLogEnabled(ScopeLogger::kService, 1));
146 EXPECT_FALSE(logger->IsLogEnabled(ScopeLogger::kService, 2));
147 EXPECT_TRUE(SLOG_IS_ON(Service, 0));
148 EXPECT_TRUE(SLOG_IS_ON(Service, 1));
149 EXPECT_FALSE(SLOG_IS_ON(Service, 2));
Ben Chanbc49ac72012-04-10 19:59:45 -0700150
Christopher Wileyd34a47c2012-08-01 15:42:45 -0700151 logger->set_verbose_level(2);
152 EXPECT_TRUE(logger->IsLogEnabled(ScopeLogger::kService, 0));
153 EXPECT_TRUE(logger->IsLogEnabled(ScopeLogger::kService, 1));
154 EXPECT_TRUE(logger->IsLogEnabled(ScopeLogger::kService, 2));
155 EXPECT_TRUE(SLOG_IS_ON(Service, 0));
156 EXPECT_TRUE(SLOG_IS_ON(Service, 1));
157 EXPECT_TRUE(SLOG_IS_ON(Service, 2));
158
159 logger->set_verbose_level(0);
160 logger->SetScopeEnabled(ScopeLogger::kService, false);
Ben Chanbc49ac72012-04-10 19:59:45 -0700161}
162
163} // namespace shill