spdlog
Loading...
Searching...
No Matches
tests
test_dup_filter.cpp
Go to the documentation of this file.
1
#include "
includes.h
"
2
#include "
spdlog/sinks/dup_filter_sink.h
"
3
#include "
test_sink.h
"
4
5
TEST_CASE
(
"dup_filter_test1"
,
"[dup_filter_sink]"
)
6
{
7
using
spdlog::sinks::dup_filter_sink_st
;
8
using
spdlog::sinks::test_sink_mt
;
9
10
dup_filter_sink_st dup_sink{
std::chrono::seconds
{5}};
11
auto
test_sink =
std::make_shared<test_sink_mt>
();
12
dup_sink.add_sink(test_sink);
13
14
for
(
int
i = 0; i < 10; i++)
15
{
16
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message1"
});
17
}
18
19
REQUIRE
(test_sink->msg_counter() == 1);
20
}
21
22
TEST_CASE
(
"dup_filter_test2"
,
"[dup_filter_sink]"
)
23
{
24
using
spdlog::sinks::dup_filter_sink_st
;
25
using
spdlog::sinks::test_sink_mt
;
26
27
dup_filter_sink_st dup_sink{
std::chrono::seconds
{0}};
28
auto
test_sink =
std::make_shared<test_sink_mt>
();
29
dup_sink.add_sink(test_sink);
30
31
for
(
int
i = 0; i < 10; i++)
32
{
33
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message1"
});
34
std::this_thread::sleep_for
(
std::chrono::milliseconds
(5));
35
}
36
37
REQUIRE
(test_sink->msg_counter() == 10);
38
}
39
40
TEST_CASE
(
"dup_filter_test3"
,
"[dup_filter_sink]"
)
41
{
42
using
spdlog::sinks::dup_filter_sink_st
;
43
using
spdlog::sinks::test_sink_mt
;
44
45
dup_filter_sink_st dup_sink{
std::chrono::seconds
{1}};
46
auto
test_sink =
std::make_shared<test_sink_mt>
();
47
dup_sink.add_sink(test_sink);
48
49
for
(
int
i = 0; i < 10; i++)
50
{
51
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message1"
});
52
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message2"
});
53
}
54
55
REQUIRE
(test_sink->msg_counter() == 20);
56
}
57
58
TEST_CASE
(
"dup_filter_test4"
,
"[dup_filter_sink]"
)
59
{
60
using
spdlog::sinks::dup_filter_sink_mt
;
61
using
spdlog::sinks::test_sink_mt
;
62
63
dup_filter_sink_mt dup_sink{
std::chrono::milliseconds
{10}};
64
auto
test_sink =
std::make_shared<test_sink_mt>
();
65
dup_sink.add_sink(test_sink);
66
67
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message"
});
68
std::this_thread::sleep_for
(
std::chrono::milliseconds
(50));
69
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message"
});
70
REQUIRE
(test_sink->msg_counter() == 2);
71
}
72
73
TEST_CASE
(
"dup_filter_test5"
,
"[dup_filter_sink]"
)
74
{
75
using
spdlog::sinks::dup_filter_sink_mt
;
76
using
spdlog::sinks::test_sink_mt
;
77
78
dup_filter_sink_mt dup_sink{
std::chrono::seconds
{5}};
79
auto
test_sink =
std::make_shared<test_sink_mt>
();
80
test_sink->set_pattern(
"%v"
);
81
dup_sink.add_sink(test_sink);
82
83
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message1"
});
84
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message1"
});
85
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message1"
});
86
dup_sink.log(
spdlog::details::log_msg
{
"test"
,
spdlog::level::info
,
"message2"
});
87
88
REQUIRE
(test_sink->msg_counter() == 3);
// skip 2 messages but log the "skipped.." message before message2
89
REQUIRE
(test_sink->lines()[1] ==
"Skipped 2 duplicate messages.."
);
90
}
TEST_CASE
#define TEST_CASE(...)
Definition
catch.hpp:15119
REQUIRE
#define REQUIRE(...)
Definition
catch.hpp:15083
spdlog::sinks::dup_filter_sink
Definition
dup_filter_sink.h:41
spdlog::sinks::test_sink
Definition
test_sink.h:20
dup_filter_sink.h
std::chrono::seconds
includes.h
std::make_shared
T make_shared(T... args)
spdlog::level::info
@ info
Definition
common.h:165
std::this_thread::sleep_for
T sleep_for(T... args)
spdlog::details::log_msg
Definition
log_msg.h:12
test_sink.h
Generated by
1.9.8