Mercurial > irccd
annotate tests/logger/main.cpp @ 189:bb70bb9e41eb
Irccd: use native Duktape API
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 03 Jun 2016 13:28:10 +0200 |
parents | 9a8f321371f7 |
children | 6635b9187d71 |
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 * |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> |
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 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 class MyInterface : public log::Interface { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 public: |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 void debug(const std::string &line) override |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 lineDebug = line; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 } |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 void info(const std::string &line) override |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 lineInfo = line; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 } |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 void warning(const std::string &line) override |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 lineWarning = line; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 } |
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 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 class MyFilter : public log::Filter { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 public: |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 std::string preDebug(std::string input) const override |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 return std::reverse(input.begin(), input.end()), input; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 } |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 std::string preInfo(std::string input) const override |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 return std::reverse(input.begin(), input.end()), input; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 } |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 std::string preWarning(std::string input) const override |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 return std::reverse(input.begin(), input.end()), input; |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 } |
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 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 log::debug("debug"); |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 ASSERT_EQ("gubed", lineDebug); |
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 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 log::info("info"); |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 ASSERT_EQ("ofni", lineInfo); |
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 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 log::warning("warning"); |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 ASSERT_EQ("gninraw", lineWarning); |
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 { |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 log::setVerbose(true); |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 log::setInterface(std::make_unique<MyInterface>()); |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 log::setFilter(std::make_unique<MyFilter>()); |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 testing::InitGoogleTest(&argc, argv); |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 return RUN_ALL_TESTS(); |
9a8f321371f7
Irccd: add filter system in logging, #491
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 } |