24 std::uint8_t const data[] = {0xa8, 0xa1, 0x38, 0x45, 0x23, 0xec, 0xe4, 0x23, 0x71, 0x6d, 0x2a,
25 0x18, 0xb4, 0x70, 0xcb, 0xf5, 0xac, 0x2d, 0x89, 0x4d, 0x19, 0x9c,
26 0xf0, 0x2c, 0x15, 0xd1, 0xf9, 0x9b, 0x66, 0xd2, 0x30, 0xd3};
29 BEAST_EXPECT(
sane(b0));
30 BEAST_EXPECT(b0.
empty());
33 BEAST_EXPECT(
sane(b1));
34 BEAST_EXPECT(b1.empty());
36 BEAST_EXPECT(
sane(b1));
37 BEAST_EXPECT(!b1.empty());
38 BEAST_EXPECT(b1.size() == 16);
41 BEAST_EXPECT(
sane(b2));
42 BEAST_EXPECT(!b2.empty());
43 BEAST_EXPECT(b2.size() == b1.size());
47 BEAST_EXPECT(
sane(b3));
48 BEAST_EXPECT(!b3.empty());
49 BEAST_EXPECT(b3.size() ==
sizeof(
data));
53 BEAST_EXPECT(b0 == b0);
54 BEAST_EXPECT(b0 != b1);
55 BEAST_EXPECT(b1 == b1);
56 BEAST_EXPECT(b1 != b2);
57 BEAST_EXPECT(b2 != b3);
61 testcase(
"Copy Construction / Assignment");
64 BEAST_EXPECT(x == b0);
65 BEAST_EXPECT(
sane(x));
67 BEAST_EXPECT(y == b1);
68 BEAST_EXPECT(
sane(y));
70 BEAST_EXPECT(x == b2);
71 BEAST_EXPECT(
sane(x));
74 BEAST_EXPECT(
sane(x));
76 BEAST_EXPECT(y == b3);
77 BEAST_EXPECT(
sane(y));
79 BEAST_EXPECT(x == b0);
80 BEAST_EXPECT(
sane(x));
82#pragma clang diagnostic push
83#pragma clang diagnostic ignored "-Wself-assign-overloaded"
87 BEAST_EXPECT(x == b0);
88 BEAST_EXPECT(
sane(x));
90 BEAST_EXPECT(y == b3);
91 BEAST_EXPECT(
sane(y));
94#pragma clang diagnostic pop
100 testcase(
"Move Construction / Assignment");
108 BEAST_EXPECT(
sane(x));
109 BEAST_EXPECT(x.
empty());
110 BEAST_EXPECT(
sane(y));
111 BEAST_EXPECT(y.empty());
112 BEAST_EXPECT(x == y);
118 BEAST_EXPECT(
sane(x));
119 BEAST_EXPECT(x.empty());
120 BEAST_EXPECT(
sane(y));
121 BEAST_EXPECT(y == b1);
129 BEAST_EXPECT(
sane(x));
130 BEAST_EXPECT(x.
empty());
131 BEAST_EXPECT(
sane(y));
132 BEAST_EXPECT(y.
empty());
140 BEAST_EXPECT(
sane(x));
141 BEAST_EXPECT(x == b1);
142 BEAST_EXPECT(
sane(y));
143 BEAST_EXPECT(y.empty());
151 BEAST_EXPECT(
sane(x));
152 BEAST_EXPECT(x.empty());
153 BEAST_EXPECT(
sane(y));
154 BEAST_EXPECT(y.
empty());
163 BEAST_EXPECT(
sane(x));
164 BEAST_EXPECT(!x.empty());
165 BEAST_EXPECT(
sane(y));
166 BEAST_EXPECT(y.empty());
169 BEAST_EXPECT(
sane(x));
170 BEAST_EXPECT(!x.empty());
171 BEAST_EXPECT(
sane(z));
172 BEAST_EXPECT(z.empty());
177 testcase(
"Slice Conversion / Construction / Assignment");
180 BEAST_EXPECT(
sane(w));
181 BEAST_EXPECT(w == b0);
184 BEAST_EXPECT(
sane(x));
185 BEAST_EXPECT(x == b1);
188 BEAST_EXPECT(
sane(y));
189 BEAST_EXPECT(y == b2);
192 BEAST_EXPECT(
sane(z));
193 BEAST_EXPECT(z == b3);
196 w =
static_cast<Slice>(b0);
197 BEAST_EXPECT(
sane(w));
198 BEAST_EXPECT(w == b0);
201 w =
static_cast<Slice>(b1);
202 BEAST_EXPECT(
sane(w));
203 BEAST_EXPECT(w == b1);
206 x =
static_cast<Slice>(b2);
207 BEAST_EXPECT(
sane(x));
208 BEAST_EXPECT(x == b2);
211 y =
static_cast<Slice>(z);
212 BEAST_EXPECT(
sane(y));
213 BEAST_EXPECT(y == z);
216 z =
static_cast<Slice>(b0);
217 BEAST_EXPECT(
sane(z));
218 BEAST_EXPECT(z == b0);
222 testcase(
"Allocation, Deallocation and Clearing");
230 BEAST_EXPECT(
sane(x));
231 BEAST_EXPECT(x.size() == i);
232 BEAST_EXPECT((x.data() ==
nullptr) == (i == 0));
236 BEAST_EXPECT(
sane(x));
237 BEAST_EXPECT(x.size() == i + 1);
238 BEAST_EXPECT(x.data() !=
nullptr);
242 BEAST_EXPECT(
sane(x));
243 BEAST_EXPECT(x.size() == 0);
244 BEAST_EXPECT(x.data() ==
nullptr);
248 BEAST_EXPECT(
sane(x));
249 BEAST_EXPECT(x.size() == 0);
250 BEAST_EXPECT(x.data() ==
nullptr);