Files
CMake/.gitlab/ci/ctest_exclusions.cmake
T
Brad King 2e59cee922 FindXCTest: Fix test module generation for Xcode 16
In Xcode 7.3 and above, the `TEST_HOST` setting causes Xcode to
implicitly place the test module inside the executable bundle regardless
of the module's own location settings.  Since commit a364d2513a (Xcode:
Fixup XCTest bundle location for Xcode 7.3, 2016-03-25, v3.5.2~6^2) we
explicitly tell CMake to put the test module in the same location so
that generator expressions used by `xctest_add_test` agree with where
Xcode actually puts it.  In Xcode 16 and above, our explicit location
settings for the test module conflict with Xcode's `TEST_HOST` rules,
causing errors about multiple commands producing the same path.

Fix this by dropping CMake's explicit location for the test module
unless needed to match a project-specified location for the testee.
Instead, teach `xctest_add_test` to express the xctest module location
selected by `TEST_HOST` by using generator expressions referencing the
testee bundle.

Fixes: #26301
Fixes: #26514
2025-04-09 17:06:13 -04:00

34 lines
1.0 KiB
CMake

set(test_exclusions
# This test hits global resources and can be handled by nightly testing.
# https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4769
"^BundleGeneratorTest$"
)
if (CTEST_CMAKE_GENERATOR MATCHES "Visual Studio")
list(APPEND test_exclusions
# This test takes around 5 minutes with Visual Studio.
# https://gitlab.kitware.com/cmake/cmake/-/issues/20733
"^ExternalProjectUpdate$"
# This test is a dependency of the above and is only required for it.
"^ExternalProjectUpdateSetup$")
endif ()
if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "_asan")
list(APPEND test_exclusions
CTestTest2 # crashes on purpose
BootstrapTest # no need to cover this for asan
)
endif()
if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "_jom")
list(APPEND test_exclusions
# JOM often fails with "Couldn't change working directory to ...".
"^ExternalProject$"
)
endif()
string(REPLACE ";" "|" test_exclusions "${test_exclusions}")
if (test_exclusions)
set(test_exclusions "(${test_exclusions})")
endif ()