xgboost/tests/cpp/common/test_monitor.cc
Jiaming Yuan ac457c56a2
Use `UpdateAllowUnknown' for non-model related parameter. (#4961)
* Use `UpdateAllowUnknown' for non-model related parameter.

Model parameter can not pack an additional boolean value due to binary IO
format.  This commit deals only with non-model related parameter configuration.

* Add tidy command line arg for use-dmlc-gtest.
2019-10-23 05:50:12 -04:00

38 lines
1.0 KiB
C++

#include <gtest/gtest.h>
#include <xgboost/logging.h>
#include <string>
#include "../../../src/common/timer.h"
namespace xgboost {
namespace common {
TEST(Monitor, Logging) {
auto run_monitor =
[]() {
Monitor monitor_;
monitor_.Init("Monitor test");
monitor_.Start("basic");
monitor_.Stop("basic");
};
Args args = {std::make_pair("verbosity", "3")};
ConsoleLogger::Configure(args);
ASSERT_EQ(ConsoleLogger::GlobalVerbosity(), ConsoleLogger::LogVerbosity::kDebug);
testing::internal::CaptureStderr();
run_monitor();
std::string output = testing::internal::GetCapturedStderr();
ASSERT_NE(output.find("Monitor"), std::string::npos);
// Monitor only prints messages when set to DEBUG.
args = {std::make_pair("verbosity", "2")};
ConsoleLogger::Configure(args);
testing::internal::CaptureStderr();
run_monitor();
output = testing::internal::GetCapturedStderr();
ASSERT_EQ(output.size(), 0);
ConsoleLogger::Configure(Args{{"verbosity", "1"}});
}
} // namespace common
} // namespace xgboost