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