Skip to content

Commit 10ae9d0

Browse files
Drop ASSERT_RUNTIME_AND_CONSTEXPR
1 parent 28ef669 commit 10ae9d0

File tree

5 files changed

+129
-124
lines changed

5 files changed

+129
-124
lines changed

libcxx/test/std/containers/views/views.span/span.iterators/begin.pass.cpp

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,34 +19,29 @@
1919
#include "test_macros.h"
2020

2121
template <class Span, class Iter>
22-
constexpr bool testSpanImpl(Span s, Iter first) {
23-
bool ret = true;
22+
constexpr void testSpanImpl(Span s, Iter first) {
2423
if (s.empty()) {
25-
ret = ret && (first == s.end());
24+
assert(first == s.end());
2625
} else {
27-
ret = ret && (*first == s[0]);
28-
ret = ret && (&*first == &s[0]);
26+
assert(*first == s[0]);
27+
assert(&*first == &s[0]);
2928
}
30-
return ret;
3129
}
3230

3331
template <class EType, size_t Extent, class... Args>
34-
constexpr bool testSpan(Args&&... args) {
35-
auto s1 = std::span<EType>(std::forward<Args>(args)...);
36-
bool ret = true;
32+
constexpr void testSpan(Args&&... args) {
33+
auto s1 = std::span<EType>(std::forward<Args>(args)...);
3734

38-
ret = ret && testSpanImpl(s1, s1.begin());
35+
testSpanImpl(s1, s1.begin());
3936
#if TEST_STD_VER >= 23
40-
ret = ret && testSpanImpl(s1, s1.cbegin());
37+
testSpanImpl(s1, s1.cbegin());
4138
#endif
4239

4340
auto s2 = std::span<EType, Extent>(std::forward<Args>(args)...);
44-
ret = ret && testSpanImpl(s2, s2.begin());
41+
testSpanImpl(s2, s2.begin());
4542
#if TEST_STD_VER >= 23
46-
ret = ret && testSpanImpl(s2, s2.cbegin());
43+
testSpanImpl(s2, s2.cbegin());
4744
#endif
48-
49-
return ret;
5045
}
5146

5247
struct A {};
@@ -55,18 +50,29 @@ bool operator==(A, A) { return true; }
5550
constexpr int iArr1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
5651
int iArr2[] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
5752

53+
constexpr bool test_runtime_and_constexpr() {
54+
testSpan<int, 0>();
55+
testSpan<long, 0>();
56+
testSpan<double, 0>();
57+
testSpan<A, 0>();
58+
testSpan<std::string, 0>();
59+
60+
testSpan<const int, 1>(iArr1, 1);
61+
testSpan<const int, 2>(iArr1, 2);
62+
testSpan<const int, 3>(iArr1, 3);
63+
testSpan<const int, 4>(iArr1, 4);
64+
testSpan<const int, 5>(iArr1, 5);
65+
66+
const std::string s2;
67+
testSpan<const std::string, 0>(&s2, static_cast<size_t>(0));
68+
testSpan<const std::string, 1>(&s2, 1);
69+
70+
return true;
71+
}
72+
5873
int main(int, char**) {
59-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<int, 0>());
60-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<long, 0>());
61-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<double, 0>());
62-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<A, 0>());
63-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<std::string, 0>());
64-
65-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 1>(iArr1, 1));
66-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 2>(iArr1, 2));
67-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 3>(iArr1, 3));
68-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 4>(iArr1, 4));
69-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 5>(iArr1, 5));
74+
test_runtime_and_constexpr();
75+
static_assert(test_runtime_and_constexpr());
7076

7177
testSpan<int, 1>(iArr2, 1);
7278
testSpan<int, 2>(iArr2, 2);
@@ -75,11 +81,8 @@ int main(int, char**) {
7581
testSpan<int, 5>(iArr2, 5);
7682

7783
std::string s1;
78-
constexpr static std::string s2;
7984
testSpan<std::string, 0>(&s1, static_cast<size_t>(0));
80-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const std::string, 0>(&s2, static_cast<size_t>(0)));
8185
testSpan<std::string, 1>(&s1, 1);
82-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const std::string, 1>(&s2, 1));
8386

