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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test util functions
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
394
c6fbb6e0e06d Happy new year!
David Demelier <markand@malikania.fr>
parents: 207
diff changeset
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 namespace irccd {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
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 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
105 util::subst params;
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
117 util::subst params;
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
130 util::subst params;
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
242 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
277
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
278 /*
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
291 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
299 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
315 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
350 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
391 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
407 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
413 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
517 } // !irccd