]>
git.proxmox.com Git - ceph.git/blob - ceph/src/Beast/test/core/static_string.cpp
2 // Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 // Test that header file is self-contained.
9 #include <beast/core/static_string.hpp>
11 #include <beast/unit_test/suite.hpp>
15 class static_string_test
: public beast::unit_test::suite
20 using str1
= static_string
<1>;
21 using str2
= static_string
<2>;
24 BEAST_EXPECT(s1
== "");
25 BEAST_EXPECT(s1
.empty());
26 BEAST_EXPECT(s1
.size() == 0);
27 BEAST_EXPECT(s1
.max_size() == 1);
28 BEAST_EXPECT(s1
.capacity() == 1);
29 BEAST_EXPECT(s1
.begin() == s1
.end());
30 BEAST_EXPECT(s1
.cbegin() == s1
.cend());
31 BEAST_EXPECT(s1
.rbegin() == s1
.rend());
32 BEAST_EXPECT(s1
.crbegin() == s1
.crend());
35 BEAST_EXPECT(s1
.at(0) == 0);
38 catch(std::exception
const&)
42 BEAST_EXPECT(s1
.data()[0] == 0);
43 BEAST_EXPECT(*s1
.c_str() == 0);
44 BEAST_EXPECT(std::distance(s1
.begin(), s1
.end()) == 0);
45 BEAST_EXPECT(std::distance(s1
.cbegin(), s1
.cend()) == 0);
46 BEAST_EXPECT(std::distance(s1
.rbegin(), s1
.rend()) == 0);
47 BEAST_EXPECT(std::distance(s1
.crbegin(), s1
.crend()) == 0);
48 BEAST_EXPECT(s1
.compare(s1
) == 0);
49 BEAST_EXPECT(s1
.to_string() == std::string
{});
53 BEAST_EXPECT(s1
== "");
54 BEAST_EXPECT(s1
.empty());
55 BEAST_EXPECT(s1
.size() == 0);
56 BEAST_EXPECT(s1
.max_size() == 1);
57 BEAST_EXPECT(s1
.capacity() == 1);
58 BEAST_EXPECT(s1
.begin() == s1
.end());
59 BEAST_EXPECT(s1
.cbegin() == s1
.cend());
60 BEAST_EXPECT(s1
.rbegin() == s1
.rend());
61 BEAST_EXPECT(s1
.crbegin() == s1
.crend());
64 BEAST_EXPECT(s1
.at(0) == 0);
67 catch(std::exception
const&)
71 BEAST_EXPECT(s1
.data()[0] == 0);
72 BEAST_EXPECT(*s1
.c_str() == 0);
73 BEAST_EXPECT(std::distance(s1
.begin(), s1
.end()) == 0);
74 BEAST_EXPECT(std::distance(s1
.cbegin(), s1
.cend()) == 0);
75 BEAST_EXPECT(std::distance(s1
.rbegin(), s1
.rend()) == 0);
76 BEAST_EXPECT(std::distance(s1
.crbegin(), s1
.crend()) == 0);
77 BEAST_EXPECT(s1
.compare(s1
) == 0);
78 BEAST_EXPECT(s1
.to_string() == std::string
{});
83 BEAST_EXPECT(s2
== "x");
84 BEAST_EXPECT(s2
[0] == 'x');
85 BEAST_EXPECT(s2
.at(0) == 'x');
86 BEAST_EXPECT(s2
.front() == 'x');
87 BEAST_EXPECT(s2
.back() == 'x');
89 BEAST_EXPECT(s3
== "x");
90 BEAST_EXPECT(s3
[0] == 'x');
91 BEAST_EXPECT(s3
.at(0) == 'x');
92 BEAST_EXPECT(s3
.front() == 'x');
93 BEAST_EXPECT(s3
.back() == 'x');
95 BEAST_EXPECT(s2
== "y");
96 BEAST_EXPECT(s3
== "x");
98 BEAST_EXPECT(s1
== "y");
100 BEAST_EXPECT(s1
.empty());
101 BEAST_EXPECT(s1
.size() == 0);
106 BEAST_EXPECT(s2
== "x");
109 BEAST_EXPECT(s3
== "x");
111 BEAST_EXPECT(s1
.size() == 2);
112 BEAST_EXPECT(s1
[0] == 'x');
113 BEAST_EXPECT(s1
[1] == 'y');
114 BEAST_EXPECT(s1
.at(0) == 'x');
115 BEAST_EXPECT(s1
.at(1) == 'y');
116 BEAST_EXPECT(s1
.front() == 'x');
117 BEAST_EXPECT(s1
.back() == 'y');
119 BEAST_EXPECT(s4
[0] == 'x');
120 BEAST_EXPECT(s4
[1] == 'y');
121 BEAST_EXPECT(s4
.at(0) == 'x');
122 BEAST_EXPECT(s4
.at(1) == 'y');
123 BEAST_EXPECT(s4
.front() == 'x');
124 BEAST_EXPECT(s4
.back() == 'y');
130 catch(std::exception
const&)
139 catch(std::exception
const&)
153 catch(std::length_error
const&)
163 using str1
= static_string
<1>;
164 using str2
= static_string
<2>;
170 BEAST_EXPECT(s1
.compare(s2
) < 0);
171 BEAST_EXPECT(s2
.compare(s1
) > 0);
172 BEAST_EXPECT(s1
< "10");
173 BEAST_EXPECT(s2
> "1");
174 BEAST_EXPECT("10" > s1
);
175 BEAST_EXPECT("1" < s2
);
176 BEAST_EXPECT(s1
< "20");
177 BEAST_EXPECT(s2
> "1");
178 BEAST_EXPECT(s2
> "2");
183 BEAST_EXPECT(s1
== s2
);
184 BEAST_EXPECT(s1
<= s2
);
185 BEAST_EXPECT(s1
>= s2
);
186 BEAST_EXPECT(! (s1
< s2
));
187 BEAST_EXPECT(! (s1
> s2
));
188 BEAST_EXPECT(! (s1
!= s2
));
193 BEAST_EXPECT(s1
== s2
);
194 BEAST_EXPECT(s1
<= s2
);
195 BEAST_EXPECT(s1
>= s2
);
196 BEAST_EXPECT(! (s1
< s2
));
197 BEAST_EXPECT(! (s1
> s2
));
198 BEAST_EXPECT(! (s1
!= s2
));
202 BEAST_EXPECT(s
== "x");
203 BEAST_EXPECT(s
<= "x");
204 BEAST_EXPECT(s
>= "x");
205 BEAST_EXPECT(! (s
< "x"));
206 BEAST_EXPECT(! (s
> "x"));
207 BEAST_EXPECT(! (s
!= "x"));
208 BEAST_EXPECT("x" == s
);
209 BEAST_EXPECT("x" <= s
);
210 BEAST_EXPECT("x" >= s
);
211 BEAST_EXPECT(! ("x" < s
));
212 BEAST_EXPECT(! ("x" > s
));
213 BEAST_EXPECT(! ("x" != s
));
217 BEAST_EXPECT(s
<= "y");
218 BEAST_EXPECT(s
< "y");
219 BEAST_EXPECT(s
!= "y");
220 BEAST_EXPECT(! (s
== "y"));
221 BEAST_EXPECT(! (s
>= "y"));
222 BEAST_EXPECT(! (s
> "x"));
223 BEAST_EXPECT("y" >= s
);
224 BEAST_EXPECT("y" > s
);
225 BEAST_EXPECT("y" != s
);
226 BEAST_EXPECT(! ("y" == s
));
227 BEAST_EXPECT(! ("y" <= s
));
228 BEAST_EXPECT(! ("y" < s
));
233 BEAST_EXPECT(s1
<= s2
);
234 BEAST_EXPECT(s1
< s2
);
235 BEAST_EXPECT(s1
!= s2
);
236 BEAST_EXPECT(! (s1
== s2
));
237 BEAST_EXPECT(! (s1
>= s2
));
238 BEAST_EXPECT(! (s1
> s2
));
243 BEAST_EXPECT(s1
< s2
);
244 BEAST_EXPECT(s2
> s1
);
249 BEAST_EXPECT(s1
< s2
);
250 BEAST_EXPECT(s2
> s1
);
261 BEAST_DEFINE_TESTSUITE(static_string
,core
,beast
);