annotate tests/util/main.cpp @ 532:c59b87f66b67

CMake: share same resources, closes #725
author David Demelier <markand@malikania.fr>
date Thu, 16 Nov 2017 23:59:37 +0100
parents d71c59eb04c3
children
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>
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
25 #include <irccd/fs_util.hpp>
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
26 #include <irccd/string_util.hpp>
95
1125d90b3b44 Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
27 #include <irccd/system.hpp>
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
29 namespace std {
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 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
32 {
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
33 for (const auto& s : list)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
34 out << s << " ";
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 return out;
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
37 }
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
38
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
39 } // !std
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
40
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 namespace irccd {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
43 BOOST_AUTO_TEST_SUITE(format)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
44
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
45 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
46 * string_util::format function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
47 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
48 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
49
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
50 BOOST_AUTO_TEST_CASE(nothing)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
52 std::string expected = "hello world!";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
53 std::string result = string_util::format("hello world!");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
55 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
57
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
58 BOOST_AUTO_TEST_CASE(escape)
118
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
59 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
60 string_util::subst params;
118
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
61
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
62 params.keywords.emplace("target", "hello");
118
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
63
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
64 BOOST_REQUIRE_EQUAL("$@#", string_util::format("$@#"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
65 BOOST_REQUIRE_EQUAL(" $ @ # ", string_util::format(" $ @ # "));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
66 BOOST_REQUIRE_EQUAL("#", string_util::format("#"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
67 BOOST_REQUIRE_EQUAL(" # ", string_util::format(" # "));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
68 BOOST_REQUIRE_EQUAL("#@", string_util::format("#@"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
69 BOOST_REQUIRE_EQUAL("##", string_util::format("##"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
70 BOOST_REQUIRE_EQUAL("#!", string_util::format("#!"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
71 BOOST_REQUIRE_EQUAL("#{target}", string_util::format("##{target}"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
72 BOOST_REQUIRE_EQUAL("@hello", string_util::format("@#{target}", params));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
73 BOOST_REQUIRE_EQUAL("hello#", string_util::format("#{target}#", params));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
74 BOOST_REQUIRE_THROW(string_util::format("#{failure"), std::exception);
118
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
75 }
2a63c8ec45cd Irccd: fix some errors in util::format, #408
David Demelier <markand@malikania.fr>
parents: 114
diff changeset
76
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
77 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
78 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
79 string_util::subst params;
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
80
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
81 params.flags &= ~(string_util::subst_flags::date);
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
82
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
83 BOOST_REQUIRE_EQUAL("%H:%M", string_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
84 }
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 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
87 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
88 string_util::subst params;
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
89
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
90 params.keywords.emplace("target", "hello");
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
91 params.flags &= ~(string_util::subst_flags::keywords);
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
92
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
93 BOOST_REQUIRE_EQUAL("#{target}", string_util::format("#{target}", params));
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
94 }
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 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
97 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
98 string_util::subst params;
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
99
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
100 params.flags &= ~(string_util::subst_flags::env);
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
101
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
102 BOOST_REQUIRE_EQUAL("${HOME}", string_util::format("${HOME}", params));
119
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
103 }
b39573fc066e Irccd: improve util::format to disable some features, #408
David Demelier <markand@malikania.fr>
parents: 118
diff changeset
104
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
105 BOOST_AUTO_TEST_CASE(keyword_simple)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
107 string_util::subst params;
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 params.keywords.insert({"target", "irccd"});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
110
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
111 std::string expected = "hello irccd!";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
112 std::string result = string_util::format("hello #{target}!", params);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
114 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 }
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 BOOST_AUTO_TEST_CASE(keyword_multiple)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
119 string_util::subst params;
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
121 params.keywords.insert({"target", "irccd"});
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
122 params.keywords.insert({"source", "nightmare"});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
123
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
124 std::string expected = "hello irccd from nightmare!";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
125 std::string result = string_util::format("hello #{target} from #{source}!", params);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
126
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
127 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 }
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 BOOST_AUTO_TEST_CASE(keyword_adj_twice)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
132 string_util::subst params;
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 params.keywords.insert({"target", "irccd"});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
135
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
136 std::string expected = "hello irccdirccd!";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
137 std::string result = string_util::format("hello #{target}#{target}!", params);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
138
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
139 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
142 BOOST_AUTO_TEST_CASE(keyword_missing)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
144 std::string expected = "hello !";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
145 std::string result = string_util::format("hello #{target}!");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
146
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
147 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
149
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
150 BOOST_AUTO_TEST_CASE(env_simple)
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 std::string home = sys::env("HOME");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
153
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
154 if (!home.empty()) {
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
155 std::string expected = "my home is " + home;
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
156 std::string result = string_util::format("my home is ${HOME}");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
157
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
158 BOOST_REQUIRE_EQUAL(expected, result);
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
159 }
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
161
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
162 BOOST_AUTO_TEST_CASE(env_missing)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
164 std::string expected = "value is ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
165 std::string result = string_util::format("value is ${HOPE_THIS_VAR_NOT_EXIST}");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
166
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
167 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
169
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
170 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
171
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
172 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
173 * string_util::split function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
174 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
175 */
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 BOOST_AUTO_TEST_SUITE(split)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
178
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
179 using list = std::vector<std::string>;
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
180
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
181 BOOST_AUTO_TEST_CASE(simple)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
183 list expected { "a", "b" };
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
184 list result = string_util::split("a;b", ";");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
185
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
186 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 }
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 BOOST_AUTO_TEST_CASE(cut)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
191 list expected { "msg", "#staff", "foo bar baz" };
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
192 list result = string_util::split("msg;#staff;foo bar baz", ";", 3);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
193
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
194 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
196
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
197 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
198
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
199 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
200 * string_util::strip function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
201 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
202 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
203
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
204 BOOST_AUTO_TEST_SUITE(strip)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
205
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
206 BOOST_AUTO_TEST_CASE(left)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
208 std::string value = " 123";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
209 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
210
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
211 BOOST_REQUIRE_EQUAL("123", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
213
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
214 BOOST_AUTO_TEST_CASE(right)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
216 std::string value = "123 ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
217 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
218
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
219 BOOST_REQUIRE_EQUAL("123", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
221
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
222 BOOST_AUTO_TEST_CASE(both)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
224 std::string value = " 123 ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
225 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
226
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
227 BOOST_REQUIRE_EQUAL("123", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
229
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
230 BOOST_AUTO_TEST_CASE(none)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
232 std::string value = "without";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
233 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
234
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
235 BOOST_REQUIRE_EQUAL("without", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
237
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
238 BOOST_AUTO_TEST_CASE(betweenEmpty)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
240 std::string value = "one list";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
241 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
242
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
243 BOOST_REQUIRE_EQUAL("one list", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
245
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
246 BOOST_AUTO_TEST_CASE(betweenLeft)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
248 std::string value = " space at left";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
249 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
250
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
251 BOOST_REQUIRE_EQUAL("space at left", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
253
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
254 BOOST_AUTO_TEST_CASE(betweenRight)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
255 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
256 std::string value = "space at right ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
257 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
258
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
259 BOOST_REQUIRE_EQUAL("space at right", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
260 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
261
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
262 BOOST_AUTO_TEST_CASE(betweenBoth)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
264 std::string value = " space at both ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
265 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
266
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
267 BOOST_REQUIRE_EQUAL("space at both", result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
269
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
270 BOOST_AUTO_TEST_CASE(empty)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
272 std::string value = " ";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
273 std::string result = string_util::strip(value);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
274
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
275 BOOST_REQUIRE_EQUAL("", result);
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
276 }
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
277
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
278 BOOST_AUTO_TEST_SUITE_END()
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
279
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
280 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
281 * string_util::join function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
282 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
283 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
284
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
285 BOOST_AUTO_TEST_SUITE(join)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
286
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
287 BOOST_AUTO_TEST_CASE(empty)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
289 std::string expected = "";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
290 std::string result = string_util::join<int>({});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
291
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
292 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
293 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
294
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
295 BOOST_AUTO_TEST_CASE(one)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
297 std::string expected = "1";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
298 std::string result = string_util::join({1});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
299
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
300 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
302
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
303 BOOST_AUTO_TEST_CASE(two)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
304 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
305 std::string expected = "1:2";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
306 std::string result = string_util::join({1, 2});
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
307
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
308 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
309 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
310
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
311 BOOST_AUTO_TEST_CASE(delimiterString)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
313 std::string expected = "1;;2;;3";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
314 std::string result = string_util::join({1, 2, 3}, ";;");
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
315
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
316 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
317 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
318
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
319 BOOST_AUTO_TEST_CASE(delimiterChar)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
320 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
321 std::string expected = "1@2@3@4";
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
322 std::string result = string_util::join({1, 2, 3, 4}, '@');
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
323
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
324 BOOST_REQUIRE_EQUAL(expected, result);
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
325 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
326
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
327 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
328
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
329 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
330 * string_util::is_identifier function
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
331 * --------------------------------------------------------
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
332 */
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
333
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
334 BOOST_AUTO_TEST_SUITE(is_identifier_valid)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
335
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
336 BOOST_AUTO_TEST_CASE(correct)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
337 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
338 BOOST_REQUIRE(string_util::is_identifier("localhost"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
339 BOOST_REQUIRE(string_util::is_identifier("localhost2"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
340 BOOST_REQUIRE(string_util::is_identifier("localhost2-4_"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
341 }
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_AUTO_TEST_CASE(incorrect)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
345 BOOST_REQUIRE(!string_util::is_identifier(""));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
346 BOOST_REQUIRE(!string_util::is_identifier("localhost with spaces"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
347 BOOST_REQUIRE(!string_util::is_identifier("localhost*"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
348 BOOST_REQUIRE(!string_util::is_identifier("&&"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
349 BOOST_REQUIRE(!string_util::is_identifier("@'"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
350 BOOST_REQUIRE(!string_util::is_identifier("##"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
351 BOOST_REQUIRE(!string_util::is_identifier("===++"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
352 }
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 BOOST_AUTO_TEST_SUITE_END()
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
355
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
356 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
357 * string_util::is_boolean function
488
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 */
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_SUITE(is_boolean)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
362
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
363 BOOST_AUTO_TEST_CASE(correct)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
364 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
365 // true
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
366 BOOST_REQUIRE(string_util::is_boolean("true"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
367 BOOST_REQUIRE(string_util::is_boolean("True"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
368 BOOST_REQUIRE(string_util::is_boolean("TRUE"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
369 BOOST_REQUIRE(string_util::is_boolean("TruE"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
370
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
371 // yes
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
372 BOOST_REQUIRE(string_util::is_boolean("yes"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
373 BOOST_REQUIRE(string_util::is_boolean("Yes"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
374 BOOST_REQUIRE(string_util::is_boolean("YES"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
375 BOOST_REQUIRE(string_util::is_boolean("YeS"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
376
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
377 // on
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
378 BOOST_REQUIRE(string_util::is_boolean("on"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
379 BOOST_REQUIRE(string_util::is_boolean("On"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
380 BOOST_REQUIRE(string_util::is_boolean("oN"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
381 BOOST_REQUIRE(string_util::is_boolean("ON"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
382
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 119
diff changeset
383 // 1
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
384 BOOST_REQUIRE(string_util::is_boolean("1"));
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
385 }
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_AUTO_TEST_CASE(incorrect)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
388 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
389 BOOST_REQUIRE(!string_util::is_boolean("false"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
390 BOOST_REQUIRE(!string_util::is_boolean("lol"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
391 BOOST_REQUIRE(!string_util::is_boolean(""));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
392 BOOST_REQUIRE(!string_util::is_boolean("0"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
393 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
394
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
395 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
396
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
397 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
398 * string_util::is_number function
488
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 */
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_SUITE(is_number)
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
403
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
404 BOOST_AUTO_TEST_CASE(correct)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
405 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
406 BOOST_REQUIRE(string_util::is_number("123"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
407 BOOST_REQUIRE(string_util::is_number("-123"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
408 BOOST_REQUIRE(string_util::is_number("123.67"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
409 }
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_AUTO_TEST_CASE(incorrect)
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
412 {
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
413 BOOST_REQUIRE(!string_util::is_number("lol"));
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
414 BOOST_REQUIRE(!string_util::is_number("this is not a number"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
415 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
416
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
417 BOOST_AUTO_TEST_SUITE_END()
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
418
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
419 /*
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
420 * string_util::to_int function
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
421 * ------------------------------------------------------------------
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
422 */
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
423
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
424 BOOST_AUTO_TEST_SUITE(to_int)
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
425
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
426 BOOST_AUTO_TEST_CASE(signed_to_int)
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
427 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
428 BOOST_TEST(string_util::to_int("10") == 10);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
429 BOOST_TEST(string_util::to_int<std::int8_t>("-10") == -10);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
430 BOOST_TEST(string_util::to_int<std::int8_t>("10") == 10);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
431 BOOST_TEST(string_util::to_int<std::int16_t>("-1000") == -1000);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
432 BOOST_TEST(string_util::to_int<std::int16_t>("1000") == 1000);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
433 BOOST_TEST(string_util::to_int<std::int32_t>("-1000") == -1000);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
434 BOOST_TEST(string_util::to_int<std::int32_t>("1000") == 1000);
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
435 }
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
436
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
437 BOOST_AUTO_TEST_CASE(signed_to_int64)
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
438 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
439 BOOST_TEST(string_util::to_int<std::int64_t>("-9223372036854775807") == -9223372036854775807LL);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
440 BOOST_TEST(string_util::to_int<std::int64_t>("9223372036854775807") == 9223372036854775807LL);
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
441 }
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
442
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
443 BOOST_AUTO_TEST_CASE(unsigned_to_uint)
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
444 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
445 BOOST_TEST(string_util::to_uint("10") == 10U);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
446 BOOST_TEST(string_util::to_uint<std::uint8_t>("10") == 10U);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
447 BOOST_TEST(string_util::to_uint<std::uint16_t>("1000") == 1000U);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
448 BOOST_TEST(string_util::to_uint<std::uint32_t>("1000") == 1000U);
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
449 }
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
450
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
451 BOOST_AUTO_TEST_CASE(unsigned_to_uint64)
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
452 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
453 BOOST_TEST(string_util::to_uint<std::uint64_t>("18446744073709551615") == 18446744073709551615ULL);
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
454 }
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
455
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
456 BOOST_AUTO_TEST_SUITE_END()
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
457
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
458 BOOST_AUTO_TEST_SUITE(errors)
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
459
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
460 BOOST_AUTO_TEST_CASE(invalid_argument)
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
461 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
462 BOOST_REQUIRE_THROW(string_util::to_int("plopation"), std::invalid_argument);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
463 BOOST_REQUIRE_THROW(string_util::to_uint("plopation"), std::invalid_argument);
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
464 }
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
465
530
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
466 BOOST_AUTO_TEST_CASE(out_of_range)
7cd7b2cdf923 Common: import to_int / to_uint
David Demelier <markand@malikania.fr>
parents: 521
diff changeset
467 {
531
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
468 BOOST_REQUIRE_THROW(string_util::to_int<std::int8_t>("1000"), std::out_of_range);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
469 BOOST_REQUIRE_THROW(string_util::to_int<std::int8_t>("-1000"), std::out_of_range);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
470 BOOST_REQUIRE_THROW(string_util::to_uint<std::uint8_t>("1000"), std::out_of_range);
d71c59eb04c3 Common: add string_util namespace
David Demelier <markand@malikania.fr>
parents: 530
diff changeset
471 BOOST_REQUIRE_THROW(string_util::to_uint<std::uint8_t>("-1000"), std::out_of_range);
114
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
472 }
8cbbce7b4327 Irccd: add util::toNumber function, #489
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
473
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
474 BOOST_AUTO_TEST_SUITE_END()
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 394
diff changeset
475
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
476 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
477 * fs_util::find function (name)
514
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 */
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
480
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
481 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
482
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
483 BOOST_AUTO_TEST_CASE(not_recursive)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
484 {
532
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
485 auto file1 = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", "file-1.txt", false);
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
486 auto file2 = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", "file-2.txt", false);
514
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_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
489 BOOST_TEST(file2.empty());
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
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
492 BOOST_AUTO_TEST_CASE(recursive)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
493 {
532
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
494 auto file1 = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", "file-1.txt", true);
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
495 auto file2 = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", "file-2.txt", true);
514
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_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
498 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
499 }
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 BOOST_AUTO_TEST_SUITE_END()
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 /*
521
e03521cf207b Common: split util.hpp into more appropriate files, closes #721
David Demelier <markand@malikania.fr>
parents: 518
diff changeset
504 * fs_util::find function (regex)
514
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 */
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 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
509
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
510 BOOST_AUTO_TEST_CASE(not_recursive)
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 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
513
532
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
514 auto file = fs_util::find(CMAKE_SOURCE_DIR "/tests/root", regex, false);
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
515
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
516 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
517 }
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
518
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
519 BOOST_AUTO_TEST_CASE(recursive)
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
520 {
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
521 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
522
532
c59b87f66b67 CMake: share same resources, closes #725
David Demelier <markand@malikania.fr>
parents: 531
diff changeset
523 auto file = fs_util::find(CMAKE_SOURCE_DIR "/tests/root/level-1", regex, true);
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
524
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
525 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
526 }
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
527
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
528 BOOST_AUTO_TEST_SUITE_END()
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
529
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
530 } // !irccd