https://gcc.gnu.org/g:61584f377ceee868c73a994e4d9d7b7bee5fb443
commit r14-10734-g61584f377ceee868c73a994e4d9d7b7bee5fb443 Author: Jonathan Wakely <jwak...@redhat.com> Date: Thu Jun 6 11:50:06 2024 +0100 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. (cherry picked from commit 003ce8a6c4c28f8d285134afa9a423d0e234cf2e) Diff: --- .../testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc | 4 ++++ libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc | 4 ++++ libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc | 1 + libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h | 4 ++++ 4 files changed, 13 insertions(+) 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 61bbca758b4f..63e6abe2ea46 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 ed07810618d6..1567c369c4cd 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 6d441cc3ae9d..797d0ee9340c 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 ecf5cd1c89db..214e3452aa75 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);