Skip to content

Commit 14fb626

Browse files
committed
Tests: updated span.pass and span.span.pass
1 parent 15db35a commit 14fb626

File tree

2 files changed

+83
-19
lines changed

2 files changed

+83
-19
lines changed

libcxx/test/std/input.output/span.streams/spanbuf/spanbuf.members/span.pass.cpp

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,38 @@ void test() {
3636
assert(sp.data() == arr);
3737
assert(!sp.empty());
3838
assert(sp.size() == 4);
39-
39+
40+
// Mode: default (`in` | `out`)
41+
{
42+
SpBuf spBuf(sp);
43+
assert(spBuf.span().data() == arr);
44+
// Mode `out` counts read characters
45+
assert(spBuf.span().empty());
46+
assert(spBuf.span().size() == 0);
47+
}
48+
// Mode: `in`
49+
{
50+
SpBuf spBuf(sp, std::ios_base::in);
51+
assert(spBuf.span().data() == arr);
52+
assert(!spBuf.span().empty());
53+
assert(spBuf.span().size() == 4);
54+
}
55+
// Mode: `out`
56+
{
57+
SpBuf spBuf(sp, std::ios_base::out);
58+
assert(spBuf.span().data() == arr);
59+
// Mode `out` counts read characters
60+
assert(spBuf.span().empty());
61+
assert(spBuf.span().size() == 0);
62+
}
63+
// Mode: multiple
4064
{
41-
SpBuf spBuf(sp);
42-
assert(spBuf.span().data() == arr);
43-
assert(!spBuf.span().empty());
44-
assert(spBuf.span().size() == 4);
65+
SpBuf spBuf(sp, std::ios_base::in | std::ios_base::out | std::ios_base::binary);
66+
assert(spBuf.span().data() == arr);
67+
// Mode `out` counts read characters
68+
assert(spBuf.span().empty());
69+
assert(spBuf.span().size() == 0);
70+
}
4571
}
4672

4773
int main(int, char**) {

libcxx/test/std/input.output/span.streams/spanbuf/spanbuf.members/span.span.pass.cpp

Lines changed: 52 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ void test() {
3333

3434
CharT arr[4];
3535

36+
std::span<CharT> sp{arr};
37+
assert(sp.data() == arr);
38+
assert(!sp.empty());
39+
assert(sp.size() == 4);
40+
3641
// Mode: default (`in` | `out`)
3742
{
3843
SpBuf spBuf;
@@ -52,11 +57,6 @@ void test() {
5257
assert(spBuf.span().empty());
5358
assert(spBuf.span().size() == 0);
5459

55-
std::span<CharT> sp{arr};
56-
assert(sp.data() == arr);
57-
assert(!sp.empty());
58-
assert(sp.size() == 4);
59-
6060
spBuf.span(sp);
6161
assert(spBuf.span().data() == arr);
6262
// Mode `out` counts read characters
@@ -81,11 +81,6 @@ void test() {
8181
assert(spBuf.span().empty());
8282
assert(spBuf.span().size() == 0);
8383

84-
std::span<CharT> sp{arr};
85-
assert(sp.data() == arr);
86-
assert(!sp.empty());
87-
assert(sp.size() == 4);
88-
8984
spBuf.span(sp);
9085
assert(spBuf.span().data() == arr);
9186
assert(!spBuf.span().empty());
@@ -110,17 +105,60 @@ void test() {
110105
assert(spBuf.span().empty());
111106
assert(spBuf.span().size() == 0);
112107

113-
std::span<CharT> sp{arr};
114-
assert(sp.data() == arr);
115-
assert(!sp.empty());
116-
assert(sp.size() == 4);
108+
spBuf.span(sp);
109+
assert(spBuf.span().data() == arr);
110+
// Mode `out` counts read characters
111+
assert(spBuf.span().empty());
112+
assert(spBuf.span().size() == 0);
113+
}
114+
// Mode: multiple
115+
{
116+
SpBuf spBuf(std::ios_base::in | std::ios_base::out | std::ios_base::binary);
117+
assert(spBuf.span().data() == nullptr);
118+
assert(spBuf.span().empty());
119+
assert(spBuf.span().size() == 0);
120+
121+
spBuf.span(arr);
122+
assert(spBuf.span().data() == arr);
123+
// Mode `out` counts read characters
124+
assert(spBuf.span().empty());
125+
assert(spBuf.span().size() == 0);
126+
}
127+
{
128+
SpBuf spBuf(std::ios_base::in | std::ios_base::out | std::ios_base::binary);
129+
assert(spBuf.span().data() == nullptr);
130+
assert(spBuf.span().empty());
131+
assert(spBuf.span().size() == 0);
117132

118133
spBuf.span(sp);
119134
assert(spBuf.span().data() == arr);
120135
// Mode `out` counts read characters
121136
assert(spBuf.span().empty());
122137
assert(spBuf.span().size() == 0);
123138
}
139+
// Mode: `ate`
140+
{
141+
SpBuf spBuf(std::ios_base::out | std::ios_base::ate);
142+
assert(spBuf.span().data() == nullptr);
143+
assert(spBuf.span().empty());
144+
assert(spBuf.span().size() == 0);
145+
146+
spBuf.span(arr);
147+
assert(spBuf.span().data() == arr);
148+
assert(!spBuf.span().empty());
149+
assert(spBuf.span().size() == 4);
150+
}
151+
{
152+
SpBuf spBuf(std::ios_base::out | std::ios_base::ate);
153+
assert(spBuf.span().data() == nullptr);
154+
assert(spBuf.span().empty());
155+
assert(spBuf.span().size() == 0);
156+
157+
spBuf.span(sp);
158+
assert(spBuf.span().data() == arr);
159+
assert(!spBuf.span().empty());
160+
assert(spBuf.span().size() == 4);
161+
}
124162
}
125163

126164
int main(int, char**) {

0 commit comments

Comments
 (0)