aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2024-06-06 11:50:06 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2024-06-26 21:14:14 +0100
commit003ce8a6c4c28f8d285134afa9a423d0e234cf2e (patch)
treea89452e24ede4776ebd29936276c3beefcb3b48f
parent0ca8d56f2085715f27ee536c6c344bc47af49cdd (diff)
downloadgcc-003ce8a6c4c28f8d285134afa9a423d0e234cf2e.zip
gcc-003ce8a6c4c28f8d285134afa9a423d0e234cf2e.tar.gz
gcc-003ce8a6c4c28f8d285134afa9a423d0e234cf2e.tar.bz2
libstdc++: Work around some PSTL test failures for debug mode [PR90276]
This addresses one known failure due to a bug in the upstream tests, and a number of timeouts due to the algorithms running much more slowly with debug mode checks enabled. libstdc++-v3/ChangeLog: PR libstdc++/90276 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode. * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc [_GLIBCXX_DEBUG]: Reduce size of test data. * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: Likewise. * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc4
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc4
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h4
4 files changed, 13 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
index 61bbca7..63e6abe 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
@@ -133,7 +133,11 @@ void
test_by_type(Generator1 generator1, Generator2 generator2, Compare comp)
{
using namespace std;
+#ifdef _GLIBCXX_DEBUG
+ size_t max_size = 1000;
+#else
size_t max_size = 10000;
+#endif
Sequence<T> in1(max_size, [](size_t v) { return T(v); });
Sequence<T> exp(max_size, [](size_t v) { return T(v); });
size_t m;
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
index ed07810..1567c36 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
@@ -77,7 +77,11 @@ void
test_includes(Compare compare)
{
+#ifdef _GLIBCXX_DEBUG
+ const std::size_t n_max = 10000;
+#else
const std::size_t n_max = 1000000;
+#endif
// The rand()%(2*n+1) encourages generation of some duplicates.
std::srand(42);
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
index 6d441cc..797d0ee 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
@@ -3,6 +3,7 @@
// { dg-do run { target c++17 } }
// { dg-timeout-factor 3 }
// { dg-require-effective-target tbb_backend }
+// { dg-xfail-run-if "see PR 90276" { debug_mode } }
//===-- partial_sort.pass.cpp ---------------------------------------------===//
//
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
index ecf5cd1..214e345 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
@@ -51,7 +51,11 @@ namespace TestUtils
void
test_set_op(Compare compare)
{
+#ifdef _GLIBCXX_DEBUG
+ const std::size_t n_max = 1000;
+#else
const std::size_t n_max = 100000;
+#endif
// The rand()%(2*n+1) encourages generation of some duplicates.
std::srand(4200);