diff options
| author | Sung, Po Han | 2026-03-02 17:28:14 +0800 |
|---|---|---|
| committer | Martin Hořeňovský | 2026-04-02 10:24:46 +0200 |
| commit | f4e83daa184595cee80a8d37f145cb5d6b9b21ba (patch) | |
| tree | 8faf3c3dc9a4a44a03fd1238b69d4ddfb7d39aba | |
| parent | 572f96b8febec9dd14ac5284e6a959a7246325c8 (diff) | |
| download | catch3-f4e83daa184595cee80a8d37f145cb5d6b9b21ba.tar.gz | |
Fix catch_discover_tests PRE_TEST failure with zero discoverable tests
When using catch_discover_tests() with DISCOVERY_MODE PRE_TEST and a
multi-config generator (e.g. Ninja Multi-Config), if a test target has
zero discoverable tests (e.g. all tests tagged with [.]), ctest fails:
CMake Error: include could not find requested file:
.../test-hidden-b12d07c_tests-Release.cmake
The early return added in #2962 (76f70b14) correctly prevented a JSON
parsing crash for zero tests, but skipped writing the ctest file. The
PRE_TEST include script unconditionally includes this file, so the
missing file causes a hard error that aborts all test discovery.
Write an empty file before returning early so the include always
succeeds.
| -rw-r--r-- | extras/CatchAddTests.cmake | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/extras/CatchAddTests.cmake b/extras/CatchAddTests.cmake index 90fbd5e3..4c27f479 100644 --- a/extras/CatchAddTests.cmake +++ b/extras/CatchAddTests.cmake @@ -146,6 +146,7 @@ function(catch_discover_tests_impl) # Exit early if no tests are detected if(num_tests STREQUAL "0") + file(WRITE "${_CTEST_FILE}" "") return() endif() |