[libcxx-commits] [libcxx] [libcxxabi] [libcxx][test] Disable large_tests for picolib builds (PR #103930)

David Spickett via libcxx-commits libcxx-commits at lists.llvm.org
Wed Aug 14 06:16:02 PDT 2024


https://github.com/DavidSpickett created https://github.com/llvm/llvm-project/pull/103930

We had a few xfails due to memory limitations, so we should use the existing large_tests feature instead, and disable it for picolib runs.

There is one existing test, stringstream.members/gcount.pass.cpp, which requires large_tests. However it is also unsupported on 32 bit platforms, so we don't lose any coverage there.

>From 6c77177e3c08a9be95b8fba0f05299d9556106bd Mon Sep 17 00:00:00 2001
From: David Spickett <david.spickett at linaro.org>
Date: Wed, 14 Aug 2024 13:12:08 +0000
Subject: [PATCH] [libcxx][test] Disable large_tests for picolib builds

We had a few xfails due to memory limitations, so we should use the
existing large_tests feature instead, and disable it for picolib runs.

There is one existing test, stringstream.members/gcount.pass.cpp,
which requires large_tests. However it is also unsupported on 32 bit platforms,
so we don't lose any coverage there.
---
 libcxx/cmake/caches/Armv7M-picolibc.cmake                      | 3 ++-
 .../simd/simd.reference/reference_assignment.pass.cpp          | 3 +--
 libcxxabi/test/test_demangle.pass.cpp                          | 3 +--
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/libcxx/cmake/caches/Armv7M-picolibc.cmake b/libcxx/cmake/caches/Armv7M-picolibc.cmake
index b5f9089308d22e..705e408ba2c760 100644
--- a/libcxx/cmake/caches/Armv7M-picolibc.cmake
+++ b/libcxx/cmake/caches/Armv7M-picolibc.cmake
@@ -30,7 +30,8 @@ set(LIBCXX_ENABLE_THREADS OFF CACHE BOOL "")
 set(LIBCXX_ENABLE_WIDE_CHARACTERS OFF CACHE BOOL "")
 set(LIBCXX_INCLUDE_BENCHMARKS OFF CACHE BOOL "")
 # Long tests are prohibitively slow when run via emulation.
-set(LIBCXX_TEST_PARAMS "long_tests=False" CACHE STRING "")
+# Large tests won't fit in the memory of the emulated machine.
+set(LIBCXX_TEST_PARAMS "long_tests=False;large_tests=False" CACHE STRING "")
 set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
 set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")
 set(LIBUNWIND_ENABLE_STATIC ON CACHE BOOL "")
diff --git a/libcxx/test/std/experimental/simd/simd.reference/reference_assignment.pass.cpp b/libcxx/test/std/experimental/simd/simd.reference/reference_assignment.pass.cpp
index 013adb36859352..2d5e73dfbe027d 100644
--- a/libcxx/test/std/experimental/simd/simd.reference/reference_assignment.pass.cpp
+++ b/libcxx/test/std/experimental/simd/simd.reference/reference_assignment.pass.cpp
@@ -8,8 +8,7 @@
 
 // UNSUPPORTED: c++03, c++11, c++14
 
-// The machine emulated in tests does not have enough memory for code.
-// UNSUPPORTED: LIBCXX-PICOLIBC-FIXME
+// REQUIRES: large_tests
 
 // <experimental/simd>
 //
diff --git a/libcxxabi/test/test_demangle.pass.cpp b/libcxxabi/test/test_demangle.pass.cpp
index ab783cf9d96f22..d9ab119baff8ab 100644
--- a/libcxxabi/test/test_demangle.pass.cpp
+++ b/libcxxabi/test/test_demangle.pass.cpp
@@ -6,8 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-// This test is too big for most embedded devices.
-// XFAIL: LIBCXX-PICOLIBC-FIXME
+// REQUIRES: large_tests
 
 // https://llvm.org/PR51407 was not fixed in some previously-released
 // demanglers, which causes them to run into the infinite loop.



More information about the libcxx-commits mailing list