logger_unittest.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
11176bdada62cabc6ec4b0308a930e83b679d5d36John Reck// Copyright 2014 The Chromium Authors. All rights reserved.
21176bdada62cabc6ec4b0308a930e83b679d5d36John Reck// Use of this source code is governed by a BSD-style license that can be
31176bdada62cabc6ec4b0308a930e83b679d5d36John Reck// found in the LICENSE file.
41176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
51176bdada62cabc6ec4b0308a930e83b679d5d36John Reck#include "mojo/public/cpp/environment/default_logger.h"
61176bdada62cabc6ec4b0308a930e83b679d5d36John Reck#include "mojo/public/cpp/environment/environment.h"
71176bdada62cabc6ec4b0308a930e83b679d5d36John Reck#include "testing/gtest/include/gtest/gtest.h"
81176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
91176bdada62cabc6ec4b0308a930e83b679d5d36John Recknamespace mojo {
101176bdada62cabc6ec4b0308a930e83b679d5d36John Recknamespace {
111176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
121176bdada62cabc6ec4b0308a930e83b679d5d36John ReckTEST(LoggerTest, Basic) {
131176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  Environment environment;
141176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  const MojoLogger* const logger = GetDefaultLogger();
151176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
161176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE-1, "Logged at VERBOSE-1 level");
171176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, "Logged at VERBOSE level");
181176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  logger->LogMessage(MOJO_LOG_LEVEL_INFO, "Logged at INFO level");
191176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  logger->LogMessage(MOJO_LOG_LEVEL_WARNING, "Logged at WARNING level");
201176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  logger->LogMessage(MOJO_LOG_LEVEL_ERROR, "Logged at ERROR level");
211176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
221176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  // This should kill us:
231176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  EXPECT_DEATH({
241176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    logger->LogMessage(MOJO_LOG_LEVEL_FATAL, "Logged at FATAL level");
251176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  }, "");
261176bdada62cabc6ec4b0308a930e83b679d5d36John Reck}
271176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
281176bdada62cabc6ec4b0308a930e83b679d5d36John ReckTEST(LoggerTest, LogLevels) {
291176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  Environment environment;
301176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  const MojoLogger* const logger = GetDefaultLogger();
311176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
321176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  for (MojoLogLevel log_level = MOJO_LOG_LEVEL_VERBOSE-1;
331176bdada62cabc6ec4b0308a930e83b679d5d36John Reck       log_level <= MOJO_LOG_LEVEL_FATAL+1;
341176bdada62cabc6ec4b0308a930e83b679d5d36John Reck       log_level++) {
351176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    Environment::SetMinimumLogLevel(log_level);
361176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
371176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    if (log_level <= MOJO_LOG_LEVEL_FATAL)
381176bdada62cabc6ec4b0308a930e83b679d5d36John Reck      EXPECT_EQ(log_level, logger->GetMinimumLogLevel());
391176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    else
401176bdada62cabc6ec4b0308a930e83b679d5d36John Reck      EXPECT_EQ(MOJO_LOG_LEVEL_FATAL, logger->GetMinimumLogLevel());
411176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
421176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE-1, "Logged at VERBOSE-1 level");
431176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    logger->LogMessage(MOJO_LOG_LEVEL_VERBOSE, "Logged at VERBOSE level");
441176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    logger->LogMessage(MOJO_LOG_LEVEL_INFO, "Logged at INFO level");
451176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    logger->LogMessage(MOJO_LOG_LEVEL_WARNING, "Logged at WARNING level");
461176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    logger->LogMessage(MOJO_LOG_LEVEL_ERROR, "Logged at ERROR level");
471176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
481176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    // This should kill us:
491176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    EXPECT_DEATH({
501176bdada62cabc6ec4b0308a930e83b679d5d36John Reck      logger->LogMessage(MOJO_LOG_LEVEL_FATAL, "Logged at FATAL level");
511176bdada62cabc6ec4b0308a930e83b679d5d36John Reck    }, "");
521176bdada62cabc6ec4b0308a930e83b679d5d36John Reck  }
531176bdada62cabc6ec4b0308a930e83b679d5d36John Reck}
541176bdada62cabc6ec4b0308a930e83b679d5d36John Reck
551176bdada62cabc6ec4b0308a930e83b679d5d36John Reck}  // namespace
561176bdada62cabc6ec4b0308a930e83b679d5d36John Reck}  // namespace mojo
571176bdada62cabc6ec4b0308a930e83b679d5d36John Reck