Skip to content

Commit 72b462d

Browse files
committed
Tests: stream.ops.pass.cpp
1 parent 3c2fba8 commit 72b462d

File tree

1 file changed

+175
-6
lines changed

1 file changed

+175
-6
lines changed

libcxx/test/std/input.output/span.streams/spanstream/inherited.stream.ops.pass.cpp

Lines changed: 175 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ void test() {
5151
// Mode: default (`in` | `out`)
5252
{
5353
SpStream spSt(sp);
54+
55+
assert(spSt);
56+
assert(!spSt.bad());
57+
assert(!spSt.fail());
58+
assert(spSt.good());
5459
assert(spSt.span().size() == 0);
5560

5661
// Read from stream
@@ -67,19 +72,26 @@ void test() {
6772
int i3;
6873
spSt >> i3;
6974

70-
assert(spSt.good());
7175
assert(str1 == CS("zmt"));
7276
assert(i1 == 94);
7377
assert(str2 == CS("hkt"));
7478
assert(i2 == 82);
7579
assert(str3 == CS("pir"));
7680
assert(i3 == 43);
7781

82+
assert(spSt);
83+
assert(!spSt.bad());
84+
assert(!spSt.fail());
85+
assert(spSt.good());
86+
7887
// Write to stream
7988
constexpr std::basic_string_view<CharT, TraitsT> sv1{SV("year 2024")};
8089
spSt << sv1;
8190

8291
assert(spSt.span().size() == sv1.size());
92+
assert(spSt);
93+
assert(!spSt.bad());
94+
assert(!spSt.fail());
8395
assert(spSt.good());
8496

8597
// Read from stream
@@ -93,15 +105,28 @@ void test() {
93105
assert(i4 == 2024);
94106

95107
spSt >> i4;
108+
109+
assert(!spSt);
110+
assert(!spSt.bad());
96111
assert(spSt.fail());
112+
assert(!spSt.good());
113+
97114
spSt.clear();
115+
116+
assert(spSt);
117+
assert(!spSt.bad());
118+
assert(!spSt.fail());
98119
assert(spSt.good());
99120

100121
// Write to stream
101122
spSt << CS("94");
102123
spSt << 84;
103124

125+
assert(spSt);
126+
assert(!spSt.bad());
127+
assert(!spSt.fail());
104128
assert(spSt.good());
129+
105130
assert(spSt.span().size() == sv1.size() + 4);
106131
std::basic_string<CharT, TraitsT> expectedStr1{spSt.span().data(), std::size_t{spSt.span().size()}};
107132
assert(expectedStr1 == CS("year 20249484"));
@@ -113,20 +138,164 @@ void test() {
113138
assert(spSt.span().size() == arrSize);
114139
std::basic_string<CharT, TraitsT> expectedStr2{spSt.span().data(), std::size_t{spSt.span().size()}};
115140
assert(expectedStr2 == CS("year 20249484This string shoul"));
141+
142+
assert(!spSt);
143+
assert(spSt.bad());
116144
assert(spSt.fail());
145+
assert(!spSt.good());
117146
}
147+
#if 0
118148
// Mode: `in`
119149
{
120150
SpStream spSt{sp, std::ios_base::in};
121-
//TODO
122-
(void)spSt;
123-
}
151+
assert(spSt);
152+
assert(spSt.good());
153+
assert(spSt.span().size() == arrSize);
154+
155+
std::basic_string<CharT, TraitsT> expectedStr0{spSt.span().data(), std::size_t{spSt.span().size()}};
156+
std::cout << expectedStr0 << std::endl;
157+
158+
// // Read from stream
159+
// std::basic_string<CharT, TraitsT> str1;
160+
// spSt >> str1;
161+
// int i1;
162+
// spSt >> i1;
163+
// std::basic_string<CharT, TraitsT> str2;
164+
// spSt >> str2;
165+
// int i2;
166+
// spSt >> i2;
167+
// std::basic_string<CharT, TraitsT> str3;
168+
// spSt >> str3;
169+
// int i3;
170+
// spSt >> i3;
171+
172+
// assert(spSt.good());
173+
// assert(str1 == CS("zmt"));
174+
// assert(i1 == 94);
175+
// assert(str2 == CS("hkt"));
176+
// assert(i2 == 82);
177+
// assert(str3 == CS("pir"));
178+
// assert(i3 == 43);
179+
180+
// Write to stream
181+
constexpr std::basic_string_view<CharT, TraitsT> sv1{SV("year 2024")};
182+
spSt << sv1;
183+
184+
std::cout << spSt.span().size() << std::endl;
185+
assert(spSt.span().size() == sv1.size());
186+
assert(spSt.good());
187+
188+
// Read from stream
189+
spSt.seekg(0);
190+
std::basic_string<CharT, TraitsT> str4;
191+
spSt >> str4;
192+
int i4;
193+
spSt >> i4;
194+
195+
assert(str4 == CS("year"));
196+
assert(i4 == 2024);
197+
198+
spSt >> i4;
199+
assert(spSt);
200+
assert(!spSt.bad());
201+
assert(spSt.fail());
202+
assert(!spSt.good());
203+
204+
spSt.clear();
205+
assert(spSt);
206+
assert(!spSt.bad());
207+
assert(!spSt.fail());
208+
assert(spSt.good());
209+
// Write to stream
210+
spSt << CS("94");
211+
spSt << 84;
212+
213+
assert(spSt);
214+
assert(!spSt.bad());
215+
assert(!spSt.fail());
216+
assert(spSt.good()); assert(spSt.span().size() == sv1.size() + 4);
217+
std::basic_string<CharT, TraitsT> expectedStr1{spSt.span().data(), std::size_t{spSt.span().size()}};
218+
assert(expectedStr1 == CS("year 20249484"));
219+
220+
// Write to stream with overflow
221+
constexpr std::basic_string_view<CharT, TraitsT> sv2{
222+
SV("This string should overflow! This string should overflow!")};
223+
spSt << sv2;
224+
assert(spSt.span().size() == arrSize);
225+
std::basic_string<CharT, TraitsT> expectedStr2{spSt.span().data(), std::size_t{spSt.span().size()}};
226+
assert(expectedStr2 == CS("year 20249484This string shoul"));
227+
assert(spSt);
228+
assert(!spSt.bad());
229+
assert(spSt.fail());
230+
assert(!spSt.good()); }
124231
// Mode `out`
125232
{
126233
SpStream spSt{sp, std::ios_base::out};
127-
//TODO
128-
(void)spSt;
234+
assert(spSt.span().size() == 0);
235+
236+
// Read from stream
237+
std::basic_string<CharT, TraitsT> str1;
238+
spSt >> str1;
239+
int i1;
240+
spSt >> i1;
241+
std::basic_string<CharT, TraitsT> str2;
242+
spSt >> str2;
243+
int i2;
244+
spSt >> i2;
245+
std::basic_string<CharT, TraitsT> str3;
246+
spSt >> str3;
247+
int i3;
248+
spSt >> i3;
249+
250+
assert(spSt.good());
251+
assert(str1 == CS("zmt"));
252+
assert(i1 == 94);
253+
assert(str2 == CS("hkt"));
254+
assert(i2 == 82);
255+
assert(str3 == CS("pir"));
256+
assert(i3 == 43);
257+
258+
// Write to stream
259+
constexpr std::basic_string_view<CharT, TraitsT> sv1{SV("year 2024")};
260+
spSt << sv1;
261+
262+
assert(spSt.span().size() == sv1.size());
263+
assert(spSt.good());
264+
265+
// Read from stream
266+
spSt.seekg(0);
267+
std::basic_string<CharT, TraitsT> str4;
268+
spSt >> str4;
269+
int i4;
270+
spSt >> i4;
271+
272+
assert(str4 == CS("year"));
273+
assert(i4 == 2024);
274+
275+
spSt >> i4;
276+
assert(spSt.fail());
277+
spSt.clear();
278+
assert(spSt.good());
279+
280+
// Write to stream
281+
spSt << CS("94");
282+
spSt << 84;
283+
284+
assert(spSt.good());
285+
assert(spSt.span().size() == sv1.size() + 4);
286+
std::basic_string<CharT, TraitsT> expectedStr1{spSt.span().data(), std::size_t{spSt.span().size()}};
287+
assert(expectedStr1 == CS("year 20249484"));
288+
289+
// Write to stream with overflow
290+
constexpr std::basic_string_view<CharT, TraitsT> sv2{
291+
SV("This string should overflow! This string should overflow!")};
292+
spSt << sv2;
293+
assert(spSt.span().size() == arrSize);
294+
std::basic_string<CharT, TraitsT> expectedStr2{spSt.span().data(), std::size_t{spSt.span().size()}};
295+
assert(expectedStr2 == CS("year 20249484This string shoul"));
296+
assert(spSt.fail());
129297
}
298+
#endif
130299
}
131300

132301
int main(int, char**) {

0 commit comments

Comments
 (0)