8487
return 0;
8588
}

libcxx/test/std/containers/views/views.span/span.iterators/end.pass.cpp

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,35 +19,30 @@
1919
#include "test_macros.h"
2020

2121
template <class Span, class Iter>
22-
constexpr bool testSpanImpl(Span s, Iter last) {
23-
bool ret = true;
22+
constexpr void testSpanImpl(Span s, Iter last) {
2423
if (s.empty()) {
25-
ret = ret && (last == s.begin());
24+
assert(last == s.begin());
2625
} else {
27-
ret = ret && (last != s.begin());
28-
ret = ret && (&*(last - 1) == s.data() + s.size() - 1);
26+
assert(last != s.begin());
27+
assert(&*(last - 1) == s.data() + s.size() - 1);
2928
}
30-
ret = ret && (static_cast<size_t>(last - s.begin()) == s.size());
31-
return ret;
29+
assert(static_cast<size_t>(last - s.begin()) == s.size());
3230
}
3331

3432
template <class EType, size_t Extent, class... Args>
35-
constexpr bool testSpan(Args&&... args) {
36-
auto s1 = std::span<EType>(std::forward<Args>(args)...);
37-
bool ret = true;
33+
constexpr void testSpan(Args&&... args) {
34+
auto s1 = std::span<EType>(std::forward<Args>(args)...);
3835

39-
ret = ret && testSpanImpl(s1, s1.end());
36+
testSpanImpl(s1, s1.end());
4037
#if TEST_STD_VER >= 23
41-
ret = ret && testSpanImpl(s1, s1.cend());
38+
testSpanImpl(s1, s1.cend());
4239
#endif
4340

4441
auto s2 = std::span<EType, Extent>(std::forward<Args>(args)...);
45-
ret = ret && testSpanImpl(s2, s2.end());
42+
testSpanImpl(s2, s2.end());
4643
#if TEST_STD_VER >= 23
47-
ret = ret && testSpanImpl(s2, s2.cend());
44+
testSpanImpl(s2, s2.cend());
4845
#endif
49-
50-
return ret;
5146
}
5247

5348
struct A {};
@@ -56,18 +51,29 @@ bool operator==(A, A) { return true; }
5651
constexpr int iArr1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
5752
int iArr2[] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
5853

54+
constexpr bool test_runtime_and_constexpr() {
55+
testSpan<int, 0>();
56+
testSpan<long, 0>();
57+
testSpan<double, 0>();
58+
testSpan<A, 0>();
59+
testSpan<std::string, 0>();
60+
61+
testSpan<const int, 1>(iArr1, 1);
62+
testSpan<const int, 2>(iArr1, 2);
63+
testSpan<const int, 3>(iArr1, 3);
64+
testSpan<const int, 4>(iArr1, 4);
65+
testSpan<const int, 5>(iArr1, 5);
66+
67+
const std::string s2;
68+
testSpan<const std::string, 0>(&s2, static_cast<size_t>(0));
69+
testSpan<const std::string, 1>(&s2, 1);
70+
71+
return true;
72+
}
73+
5974
int main(int, char**) {
60-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<int, 0>());
61-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<long, 0>());
62-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<double, 0>());
63-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<A, 0>());
64-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<std::string, 0>());
65-
66-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 1>(iArr1, 1));
67-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 2>(iArr1, 2));
68-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 3>(iArr1, 3));
69-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 4>(iArr1, 4));
70-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 5>(iArr1, 5));
75+
test_runtime_and_constexpr();
76+
static_assert(test_runtime_and_constexpr());
7177

7278
testSpan<int, 1>(iArr2, 1);
7379
testSpan<int, 2>(iArr2, 2);
@@ -76,11 +82,8 @@ int main(int, char**) {
7682
testSpan<int, 5>(iArr2, 5);
7783

7884
std::string s1;
79-
constexpr static std::string s2;
8085
testSpan<std::string, 0>(&s1, static_cast<size_t>(0));
81-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const std::string, 0>(&s2, static_cast<size_t>(0)));
8286
testSpan<std::string, 1>(&s1, 1);
83-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const std::string, 1>(&s2, 1));
8487

8588
return 0;
8689
}

libcxx/test/std/containers/views/views.span/span.iterators/rbegin.pass.cpp

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,31 @@
1919
#include "test_macros.h"
2020

2121
template <class Span, class Iter>
22-
constexpr bool testSpanImpl(Span s, Iter rfirst) {
23-
bool ret = true;
22+
constexpr void testSpanImpl(Span s, Iter rfirst) {
2423
if (s.empty()) {
25-
ret = ret && (rfirst == s.rend());
24+
assert(rfirst == s.rend());
2625
} else {
2726
const typename Span::size_type last = s.size() - 1;
2827

29-
ret = ret && (*rfirst == s[last]);
30-
ret = ret && (&*rfirst == &s[last]);
28+
assert(*rfirst == s[last]);
29+
assert(&*rfirst == &s[last]);
3130
}
32-
return ret;
3331
}
3432

3533
template <class EType, size_t Extent, class... Args>
36-
constexpr bool testSpan(Args&&... args) {
37-
auto s1 = std::span<EType>(std::forward<Args>(args)...);
38-
bool ret = true;
34+
constexpr void testSpan(Args&&... args) {
35+
auto s1 = std::span<EType>(std::forward<Args>(args)...);
3936

40-
ret = ret && testSpanImpl(s1, s1.rbegin());
37+
testSpanImpl(s1, s1.rbegin());
4138
#if TEST_STD_VER >= 23
42-
ret = ret && testSpanImpl(s1, s1.crbegin());
39+
testSpanImpl(s1, s1.crbegin());
4340
#endif
4441

4542
auto s2 = std::span<EType, Extent>(std::forward<Args>(args)...);
46-
ret = ret && testSpanImpl(s2, s2.rbegin());
43+
testSpanImpl(s2, s2.rbegin());
4744
#if TEST_STD_VER >= 23
48-
ret = ret && testSpanImpl(s2, s2.crbegin());
45+
testSpanImpl(s2, s2.crbegin());
4946
#endif
50-
51-
return ret;
5247
}
5348

5449
struct A {};
@@ -57,18 +52,29 @@ bool operator==(A, A) { return true; }
5752
constexpr int iArr1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
5853
int iArr2[] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
5954

55+
constexpr bool test_runtime_and_constexpr() {
56+
testSpan<int, 0>();
57+
testSpan<long, 0>();
58+
testSpan<double, 0>();
59+
testSpan<A, 0>();
60+
testSpan<std::string, 0>();
61+
62+
testSpan<const int, 1>(iArr1, 1);
63+
testSpan<const int, 2>(iArr1, 2);
64+
testSpan<const int, 3>(iArr1, 3);
65+
testSpan<const int, 4>(iArr1, 4);
66+
testSpan<const int, 5>(iArr1, 5);
67+
68+
const std::string s2;
69+
testSpan<const std::string, 0>(&s2, static_cast<size_t>(0));
70+
testSpan<const std::string, 1>(&s2, 1);
71+
72+
return true;
73+
}
74+
6075
int main(int, char**) {
61-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<int, 0>());
62-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<long, 0>());
63-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<double, 0>());
64-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<A, 0>());
65-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<std::string, 0>());
66-
67-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 1>(iArr1, 1));
68-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 2>(iArr1, 2));
69-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 3>(iArr1, 3));
70-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 4>(iArr1, 4));
71-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 5>(iArr1, 5));
76+
test_runtime_and_constexpr();
77+
static_assert(test_runtime_and_constexpr());
7278

7379
testSpan<int, 1>(iArr2, 1);
7480
testSpan<int, 2>(iArr2, 2);
@@ -77,11 +83,8 @@ int main(int, char**) {
7783
testSpan<int, 5>(iArr2, 5);
7884

7985
std::string s1;
80-
constexpr static std::string s2;
8186
testSpan<std::string, 0>(&s1, static_cast<size_t>(0));
82-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const std::string, 0>(&s2, static_cast<size_t>(0)));
8387
testSpan<std::string, 1>(&s1, 1);
84-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const std::string, 1>(&s2, 1));
8588

8689
return 0;
8790
}

libcxx/test/std/containers/views/views.span/span.iterators/rend.pass.cpp

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,36 +20,30 @@
2020

2121
template <class Span, class Iter>
2222
constexpr bool testSpanImpl(Span s, Iter rlast) {
23-
bool ret = true;
2423
if (s.empty()) {
25-
ret = ret && (rlast == s.rbegin());
24+
assert(rlast == s.rbegin());
2625
} else {
27-
ret = ret && (rlast != s.rbegin());
28-
ret = ret && (rlast == std::make_reverse_iterator(s.begin()));
26+
assert(rlast != s.rbegin());
27+
assert(rlast == std::make_reverse_iterator(s.begin()));
2928
}
3029

31-
ret = ret && (static_cast<std::size_t>(rlast - s.rbegin()) == s.size());
32-
33-
return ret;
30+
assert(static_cast<std::size_t>(rlast - s.rbegin()) == s.size());
3431
}
3532

3633
template <class EType, size_t Extent, class... Args>
37-
constexpr bool testSpan(Args&&... args) {
38-
auto s1 = std::span<EType>(std::forward<Args>(args)...);
39-
bool ret = true;
34+
constexpr void testSpan(Args&&... args) {
35+
auto s1 = std::span<EType>(std::forward<Args>(args)...);
4036

41-
ret = ret && testSpanImpl(s1, s1.rend());
37+
testSpanImpl(s1, s1.rend());
4238
#if TEST_STD_VER >= 23
43-
ret = ret && testSpanImpl(s1, s1.crend());
39+
testSpanImpl(s1, s1.crend());
4440
#endif
4541

4642
auto s2 = std::span<EType, Extent>(std::forward<Args>(args)...);
47-
ret = ret && testSpanImpl(s2, s2.rend());
43+
testSpanImpl(s2, s2.rend());
4844
#if TEST_STD_VER >= 23
49-
ret = ret && testSpanImpl(s2, s2.crend());
45+
testSpanImpl(s2, s2.crend());
5046
#endif
51-
52-
return ret;
5347
}
5448

5549
struct A {};
@@ -58,18 +52,29 @@ bool operator==(A, A) { return true; }
5852
constexpr int iArr1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
5953
int iArr2[] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
6054

55+
constexpr bool test_runtime_and_constexpr() {
56+
testSpan<int, 0>();
57+
testSpan<long, 0>();
58+
testSpan<double, 0>();
59+
testSpan<A, 0>();
60+
testSpan<std::string, 0>();
61+
62+
testSpan<const int, 1>(iArr1, 1);
63+
testSpan<const int, 2>(iArr1, 2);
64+
testSpan<const int, 3>(iArr1, 3);
65+
testSpan<const int, 4>(iArr1, 4);
66+
testSpan<const int, 5>(iArr1, 5);
67+
68+
const std::string s2;
69+
testSpan<const std::string, 0>(&s2, static_cast<size_t>(0));
70+
testSpan<const std::string, 1>(&s2, 1);
71+
72+
return true;
73+
}
74+
6175
int main(int, char**) {
62-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<int, 0>());
63-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<long, 0>());
64-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<double, 0>());
65-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<A, 0>());
66-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<std::string, 0>());
67-
68-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 1>(iArr1, 1));
69-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 2>(iArr1, 2));
70-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 3>(iArr1, 3));
71-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 4>(iArr1, 4));
72-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const int, 5>(iArr1, 5));
76+
test_runtime_and_constexpr();
77+
static_assert(test_runtime_and_constexpr());
7378

7479
testSpan<int, 1>(iArr2, 1);
7580
testSpan<int, 2>(iArr2, 2);
@@ -78,11 +83,8 @@ int main(int, char**) {
7883
testSpan<int, 5>(iArr2, 5);
7984

8085
std::string s1;
81-
constexpr static std::string s2;
8286
testSpan<std::string, 0>(&s1, static_cast<size_t>(0));
83-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const std::string, 0>(&s2, static_cast<size_t>(0)));
8487
testSpan<std::string, 1>(&s1, 1);
85-
ASSERT_RUNTIME_AND_CONSTEXPR(testSpan<const std::string, 1>(&s2, 1));
8688

8789
return 0;
8890
}

0 commit comments

Comments
 (0)