Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSung, Po Han2026-03-02 17:28:14 +0800
committerMartin Hořeňovský2026-04-02 10:24:46 +0200
commitf4e83daa184595cee80a8d37f145cb5d6b9b21ba (patch)
tree8faf3c3dc9a4a44a03fd1238b69d4ddfb7d39aba
parent572f96b8febec9dd14ac5284e6a959a7246325c8 (diff)
downloadcatch3-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.cmake1
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()