diff options
| author | Phil Nash | 2026-07-10 16:42:51 +0100 |
|---|---|---|
| committer | Martin Hořeňovský | 2026-07-22 20:50:17 +0200 |
| commit | eb431764b4cb9b6fa2296a034b4231064f8e464e (patch) | |
| tree | f486843060010eabadde982f69a7da2175c3ae10 /docs | |
| parent | ae5d271da2c88b859d6365281ac075112115d4b1 (diff) | |
| download | catch3-eb431764b4cb9b6fa2296a034b4231064f8e464e.tar.gz | |
Document that DISCOVERY_MODE PRE_TEST should be used with catch_discover_tests when used with XCode.
This addresses https://github.com/catchorg/Catch2/issues/2411 by making the "workaround" the official approach and is consistent with how gtest and cmake deal with the same situation.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/cmake-integration.md | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/docs/cmake-integration.md b/docs/cmake-integration.md index e63e67f6..63b5ebde 100644 --- a/docs/cmake-integration.md +++ b/docs/cmake-integration.md @@ -212,6 +212,17 @@ execution (useful e.g. in cross-compilation environments). calling ``catch_discover_tests``. This provides a mechanism for globally selecting a preferred test discovery behavior. +_Note that on Apple Silicon with the Xcode generator you must use `PRE_TEST`, +e.g. `catch_discover_tests(tests DISCOVERY_MODE PRE_TEST)`. With the default +`POST_BUILD` mode the build fails with `Result: Subprocess killed`, because +macOS on Apple Silicon refuses to run unsigned binaries and Xcode code-signs +the test executable only **after** the post-build script that `POST_BUILD` +mode uses to run it for test discovery. `PRE_TEST` avoids this by delaying +discovery until test time, when the executable is already signed. The same +limitation affects CMake's `gtest_discover_tests`; see +[Catch2 #2411](https://github.com/catchorg/Catch2/issues/2411) and +[CMake #21845](https://gitlab.kitware.com/cmake/cmake/-/issues/21845)._ + * `SKIP_IS_FAILURE` Skipped tests will be marked as failed instead. |