annotate tests/logger/main.cpp @ 115:9a8f321371f7

Irccd: add filter system in logging, #491
author David Demelier <markand@malikania.fr>
date Thu, 28 Apr 2016 20:48:23 +0200
parents
children 6635b9187d71
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }