Skip to content

Commit 47afcf1

Browse files
committed
simplify testing (possible b.c. increase of constexpr-steps)
1 parent c91a11a commit 47afcf1

File tree

1 file changed

+12
-41
lines changed

1 file changed

+12
-41
lines changed

libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort.pass.cpp

Lines changed: 12 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// constexpr void // constexpr in C++26
1313
// stable_sort(RandomAccessIterator first, RandomAccessIterator last);
1414

15-
// ADDITIONAL_COMPILE_FLAGS(has-fconstexpr-steps): -fconstexpr-steps=2000000
15+
// ADDITIONAL_COMPILE_FLAGS(has-fconstexpr-steps): -fconstexpr-steps=20000000
1616

1717
#include <algorithm>
1818
#include <array>
@@ -105,7 +105,7 @@ TEST_CONSTEXPR_CXX26 std::array<int, N> sort_already_sorted() {
105105
}
106106

107107
template <int N, int M>
108-
std::array<int, N> sort_reversely_sorted() {
108+
TEST_CONSTEXPR_CXX26 std::array<int, N> sort_reversely_sorted() {
109109
std::array<int, N> array = sort_saw_tooth_pattern<N, M>();
110110
std::reverse(array.begin(), array.end());
111111
std::stable_sort(array.begin(), array.end());
@@ -121,33 +121,22 @@ TEST_CONSTEXPR_CXX26 std::array<int, N> sort_swapped_sorted_ranges() {
121121
}
122122

123123
template <int N, int M>
124-
std::array<int, N> sort_reversely_swapped_sorted_ranges() {
124+
TEST_CONSTEXPR_CXX26 std::array<int, N> sort_reversely_swapped_sorted_ranges() {
125125
std::array<int, N> array = sort_saw_tooth_pattern<N, M>();
126126
std::reverse(array.begin(), array.end());
127127
std::swap_ranges(array.begin(), array.begin() + N / 2, array.begin() + N / 2);
128128
std::stable_sort(array.begin(), array.end());
129129
return array;
130130
}
131131

132-
#if TEST_STD_VER >= 26
133-
# define COMPILE_OR_RUNTIME_ASSERT(func) \
134-
if consteval { \
135-
static_assert(func); \
136-
} else { \
137-
assert(func); \
138-
}
139-
#else
140-
# define COMPILE_OR_RUNTIME_ASSERT(func) assert(func);
141-
#endif
142-
143132
template <int N, int M>
144133
TEST_CONSTEXPR_CXX26 void test_larger_sorts() {
145134
static_assert(N > 0, "");
146135
static_assert(M > 0, "");
147136

148137
{ // test saw tooth pattern
149-
TEST_CONSTEXPR_CXX26 std::array<int, N> array = sort_saw_tooth_pattern<N, M>();
150-
COMPILE_OR_RUNTIME_ASSERT(std::is_sorted(array.begin(), array.end()))
138+
std::array<int, N> array = sort_saw_tooth_pattern<N, M>();
139+
assert(std::is_sorted(array.begin(), array.end()));
151140
}
152141

153142
#if TEST_STD_VER >= 26
@@ -163,29 +152,21 @@ TEST_CONSTEXPR_CXX26 void test_larger_sorts() {
163152
}
164153

165154
{ // test sorted pattern
166-
TEST_CONSTEXPR_CXX26 std::array<int, N> array = sort_already_sorted<N, M>();
167-
COMPILE_OR_RUNTIME_ASSERT(std::is_sorted(array.begin(), array.end()))
155+
std::array<int, N> array = sort_already_sorted<N, M>();
156+
assert(std::is_sorted(array.begin(), array.end()));
168157
}
169158

170-
#if TEST_STD_VER >= 26
171-
if !consteval
172-
#endif
173159
{ // test reverse sorted pattern
174-
// consteval error: "constexpr evaluation hit maximum step limit"
175160
std::array<int, N> array = sort_reversely_sorted<N, M>();
176161
assert(std::is_sorted(array.begin(), array.end()));
177162
}
178163

179164
{ // test swap ranges 2 pattern
180-
TEST_CONSTEXPR_CXX26 std::array<int, N> array = sort_swapped_sorted_ranges<N, M>();
181-
COMPILE_OR_RUNTIME_ASSERT(std::is_sorted(array.begin(), array.end()))
165+
std::array<int, N> array = sort_swapped_sorted_ranges<N, M>();
166+
assert(std::is_sorted(array.begin(), array.end()));
182167
}
183168

184-
#if TEST_STD_VER >= 26
185-
if !consteval
186-
#endif
187169
{ // test reverse swap ranges 2 pattern
188-
// consteval error: "constexpr evaluation hit maximum step limit"
189170
std::array<int, N> array = sort_reversely_swapped_sorted_ranges<N, M>();
190171
assert(std::is_sorted(array.begin(), array.end()));
191172
}
@@ -204,14 +185,6 @@ TEST_CONSTEXPR_CXX26 void test_larger_sorts() {
204185
test_larger_sorts<N, N>();
205186
}
206187

207-
#if TEST_STD_VER >= 26
208-
# define COMPILE_AND_RUNTIME_CALL(func) \
209-
func; \
210-
static_assert((func, true));
211-
#else
212-
# define COMPILE_AND_RUNTIME_CALL(func) func;
213-
#endif
214-
215188
int main(int, char**) {
216189
{ // test null range
217190
int d = 0;
@@ -233,19 +206,17 @@ int main(int, char**) {
233206
}
234207

235208
{ // larger sorts
236-
// run- and conditionally compile-time tests
209+
// run- and compile-time tests
237210
test_larger_sorts<256>();
238211
test_larger_sorts<257>();
239-
test_larger_sorts<499>();
240-
test_larger_sorts<500>();
241212
#if TEST_STD_VER >= 26
242213
static_assert((test_larger_sorts<256>(), true));
243214
static_assert((test_larger_sorts<257>(), true));
244-
static_assert((test_larger_sorts<499>(), true));
245-
static_assert((test_larger_sorts<500>(), true));
246215
#endif
247216

248217
// only runtime tests bc. error: "constexpr evaluation hit maximum step limit"
218+
test_larger_sorts<499>();
219+
test_larger_sorts<500>();
249220
test_larger_sorts<997>();
250221
test_larger_sorts<1000>();
251222
test_larger_sorts<1009>();

0 commit comments

Comments
 (0)