| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "mojo/public/c/environment/logger.h" |
| #include "mojo/public/cpp/environment/environment.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace mojo { |
| namespace { |
| |
| TEST(LoggerTest, Basic) { |
| Environment environment; |
| const MojoLogger* const logger = Environment::GetDefaultLogger(); |
| |
| logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE-1, "Logged at VERBOSE-1 level"); |
| logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, "Logged at VERBOSE level"); |
| logger->LogMessage(MOJO_LOG_LEVEL_INFO, "Logged at INFO level"); |
| logger->LogMessage(MOJO_LOG_LEVEL_WARNING, "Logged at WARNING level"); |
| logger->LogMessage(MOJO_LOG_LEVEL_ERROR, "Logged at ERROR level"); |
| |
| // This should kill us: |
| EXPECT_DEATH_IF_SUPPORTED({ |
| logger->LogMessage(MOJO_LOG_LEVEL_FATAL, "Logged at FATAL level"); |
| }, ""); |
| } |
| |
| TEST(LoggerTest, LogLevels) { |
| Environment environment; |
| const MojoLogger* const logger = Environment::GetDefaultLogger(); |
| |
| for (MojoLogLevel log_level = MOJO_LOG_LEVEL_VERBOSE-1; |
| log_level <= MOJO_LOG_LEVEL_FATAL+1; |
| log_level++) { |
| logger->SetMinimumLogLevel(log_level); |
| |
| if (log_level <= MOJO_LOG_LEVEL_FATAL) |
| EXPECT_EQ(log_level, logger->GetMinimumLogLevel()); |
| else |
| EXPECT_EQ(MOJO_LOG_LEVEL_FATAL, logger->GetMinimumLogLevel()); |
| |
| logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE-1, "Logged at VERBOSE-1 level"); |
| logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, "Logged at VERBOSE level"); |
| logger->LogMessage(MOJO_LOG_LEVEL_INFO, "Logged at INFO level"); |
| logger->LogMessage(MOJO_LOG_LEVEL_WARNING, "Logged at WARNING level"); |
| logger->LogMessage(MOJO_LOG_LEVEL_ERROR, "Logged at ERROR level"); |
| |
| // This should kill us: |
| EXPECT_DEATH_IF_SUPPORTED({ |
| logger->LogMessage(MOJO_LOG_LEVEL_FATAL, "Logged at FATAL level"); |
| }, ""); |
| } |
| } |
| |
| } // namespace |
| } // namespace mojo |