Mercurial > irccd
annotate tests/util/main.cpp @ 518:b557017ad3f0
Tests: unify test files for directory/file tests
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 27 Oct 2017 08:52:39 +0200 |
parents | 16b9ebfd3f08 |
children | e03521cf207b |
rev | line source |
---|---|
0 | 1 /* |
2 * main.cpp -- test util functions | |
3 * | |
394 | 4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr> |
0 | 5 * |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
19 #define BOOST_TEST_MODULE "util" |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
20 #include <boost/test/unit_test.hpp> |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
21 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
22 #include <cstdint> |
0 | 23 |
95
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
75
diff
changeset
|
24 #include <irccd/util.hpp> |
1125d90b3b44
Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents:
75
diff
changeset
|
25 #include <irccd/system.hpp> |
0 | 26 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
27 namespace std { |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
28 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
29 std::ostream& operator<<(std::ostream& out, const std::vector<std::string>& list) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
30 { |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
31 for (const auto& s : list) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
32 out << s << " "; |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
33 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
34 return out; |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
35 } |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
36 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
37 } // !std |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
38 |
0 | 39 namespace irccd { |
40 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
41 BOOST_AUTO_TEST_SUITE(format) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
42 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
43 /* |
0 | 44 * util::format function |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
45 * -------------------------------------------------------- |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
46 */ |
0 | 47 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
48 BOOST_AUTO_TEST_CASE(nothing) |
0 | 49 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
50 std::string expected = "hello world!"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
51 std::string result = util::format("hello world!"); |
0 | 52 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
53 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 54 } |
55 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
56 BOOST_AUTO_TEST_CASE(escape) |
118
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
57 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
58 util::subst params; |
118
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
59 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
60 params.keywords.emplace("target", "hello"); |
118
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
61 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
62 BOOST_REQUIRE_EQUAL("$@#", util::format("$@#")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
63 BOOST_REQUIRE_EQUAL(" $ @ # ", util::format(" $ @ # ")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
64 BOOST_REQUIRE_EQUAL("#", util::format("#")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
65 BOOST_REQUIRE_EQUAL(" # ", util::format(" # ")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
66 BOOST_REQUIRE_EQUAL("#@", util::format("#@")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
67 BOOST_REQUIRE_EQUAL("##", util::format("##")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
68 BOOST_REQUIRE_EQUAL("#!", util::format("#!")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
69 BOOST_REQUIRE_EQUAL("#{target}", util::format("##{target}")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
70 BOOST_REQUIRE_EQUAL("@hello", util::format("@#{target}", params)); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
71 BOOST_REQUIRE_EQUAL("hello#", util::format("#{target}#", params)); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
72 BOOST_REQUIRE_THROW(util::format("#{failure"), std::exception); |
118
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
73 } |
2a63c8ec45cd
Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents:
114
diff
changeset
|
74 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
75 BOOST_AUTO_TEST_CASE(disable_date) |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
76 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
77 util::subst params; |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
78 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
79 params.flags &= ~(util::subst_flags::date); |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
80 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
81 BOOST_REQUIRE_EQUAL("%H:%M", util::format("%H:%M", params)); |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
82 } |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
83 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
84 BOOST_AUTO_TEST_CASE(disable_keywords) |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
85 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
86 util::subst params; |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
87 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
88 params.keywords.emplace("target", "hello"); |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
89 params.flags &= ~(util::subst_flags::keywords); |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
90 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
91 BOOST_REQUIRE_EQUAL("#{target}", util::format("#{target}", params)); |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
92 } |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
93 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
94 BOOST_AUTO_TEST_CASE(disable_env) |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
95 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
96 util::subst params; |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
97 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
98 params.flags &= ~(util::subst_flags::env); |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
99 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
100 BOOST_REQUIRE_EQUAL("${HOME}", util::format("${HOME}", params)); |
119
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
101 } |
b39573fc066e
Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents:
118
diff
changeset
|
102 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
103 BOOST_AUTO_TEST_CASE(keyword_simple) |
0 | 104 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
105 util::subst params; |
0 | 106 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
107 params.keywords.insert({"target", "irccd"}); |
0 | 108 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
109 std::string expected = "hello irccd!"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
110 std::string result = util::format("hello #{target}!", params); |
0 | 111 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
112 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 113 } |
114 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
115 BOOST_AUTO_TEST_CASE(keyword_multiple) |
0 | 116 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
117 util::subst params; |
0 | 118 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
119 params.keywords.insert({"target", "irccd"}); |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
120 params.keywords.insert({"source", "nightmare"}); |
0 | 121 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
122 std::string expected = "hello irccd from nightmare!"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
123 std::string result = util::format("hello #{target} from #{source}!", params); |
0 | 124 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
125 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 126 } |
127 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
128 BOOST_AUTO_TEST_CASE(keyword_adj_twice) |
0 | 129 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
130 util::subst params; |
0 | 131 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
132 params.keywords.insert({"target", "irccd"}); |
0 | 133 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
134 std::string expected = "hello irccdirccd!"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
135 std::string result = util::format("hello #{target}#{target}!", params); |
0 | 136 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
137 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 138 } |
139 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
140 BOOST_AUTO_TEST_CASE(keyword_missing) |
0 | 141 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
142 std::string expected = "hello !"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
143 std::string result = util::format("hello #{target}!"); |
0 | 144 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
145 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 146 } |
147 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
148 BOOST_AUTO_TEST_CASE(env_simple) |
0 | 149 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
150 std::string home = sys::env("HOME"); |
0 | 151 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
152 if (!home.empty()) { |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
153 std::string expected = "my home is " + home; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
154 std::string result = util::format("my home is ${HOME}"); |
0 | 155 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
156 BOOST_REQUIRE_EQUAL(expected, result); |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
157 } |
0 | 158 } |
159 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
160 BOOST_AUTO_TEST_CASE(env_missing) |
0 | 161 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
162 std::string expected = "value is "; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
163 std::string result = util::format("value is ${HOPE_THIS_VAR_NOT_EXIST}"); |
0 | 164 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
165 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 166 } |
167 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
168 BOOST_AUTO_TEST_SUITE_END() |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
169 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
170 /* |
0 | 171 * util::split function |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
172 * -------------------------------------------------------- |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
173 */ |
0 | 174 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
175 BOOST_AUTO_TEST_SUITE(split) |
0 | 176 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
177 using list = std::vector<std::string>; |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
178 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
179 BOOST_AUTO_TEST_CASE(simple) |
0 | 180 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
181 list expected { "a", "b" }; |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
182 list result = util::split("a;b", ";"); |
0 | 183 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
184 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 185 } |
186 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
187 BOOST_AUTO_TEST_CASE(cut) |
0 | 188 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
189 list expected { "msg", "#staff", "foo bar baz" }; |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
190 list result = util::split("msg;#staff;foo bar baz", ";", 3); |
0 | 191 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
192 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 193 } |
194 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
195 BOOST_AUTO_TEST_SUITE_END() |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
196 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
197 /* |
0 | 198 * util::strip function |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
199 * -------------------------------------------------------- |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
200 */ |
0 | 201 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
202 BOOST_AUTO_TEST_SUITE(strip) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
203 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
204 BOOST_AUTO_TEST_CASE(left) |
0 | 205 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
206 std::string value = " 123"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
207 std::string result = util::strip(value); |
0 | 208 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
209 BOOST_REQUIRE_EQUAL("123", result); |
0 | 210 } |
211 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
212 BOOST_AUTO_TEST_CASE(right) |
0 | 213 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
214 std::string value = "123 "; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
215 std::string result = util::strip(value); |
0 | 216 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
217 BOOST_REQUIRE_EQUAL("123", result); |
0 | 218 } |
219 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
220 BOOST_AUTO_TEST_CASE(both) |
0 | 221 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
222 std::string value = " 123 "; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
223 std::string result = util::strip(value); |
0 | 224 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
225 BOOST_REQUIRE_EQUAL("123", result); |
0 | 226 } |
227 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
228 BOOST_AUTO_TEST_CASE(none) |
0 | 229 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
230 std::string value = "without"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
231 std::string result = util::strip(value); |
0 | 232 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
233 BOOST_REQUIRE_EQUAL("without", result); |
0 | 234 } |
235 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
236 BOOST_AUTO_TEST_CASE(betweenEmpty) |
0 | 237 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
238 std::string value = "one list"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
239 std::string result = util::strip(value); |
0 | 240 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
241 BOOST_REQUIRE_EQUAL("one list", result); |
0 | 242 } |
243 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
244 BOOST_AUTO_TEST_CASE(betweenLeft) |
0 | 245 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
246 std::string value = " space at left"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
247 std::string result = util::strip(value); |
0 | 248 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
249 BOOST_REQUIRE_EQUAL("space at left", result); |
0 | 250 } |
251 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
252 BOOST_AUTO_TEST_CASE(betweenRight) |
0 | 253 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
254 std::string value = "space at right "; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
255 std::string result = util::strip(value); |
0 | 256 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
257 BOOST_REQUIRE_EQUAL("space at right", result); |
0 | 258 } |
259 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
260 BOOST_AUTO_TEST_CASE(betweenBoth) |
0 | 261 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
262 std::string value = " space at both "; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
263 std::string result = util::strip(value); |
0 | 264 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
265 BOOST_REQUIRE_EQUAL("space at both", result); |
0 | 266 } |
267 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
268 BOOST_AUTO_TEST_CASE(empty) |
0 | 269 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
270 std::string value = " "; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
271 std::string result = util::strip(value); |
0 | 272 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
273 BOOST_REQUIRE_EQUAL("", result); |
514
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
274 } |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
275 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
276 BOOST_AUTO_TEST_SUITE_END() |
0 | 277 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
278 /* |
0 | 279 * util::join function |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
280 * -------------------------------------------------------- |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
281 */ |
0 | 282 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
283 BOOST_AUTO_TEST_SUITE(join) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
284 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
285 BOOST_AUTO_TEST_CASE(empty) |
0 | 286 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
287 std::string expected = ""; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
288 std::string result = util::join<int>({}); |
0 | 289 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
290 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 291 } |
292 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
293 BOOST_AUTO_TEST_CASE(one) |
0 | 294 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
295 std::string expected = "1"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
296 std::string result = util::join({1}); |
0 | 297 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
298 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 299 } |
300 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
301 BOOST_AUTO_TEST_CASE(two) |
0 | 302 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
303 std::string expected = "1:2"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
304 std::string result = util::join({1, 2}); |
0 | 305 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
306 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 307 } |
308 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
309 BOOST_AUTO_TEST_CASE(delimiterString) |
0 | 310 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
311 std::string expected = "1;;2;;3"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
312 std::string result = util::join({1, 2, 3}, ";;"); |
0 | 313 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
314 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 315 } |
316 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
317 BOOST_AUTO_TEST_CASE(delimiterChar) |
0 | 318 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
319 std::string expected = "1@2@3@4"; |
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
320 std::string result = util::join({1, 2, 3, 4}, '@'); |
0 | 321 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
322 BOOST_REQUIRE_EQUAL(expected, result); |
0 | 323 } |
324 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
325 BOOST_AUTO_TEST_SUITE_END() |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
326 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
327 /* |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
328 * util::is_identifier function |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
329 * -------------------------------------------------------- |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
330 */ |
0 | 331 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
332 BOOST_AUTO_TEST_SUITE(is_identifier_valid) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
333 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
334 BOOST_AUTO_TEST_CASE(correct) |
0 | 335 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
336 BOOST_REQUIRE(util::is_identifier("localhost")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
337 BOOST_REQUIRE(util::is_identifier("localhost2")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
338 BOOST_REQUIRE(util::is_identifier("localhost2-4_")); |
0 | 339 } |
340 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
341 BOOST_AUTO_TEST_CASE(incorrect) |
0 | 342 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
343 BOOST_REQUIRE(!util::is_identifier("")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
344 BOOST_REQUIRE(!util::is_identifier("localhost with spaces")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
345 BOOST_REQUIRE(!util::is_identifier("localhost*")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
346 BOOST_REQUIRE(!util::is_identifier("&&")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
347 BOOST_REQUIRE(!util::is_identifier("@'")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
348 BOOST_REQUIRE(!util::is_identifier("##")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
349 BOOST_REQUIRE(!util::is_identifier("===++")); |
0 | 350 } |
351 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
352 BOOST_AUTO_TEST_SUITE_END() |
0 | 353 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
354 /* |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
355 * util::is_boolean function |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
356 * -------------------------------------------------------- |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
357 */ |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
358 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
359 BOOST_AUTO_TEST_SUITE(is_boolean) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
360 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
361 BOOST_AUTO_TEST_CASE(correct) |
0 | 362 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
363 // true |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
364 BOOST_REQUIRE(util::is_boolean("true")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
365 BOOST_REQUIRE(util::is_boolean("True")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
366 BOOST_REQUIRE(util::is_boolean("TRUE")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
367 BOOST_REQUIRE(util::is_boolean("TruE")); |
0 | 368 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
369 // yes |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
370 BOOST_REQUIRE(util::is_boolean("yes")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
371 BOOST_REQUIRE(util::is_boolean("Yes")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
372 BOOST_REQUIRE(util::is_boolean("YES")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
373 BOOST_REQUIRE(util::is_boolean("YeS")); |
0 | 374 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
375 // on |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
376 BOOST_REQUIRE(util::is_boolean("on")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
377 BOOST_REQUIRE(util::is_boolean("On")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
378 BOOST_REQUIRE(util::is_boolean("oN")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
379 BOOST_REQUIRE(util::is_boolean("ON")); |
0 | 380 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
381 // 1 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
382 BOOST_REQUIRE(util::is_boolean("1")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
383 } |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
384 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
385 BOOST_AUTO_TEST_CASE(incorrect) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
386 { |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
387 BOOST_REQUIRE(!util::is_boolean("false")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
388 BOOST_REQUIRE(!util::is_boolean("lol")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
389 BOOST_REQUIRE(!util::is_boolean("")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
390 BOOST_REQUIRE(!util::is_boolean("0")); |
0 | 391 } |
392 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
393 BOOST_AUTO_TEST_SUITE_END() |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
394 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
395 /* |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
396 * util::is_number function |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
397 * -------------------------------------------------------- |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
398 */ |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
399 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
400 BOOST_AUTO_TEST_SUITE(is_number) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
401 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
402 BOOST_AUTO_TEST_CASE(correct) |
0 | 403 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
404 BOOST_REQUIRE(util::is_number("123")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
405 BOOST_REQUIRE(util::is_number("-123")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
406 BOOST_REQUIRE(util::is_number("123.67")); |
0 | 407 } |
408 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
409 BOOST_AUTO_TEST_CASE(incorrect) |
0 | 410 { |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
411 BOOST_REQUIRE(!util::is_number("lol")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
412 BOOST_REQUIRE(!util::is_number("this is not a number")); |
0 | 413 } |
414 | |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
415 BOOST_AUTO_TEST_SUITE_END() |
0 | 416 |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
417 /* |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
418 * util::to_number function |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
419 * ------------------------------------------------------------------ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
420 */ |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
421 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
422 BOOST_AUTO_TEST_SUITE(to_number) |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
423 |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
424 BOOST_AUTO_TEST_CASE(correct) |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
425 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
426 /* unsigned */ |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
427 BOOST_REQUIRE_EQUAL(50u, util::to_number<std::uint8_t>("50")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
428 BOOST_REQUIRE_EQUAL(5000u, util::to_number<std::uint16_t>("5000")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
429 BOOST_REQUIRE_EQUAL(50000u, util::to_number<std::uint32_t>("50000")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
430 BOOST_REQUIRE_EQUAL(500000u, util::to_number<std::uint64_t>("500000")); |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
431 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
432 /* signed */ |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
433 BOOST_REQUIRE_EQUAL(-50, util::to_number<std::int8_t>("-50")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
434 BOOST_REQUIRE_EQUAL(-500, util::to_number<std::int16_t>("-500")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
435 BOOST_REQUIRE_EQUAL(-5000, util::to_number<std::int32_t>("-5000")); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
436 BOOST_REQUIRE_EQUAL(-50000, util::to_number<std::int64_t>("-50000")); |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
437 } |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
438 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
439 BOOST_AUTO_TEST_CASE(incorrect) |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
440 { |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
441 /* unsigned */ |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
442 BOOST_REQUIRE_THROW(util::to_number<std::uint8_t>("300"), std::out_of_range); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
443 BOOST_REQUIRE_THROW(util::to_number<std::uint16_t>("80000"), std::out_of_range); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
444 BOOST_REQUIRE_THROW(util::to_number<std::uint8_t>("-125"), std::out_of_range); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
445 BOOST_REQUIRE_THROW(util::to_number<std::uint16_t>("-25000"), std::out_of_range); |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
446 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
447 /* signed */ |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
448 BOOST_REQUIRE_THROW(util::to_number<std::int8_t>("300"), std::out_of_range); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
449 BOOST_REQUIRE_THROW(util::to_number<std::int16_t>("80000"), std::out_of_range); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
450 BOOST_REQUIRE_THROW(util::to_number<std::int8_t>("-300"), std::out_of_range); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
451 BOOST_REQUIRE_THROW(util::to_number<std::int16_t>("-80000"), std::out_of_range); |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
452 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
453 /* not numbers */ |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
454 BOOST_REQUIRE_THROW(util::to_number<std::uint8_t>("nonono"), std::invalid_argument); |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
455 |
207
6635b9187d71
Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents:
119
diff
changeset
|
456 /* custom ranges */ |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
457 BOOST_REQUIRE_THROW(util::to_number<std::uint8_t>("50", 0, 10), std::out_of_range); |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
458 BOOST_REQUIRE_THROW(util::to_number<std::int8_t>("-50", -10, 10), std::out_of_range); |
114
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
459 } |
8cbbce7b4327
Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents:
95
diff
changeset
|
460 |
488
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
461 BOOST_AUTO_TEST_SUITE_END() |
7e273b7f4f92
Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents:
394
diff
changeset
|
462 |
514
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
463 /* |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
464 * util::fs::find function (name) |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
465 * ------------------------------------------------------------------ |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
466 */ |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
467 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
468 BOOST_AUTO_TEST_SUITE(fs_find_name) |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
469 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
470 BOOST_AUTO_TEST_CASE(not_recursive) |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
471 { |
518
b557017ad3f0
Tests: unify test files for directory/file tests
David Demelier <markand@malikania.fr>
parents:
514
diff
changeset
|
472 auto file1 = util::fs::find(TESTS_BINARY_DIR "/root", "file-1.txt", false); |
b557017ad3f0
Tests: unify test files for directory/file tests
David Demelier <markand@malikania.fr>
parents:
514
diff
changeset
|
473 auto file2 = util::fs::find(TESTS_BINARY_DIR "/root", "file-2.txt", false); |
514
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
474 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
475 BOOST_TEST(file1.find("file-1.txt") != std::string::npos); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
476 BOOST_TEST(file2.empty()); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
477 } |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
478 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
479 BOOST_AUTO_TEST_CASE(recursive) |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
480 { |
518
b557017ad3f0
Tests: unify test files for directory/file tests
David Demelier <markand@malikania.fr>
parents:
514
diff
changeset
|
481 auto file1 = util::fs::find(TESTS_BINARY_DIR "/root", "file-1.txt", true); |
b557017ad3f0
Tests: unify test files for directory/file tests
David Demelier <markand@malikania.fr>
parents:
514
diff
changeset
|
482 auto file2 = util::fs::find(TESTS_BINARY_DIR "/root", "file-2.txt", true); |
514
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
483 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
484 BOOST_TEST(file1.find("file-1.txt") != std::string::npos); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
485 BOOST_TEST(file2.find("file-2.txt") != std::string::npos); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
486 } |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
487 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
488 BOOST_AUTO_TEST_SUITE_END() |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
489 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
490 /* |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
491 * util::fs::find function (regex) |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
492 * ------------------------------------------------------------------ |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
493 */ |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
494 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
495 BOOST_AUTO_TEST_SUITE(fs_find_regex) |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
496 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
497 BOOST_AUTO_TEST_CASE(not_recursive) |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
498 { |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
499 const std::regex regex("file-[12]\\.txt"); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
500 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
501 auto file = util::fs::find(TESTS_BINARY_DIR "/root", regex, false); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
502 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
503 BOOST_TEST(file.find("file-1.txt") != std::string::npos); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
504 } |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
505 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
506 BOOST_AUTO_TEST_CASE(recursive) |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
507 { |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
508 const std::regex regex("file-[12]\\.txt"); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
509 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
510 auto file = util::fs::find(TESTS_BINARY_DIR "/root/level-a", regex, true); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
511 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
512 BOOST_TEST(file.find("file-2.txt") != std::string::npos); |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
513 } |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
514 |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
515 BOOST_AUTO_TEST_SUITE_END() |
16b9ebfd3f08
Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents:
488
diff
changeset
|
516 |
0 | 517 } // !irccd |