Skip to content

Commit 6e98c2b

Browse files
committed
WIP: ospanstream tests
1 parent cef2f0f commit 6e98c2b

File tree

4 files changed

+78
-33
lines changed

4 files changed

+78
-33
lines changed

libcxx/test/std/input.output/span.streams/ospanstream/ospanstream.cons/assign.move.pass.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,13 @@ void test() {
6060
{
6161
SpStream rhsSpSt{sp, std::ios_base::out};
6262
assert(rhsSpSt.span().data() == arr);
63+
// Mode `out` counts read characters
6364
assert(rhsSpSt.span().empty());
6465
assert(rhsSpSt.span().size() == 0);
6566

6667
SpStream spSt = std::move(rhsSpSt);
6768
assert(spSt.span().data() == arr);
69+
// Mode `out` counts read characters
6870
assert(spSt.span().empty());
6971
assert(spSt.span().size() == 0);
7072

@@ -75,7 +77,7 @@ void test() {
7577
}
7678
// Mode `ate`
7779
{
78-
SpStream rhsSpSt{sp, std::ios_base::out | std::ios_base::ate};
80+
SpStream rhsSpSt{sp, std::ios_base::ate};
7981
assert(rhsSpSt.span().data() == arr);
8082
assert(!rhsSpSt.span().empty());
8183
assert(rhsSpSt.span().size() == 4);

libcxx/test/std/input.output/span.streams/spanstream/spanstream.cons/assign.move.pass.cpp

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,26 +88,26 @@ void test() {
8888
assert(rhsSpSt.span().empty());
8989
assert(rhsSpSt.span().size() == 0);
9090
}
91-
// Mode: multiple
91+
// Mode `ate`
9292
{
93-
SpStream rhsSpSt{sp, std::ios_base::in | std::ios_base::out | std::ios_base::binary};
93+
SpStream rhsSpSt{sp, std::ios_base::in};
9494
assert(rhsSpSt.span().data() == arr);
95-
assert(rhsSpSt.span().empty());
96-
assert(rhsSpSt.span().size() == 0);
95+
assert(!rhsSpSt.span().empty());
96+
assert(rhsSpSt.span().size() == 4);
9797

9898
SpStream spSt = std::move(rhsSpSt);
9999
assert(spSt.span().data() == arr);
100-
assert(spSt.span().empty());
101-
assert(spSt.span().size() == 0);
100+
assert(!spSt.span().empty());
101+
assert(spSt.span().size() == 4);
102102

103103
// Test after move
104104
assert(rhsSpSt.span().data() == arr);
105-
assert(rhsSpSt.span().empty());
106-
assert(rhsSpSt.span().size() == 0);
105+
assert(!rhsSpSt.span().empty());
106+
assert(rhsSpSt.span().size() == 4);
107107
}
108-
// Mode `ate`
108+
// Mode: multiple
109109
{
110-
SpStream rhsSpSt{sp, std::ios_base::in};
110+
SpStream rhsSpSt{sp, std::ios_base::ate | std::ios_base::binary};
111111
assert(rhsSpSt.span().data() == arr);
112112
assert(!rhsSpSt.span().empty());
113113
assert(rhsSpSt.span().size() == 4);
@@ -128,12 +128,22 @@ int main(int, char**) {
128128
#ifndef TEST_HAS_NO_NASTY_STRING
129129
test<nasty_char, nasty_char_traits>();
130130
#endif
131+
131132
test<char>();
132133
test<char, constexpr_char_traits<char>>();
133134
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
134135
test<wchar_t>();
135136
test<wchar_t, constexpr_char_traits<wchar_t>>();
136137
#endif
137138

139+
#ifndef TEST_HAS_NO_CHAR8_T
140+
test<char8_t>();
141+
test<char8_t, constexpr_char_traits<char8_t>>();
142+
#endif
143+
test<char16_t>();
144+
test<char16_t, constexpr_char_traits<char16_t>>();
145+
test<char32_t>();
146+
test<char32_t, constexpr_char_traits<char32_t>>();
147+
138148
return 0;
139149
}

libcxx/test/std/input.output/span.streams/spanstream/spanstream.cons/ctor.move.pass.cpp

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,26 +88,26 @@ void test() {
8888
assert(rhsSpSt.span().empty());
8989
assert(rhsSpSt.span().size() == 0);
9090
}
91-
// Mode: multiple
91+
// Mode `ate`
9292
{
93-
SpStream rhsSpSt{sp, std::ios_base::in | std::ios_base::out | std::ios_base::binary};
93+
SpStream rhsSpSt{sp, std::ios_base::ate};
9494
assert(rhsSpSt.span().data() == arr);
95-
assert(rhsSpSt.span().empty());
96-
assert(rhsSpSt.span().size() == 0);
95+
assert(!rhsSpSt.span().empty());
96+
assert(rhsSpSt.span().size() == 4);
9797

9898
SpStream spSt{std::move(rhsSpSt)};
9999
assert(spSt.span().data() == arr);
100-
assert(spSt.span().empty());
101-
assert(spSt.span().size() == 0);
100+
assert(!spSt.span().empty());
101+
assert(spSt.span().size() == 4);
102102

103103
// Test after move
104104
assert(rhsSpSt.span().data() == arr);
105-
assert(rhsSpSt.span().empty());
106-
assert(rhsSpSt.span().size() == 0);
105+
assert(!rhsSpSt.span().empty());
106+
assert(rhsSpSt.span().size() == 4);
107107
}
108-
// Mode `ate`
108+
// Mode: multiple
109109
{
110-
SpStream rhsSpSt{sp, std::ios_base::out | std::ios_base::ate};
110+
SpStream rhsSpSt{sp, std::ios_base::ate | std::ios_base::binary};
111111
assert(rhsSpSt.span().data() == arr);
112112
assert(!rhsSpSt.span().empty());
113113
assert(rhsSpSt.span().size() == 4);
@@ -128,12 +128,22 @@ int main(int, char**) {
128128
#ifndef TEST_HAS_NO_NASTY_STRING
129129
test<nasty_char, nasty_char_traits>();
130130
#endif
131+
131132
test<char>();
132133
test<char, constexpr_char_traits<char>>();
133134
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
134135
test<wchar_t>();
135136
test<wchar_t, constexpr_char_traits<wchar_t>>();
136137
#endif
137138

139+
#ifndef TEST_HAS_NO_CHAR8_T
140+
test<char8_t>();
141+
test<char8_t, constexpr_char_traits<char8_t>>();
142+
#endif
143+
test<char16_t>();
144+
test<char16_t, constexpr_char_traits<char16_t>>();
145+
test<char32_t>();
146+
test<char32_t, constexpr_char_traits<char32_t>>();
147+
138148
return 0;
139149
}

libcxx/test/std/input.output/span.streams/spanstream/spanstream.cons/ctor.span.mode.pass.cpp

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -93,28 +93,28 @@ void test() {
9393
assert(spSt.span().empty());
9494
assert(spSt.span().size() == 0);
9595
}
96-
// Mode: multiple
96+
// Mode `ate`
9797
{
98-
SpStream spSt{sp, std::ios_base::in | std::ios_base::out | std::ios_base::binary};
98+
SpStream spSt{sp, std::ios_base::ate};
9999
assert(spSt.span().data() == arr);
100-
assert(spSt.span().empty());
101-
assert(spSt.span().size() == 0);
100+
assert(!spSt.span().empty());
101+
assert(spSt.span().size() == 4);
102102
}
103103
{
104-
SpStream spSt{std::as_const(sp), std::ios_base::in | std::ios_base::out | std::ios_base::binary};
104+
SpStream spSt{std::as_const(sp), std::ios_base::ate};
105105
assert(spSt.span().data() == arr);
106-
assert(spSt.span().empty());
107-
assert(spSt.span().size() == 0);
106+
assert(!spSt.span().empty());
107+
assert(spSt.span().size() == 4);
108108
}
109-
// Mode `ate`
109+
// Mode: multiple
110110
{
111-
SpStream spSt{sp, std::ios_base::out | std::ios_base::ate};
111+
SpStream spSt{sp, std::ios_base::ate | std::ios_base::binary};
112112
assert(spSt.span().data() == arr);
113113
assert(!spSt.span().empty());
114114
assert(spSt.span().size() == 4);
115115
}
116116
{
117-
SpStream spSt{std::as_const(sp), std::ios_base::out | std::ios_base::ate};
117+
SpStream spSt{std::as_const(sp), std::ios_base::ate | std::ios_base::binary};
118118
assert(spSt.span().data() == arr);
119119
assert(!spSt.span().empty());
120120
assert(spSt.span().size() == 4);
@@ -125,19 +125,42 @@ int main(int, char**) {
125125
#ifndef TEST_HAS_NO_NASTY_STRING
126126
test_sfinae<nasty_char, nasty_char_traits>();
127127
#endif
128+
128129
test_sfinae<char>();
129130
test_sfinae<char, constexpr_char_traits<char>>();
131+
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
132+
test_sfinae<wchar_t>();
133+
test_sfinae<wchar_t, constexpr_char_traits<wchar_t>>();
134+
#endif
135+
136+
#ifndef TEST_HAS_NO_CHAR8_T
137+
test_sfinae<char8_t>();
138+
test_sfinae<char8_t, constexpr_char_traits<char8_t>>();
139+
#endif
140+
test_sfinae<char16_t>();
141+
test_sfinae<char16_t, constexpr_char_traits<char16_t>>();
142+
test_sfinae<char32_t>();
143+
test_sfinae<char32_t, constexpr_char_traits<char32_t>>();
144+
130145
#ifndef TEST_HAS_NO_NASTY_STRING
131146
test<nasty_char, nasty_char_traits>();
132147
#endif
148+
133149
test<char>();
134150
test<char, constexpr_char_traits<char>>();
135151
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
136-
test_sfinae<wchar_t>();
137-
test_sfinae<wchar_t, constexpr_char_traits<wchar_t>>();
138152
test<wchar_t>();
139153
test<wchar_t, constexpr_char_traits<wchar_t>>();
140154
#endif
141155

156+
#ifndef TEST_HAS_NO_CHAR8_T
157+
test<char8_t>();
158+
test<char8_t, constexpr_char_traits<char8_t>>();
159+
#endif
160+
test<char16_t>();
161+
test<char16_t, constexpr_char_traits<char16_t>>();
162+
test<char32_t>();
163+
test<char32_t, constexpr_char_traits<char32_t>>();
164+
142165
return 0;
143166
}

0 commit comments

Comments
 (0)