Mercurial > irccd
annotate tests/logger/main.cpp @ 488:7e273b7f4f92
Irccd: new coding style, closes #576
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 26 Sep 2017 17:18:47 +0200 |
parents | c6fbb6e0e06d |
children | 349fe29d86d5 |
rev | line source |
---|---|
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- test logger functions |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
394 | 4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr> |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <algorithm> |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <gtest/gtest.h> |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include <irccd/logger.hpp> |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 using namespace irccd; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 namespace { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 std::string lineDebug; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 std::string lineInfo; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 std::string lineWarning; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 } // !namespace |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
35 class MyInterface : public log::logger { |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 public: |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
37 void debug(const std::string &line) override |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
38 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
39 lineDebug = line; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
40 } |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
42 void info(const std::string &line) override |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
43 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
44 lineInfo = line; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
45 } |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
47 void warning(const std::string &line) override |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
48 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
49 lineWarning = line; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
50 } |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 }; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
53 class MyFilter : public log::filter { |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 public: |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
55 std::string pre_debug(std::string input) const override |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
56 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
57 return std::reverse(input.begin(), input.end()), input; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
58 } |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
60 std::string pre_info(std::string input) const override |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
61 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
62 return std::reverse(input.begin(), input.end()), input; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
63 } |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
65 std::string pre_warning(std::string input) const override |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
66 { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
67 return std::reverse(input.begin(), input.end()), input; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
68 } |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 }; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 #if !defined(NDEBUG) |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 TEST(Logger, debug) |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
75 log::debug("debug"); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
77 ASSERT_EQ("gubed", lineDebug); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 } |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 #endif |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 TEST(Logger, info) |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
84 log::info("info"); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
86 ASSERT_EQ("ofni", lineInfo); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 } |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 TEST(Logger, warning) |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
91 log::warning("warning"); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
93 ASSERT_EQ("gninraw", lineWarning); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 } |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 int main(int argc, char **argv) |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
98 log::set_verbose(true); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
99 log::set_logger(std::make_unique<MyInterface>()); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
100 log::set_filter(std::make_unique<MyFilter>()); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
102 testing::InitGoogleTest(&argc, argv); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
115
diff
changeset
|
104 return RUN_ALL_TESTS(); |
115
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 } |