added loaders tests

This commit is contained in:
gabime 2019-12-21 19:25:54 +02:00
parent 28e334c728
commit e13e978af4
6 changed files with 56 additions and 7 deletions

View File

@ -22,7 +22,7 @@ namespace spdlog {
namespace cfg { namespace cfg {
namespace argv { namespace argv {
// search for SPDLOG_LEVEL= in the args and use it to init the levels // search for SPDLOG_LEVEL= in the args and use it to init the levels
void load_levels(int args, char *argv[]) void load_levels(int args, const char *argv[])
{ {
const std::string spdlog_level_prefix = "SPDLOG_LEVEL="; const std::string spdlog_level_prefix = "SPDLOG_LEVEL=";
for (int i = 1; i < args; i++) for (int i = 1; i < args; i++)

View File

@ -11,8 +11,7 @@ namespace spdlog {
namespace cfg { namespace cfg {
class log_levels class log_levels
{ {
using levels_map = std::unordered_map<std::string, spdlog::level::level_enum>; std::unordered_map<std::string, spdlog::level::level_enum> levels_;
levels_map levels_;
spdlog::level::level_enum default_level_ = level::info; spdlog::level::level_enum default_level_ = level::info;
public: public:

View File

@ -23,7 +23,8 @@ set(SPDLOG_UTESTS_SOURCES
test_fmt_helper.cpp test_fmt_helper.cpp
test_stdout_api.cpp test_stdout_api.cpp
test_backtrace.cpp test_backtrace.cpp
test_create_dir.cpp) test_create_dir.cpp
test_cfg.cpp)
if(NOT SPDLOG_NO_EXCEPTIONS) if(NOT SPDLOG_NO_EXCEPTIONS)
list(APPEND SPDLOG_UTESTS_SOURCES test_errors.cpp) list(APPEND SPDLOG_UTESTS_SOURCES test_errors.cpp)

View File

@ -11,6 +11,7 @@
#include <sstream> #include <sstream>
#include <string> #include <string>
#include <iomanip> #include <iomanip>
#include <stdlib.h>
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG #define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG

View File

@ -14,7 +14,8 @@ test_sources = files([
'test_fmt_helper.cpp', 'test_fmt_helper.cpp',
'test_stdout_api.cpp', 'test_stdout_api.cpp',
'test_backtrace.cpp', 'test_backtrace.cpp',
'test_create_dir.cpp' 'test_create_dir.cpp',
'test_cfg.cpp',
]) ])
if not get_option('no_exceptions') if not get_option('no_exceptions')

View File

@ -2,9 +2,56 @@
#include "test_sink.h" #include "test_sink.h"
#include <spdlog/cfg/env.h> #include <spdlog/cfg/env.h>
#include <spdlog/cfg/argv.h>
TEST_CASE("env", "[cfg]") TEST_CASE("env", "[loaders]")
{ {
spdlog::logger l{"l1"}; auto l1 = spdlog::create<spdlog::sinks::test_sink_st >("l1");
setenv("SPDLOG_LEVEL", "l1=warn", 1);
spdlog::cfg::env::load_levels();
REQUIRE(l1->level() == spdlog::level::warn);
REQUIRE(spdlog::default_logger()->level() == spdlog::level::info);
spdlog::drop(l1->name());
} }
TEST_CASE("argv1", "[loaders]")
{
const char* argv[] = {"ignore", "SPDLOG_LEVEL=l1=warn"};
spdlog::cfg::argv::load_levels(2, argv);
auto l1 = spdlog::create<spdlog::sinks::test_sink_st>("l1");
REQUIRE(l1->level() == spdlog::level::warn);
REQUIRE(spdlog::default_logger()->level() == spdlog::level::info);
spdlog::drop(l1->name());
}
TEST_CASE("argv2", "[loaders]")
{
const char* argv[] = {"ignore", "SPDLOG_LEVEL=l1=warn,trace"};
spdlog::cfg::argv::load_levels(2, argv);
auto l1 = spdlog::create<spdlog::sinks::test_sink_st>("l1");
REQUIRE(l1->level() == spdlog::level::warn);
REQUIRE(spdlog::default_logger()->level() == spdlog::level::trace);
spdlog::drop(l1->name());
}
TEST_CASE("argv3", "[loaders]")
{
const char* argv[] = {"ignore", "SPDLOG_LEVEL="};
spdlog::cfg::argv::load_levels(2, argv);
auto l1 = spdlog::create<spdlog::sinks::test_sink_st>("l1");
REQUIRE(l1->level() == spdlog::level::info);
REQUIRE(spdlog::default_logger()->level() == spdlog::level::info);
spdlog::drop(l1->name());
}
TEST_CASE("argv4", "[loaders]")
{
const char* argv[] = {"ignore", "SPDLOG_LEVEL=junk"};
spdlog::cfg::argv::load_levels(2, argv);
auto l1 = spdlog::create<spdlog::sinks::test_sink_st>("l1");
REQUIRE(l1->level() == spdlog::level::info);
spdlog::drop(l1->name());
}