From ea49998a6ecc33d641cc07e6cd43979baa5d0d09 Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Sat, 23 Nov 2019 18:27:26 +0100 Subject: [PATCH] Added a test for level enforcement --- tests/test_misc.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/test_misc.cpp b/tests/test_misc.cpp index 576005a4..25fa4595 100644 --- a/tests/test_misc.cpp +++ b/tests/test_misc.cpp @@ -220,3 +220,23 @@ TEST_CASE("default logger API", "[default logger]") spdlog::drop_all(); spdlog::set_pattern("%v"); } + + +TEST_CASE("enforce level", "[enforce logging]") +{ + std::ostringstream oss; + auto oss_sink = std::make_shared(oss); + + spdlog::set_default_logger(std::make_shared("oss", oss_sink)); + spdlog::set_pattern("*** %v"); + + spdlog::default_logger()->set_level(spdlog::level::critical); + spdlog::default_logger()->log(spdlog::source_loc{}, spdlog::level::forceable{spdlog::level::info, false}, "should not be logged"); + REQUIRE(oss.str().empty()); + + spdlog::default_logger()->log(spdlog::source_loc{}, spdlog::level::forceable{spdlog::level::info, true}, "should be logged"); + REQUIRE(oss.str() == "*** should be logged"); + + spdlog::drop_all(); + spdlog::set_pattern("%v"); +} \ No newline at end of file