spdlog
Loading...
Searching...
No Matches
tests
test_cfg.cpp
Go to the documentation of this file.
1
2
#include "
includes.h
"
3
#include "
test_sink.h
"
4
5
#include <
spdlog/cfg/env.h
>
6
#include <
spdlog/cfg/argv.h
>
7
8
using
spdlog::cfg::load_argv_levels
;
9
using
spdlog::cfg::load_env_levels
;
10
using
spdlog::sinks::test_sink_st
;
11
12
TEST_CASE
(
"env"
,
"[cfg]"
)
13
{
14
spdlog::drop
(
"l1"
);
15
auto
l1 = spdlog::create<test_sink_st>(
"l1"
);
16
#ifdef CATCH_PLATFORM_WINDOWS
17
_putenv_s(
"SPDLOG_LEVEL"
,
"l1=warn"
);
18
#else
19
setenv(
"SPDLOG_LEVEL"
,
"l1=warn"
, 1);
20
#endif
21
load_env_levels();
22
REQUIRE
(l1->level() ==
spdlog::level::warn
);
23
spdlog::set_default_logger
(spdlog::create<test_sink_st>(
"cfg-default"
));
24
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::info
);
25
}
26
27
TEST_CASE
(
"argv1"
,
"[cfg]"
)
28
{
29
spdlog::drop
(
"l1"
);
30
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=l1=warn"
};
31
load_argv_levels(2, argv);
32
auto
l1 = spdlog::create<spdlog::sinks::test_sink_st>(
"l1"
);
33
REQUIRE
(l1->level() ==
spdlog::level::warn
);
34
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::info
);
35
}
36
37
TEST_CASE
(
"argv2"
,
"[cfg]"
)
38
{
39
spdlog::drop
(
"l1"
);
40
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=l1=warn,trace"
};
41
load_argv_levels(2, argv);
42
auto
l1 = spdlog::create<test_sink_st>(
"l1"
);
43
REQUIRE
(l1->level() ==
spdlog::level::warn
);
44
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::trace
);
45
}
46
47
TEST_CASE
(
"argv3"
,
"[cfg]"
)
48
{
49
spdlog::set_level
(
spdlog::level::trace
);
50
51
spdlog::drop
(
"l1"
);
52
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=junk_name=warn"
};
53
load_argv_levels(2, argv);
54
auto
l1 = spdlog::create<test_sink_st>(
"l1"
);
55
REQUIRE
(l1->level() ==
spdlog::level::trace
);
56
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::trace
);
57
}
58
59
TEST_CASE
(
"argv4"
,
"[cfg]"
)
60
{
61
spdlog::set_level
(
spdlog::level::info
);
62
spdlog::drop
(
"l1"
);
63
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=junk"
};
64
load_argv_levels(2, argv);
65
auto
l1 = spdlog::create<test_sink_st>(
"l1"
);
66
REQUIRE
(l1->level() ==
spdlog::level::info
);
67
}
68
69
TEST_CASE
(
"argv5"
,
"[cfg]"
)
70
{
71
spdlog::set_level
(
spdlog::level::info
);
72
spdlog::drop
(
"l1"
);
73
const
char
*argv[] = {
"ignore"
,
"ignore"
,
"SPDLOG_LEVEL=l1=warn,trace"
};
74
load_argv_levels(3, argv);
75
auto
l1 = spdlog::create<test_sink_st>(
"l1"
);
76
REQUIRE
(l1->level() ==
spdlog::level::warn
);
77
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::trace
);
78
spdlog::set_level
(
spdlog::level::info
);
79
}
80
81
TEST_CASE
(
"argv6"
,
"[cfg]"
)
82
{
83
spdlog::set_level
(
spdlog::level::err
);
84
const
char
*argv[] = {
""
};
85
load_argv_levels(1, argv);
86
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::err
);
87
spdlog::set_level
(
spdlog::level::info
);
88
}
89
90
TEST_CASE
(
"argv7"
,
"[cfg]"
)
91
{
92
spdlog::set_level
(
spdlog::level::err
);
93
const
char
*argv[] = {
""
};
94
load_argv_levels(0, argv);
95
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::err
);
96
spdlog::set_level
(
spdlog::level::info
);
97
}
98
99
TEST_CASE
(
"level-not-set-test1"
,
"[cfg]"
)
100
{
101
spdlog::drop
(
"l1"
);
102
const
char
*argv[] = {
"ignore"
,
""
};
103
load_argv_levels(2, argv);
104
auto
l1 = spdlog::create<spdlog::sinks::test_sink_st>(
"l1"
);
105
l1->set_level(
spdlog::level::trace
);
106
REQUIRE
(l1->level() ==
spdlog::level::trace
);
107
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::info
);
108
}
109
110
TEST_CASE
(
"level-not-set-test2"
,
"[cfg]"
)
111
{
112
spdlog::drop
(
"l1"
);
113
spdlog::drop
(
"l2"
);
114
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=l1=trace"
};
115
116
auto
l1 = spdlog::create<spdlog::sinks::test_sink_st>(
"l1"
);
117
l1->set_level(
spdlog::level::warn
);
118
auto
l2 = spdlog::create<spdlog::sinks::test_sink_st>(
"l2"
);
119
l2->set_level(
spdlog::level::warn
);
120
121
load_argv_levels(2, argv);
122
123
REQUIRE
(l1->level() ==
spdlog::level::trace
);
124
REQUIRE
(l2->level() ==
spdlog::level::warn
);
125
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::info
);
126
}
127
128
TEST_CASE
(
"level-not-set-test3"
,
"[cfg]"
)
129
{
130
spdlog::drop
(
"l1"
);
131
spdlog::drop
(
"l2"
);
132
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=l1=trace"
};
133
134
load_argv_levels(2, argv);
135
136
auto
l1 = spdlog::create<spdlog::sinks::test_sink_st>(
"l1"
);
137
auto
l2 = spdlog::create<spdlog::sinks::test_sink_st>(
"l2"
);
138
139
REQUIRE
(l1->level() ==
spdlog::level::trace
);
140
REQUIRE
(l2->level() ==
spdlog::level::info
);
141
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::info
);
142
}
143
144
TEST_CASE
(
"level-not-set-test4"
,
"[cfg]"
)
145
{
146
spdlog::drop
(
"l1"
);
147
spdlog::drop
(
"l2"
);
148
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=l1=trace,warn"
};
149
150
load_argv_levels(2, argv);
151
152
auto
l1 = spdlog::create<spdlog::sinks::test_sink_st>(
"l1"
);
153
auto
l2 = spdlog::create<spdlog::sinks::test_sink_st>(
"l2"
);
154
155
REQUIRE
(l1->level() ==
spdlog::level::trace
);
156
REQUIRE
(l2->level() ==
spdlog::level::warn
);
157
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::warn
);
158
}
159
160
TEST_CASE
(
"level-not-set-test5"
,
"[cfg]"
)
161
{
162
spdlog::drop
(
"l1"
);
163
spdlog::drop
(
"l2"
);
164
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=l1=junk,warn"
};
165
166
load_argv_levels(2, argv);
167
168
auto
l1 = spdlog::create<spdlog::sinks::test_sink_st>(
"l1"
);
169
auto
l2 = spdlog::create<spdlog::sinks::test_sink_st>(
"l2"
);
170
171
REQUIRE
(l1->level() ==
spdlog::level::warn
);
172
REQUIRE
(l2->level() ==
spdlog::level::warn
);
173
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::warn
);
174
}
175
176
TEST_CASE
(
"restore-to-default"
,
"[cfg]"
)
177
{
178
spdlog::drop
(
"l1"
);
179
spdlog::drop
(
"l2"
);
180
const
char
*argv[] = {
"ignore"
,
"SPDLOG_LEVEL=info"
};
181
load_argv_levels(2, argv);
182
REQUIRE
(
spdlog::default_logger
()->level() ==
spdlog::level::info
);
183
}
argv.h
TEST_CASE
#define TEST_CASE(...)
Definition
catch.hpp:15119
REQUIRE
#define REQUIRE(...)
Definition
catch.hpp:15083
spdlog::sinks::test_sink
Definition
test_sink.h:20
env.h
includes.h
spdlog::cfg::load_argv_levels
void load_argv_levels(int argc, const char **argv)
Definition
argv.h:24
spdlog::cfg::load_env_levels
void load_env_levels()
Definition
env.h:28
spdlog::level::err
@ err
Definition
common.h:167
spdlog::level::warn
@ warn
Definition
common.h:166
spdlog::level::info
@ info
Definition
common.h:165
spdlog::level::trace
@ trace
Definition
common.h:163
spdlog::set_level
SPDLOG_INLINE void set_level(level::level_enum log_level)
Definition
spdlog-inl.h:60
spdlog::default_logger
SPDLOG_INLINE std::shared_ptr< spdlog::logger > default_logger()
Definition
spdlog-inl.h:110
spdlog::drop
SPDLOG_INLINE void drop(const std::string &name)
Definition
spdlog-inl.h:90
spdlog::set_default_logger
SPDLOG_INLINE void set_default_logger(std::shared_ptr< spdlog::logger > default_logger)
Definition
spdlog-inl.h:120
test_sink.h
Generated by
1.9.8