Commit Graph
33 Commits
Author SHA1 Message Date
Dean ad622fc18d Merge pull request #11430 from StoneDC/fix/ctest-quoted-semicolons
fix(tools): preserve quoted CMake semicolon escapes
2026-10-27 18:38:27 +13:00
Dean ef32005ae1 Merge pull request #11069 from plexerPK/codex/workflow-script-registration
fix(tools): ignore workflow metadata in script registration
2026-10-27 18:31:16 +13:00
StoneDC 4bf3c72487 fix(tools): preserve quoted CMake semicolon escapes 2026-10-26 20:54:36 +08:00
StoneDC 87e1f00217 fix(tools): honor quoted CMake line continuations 2026-10-26 01:22:40 +08:00
plexerPK cf9fd359ee fix(tools): ignore workflow metadata in script registration 2026-10-25 17:45:38 +01:00
Bram910andClaude Opus 5.5 2ad29a5a91 fix(tools): match workflow test scripts only as whole paths
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 22:18:43 +02:00
emirplus 685e15d034 fix(tools): reconfigure streams with backslashreplace in check_test_registration 2026-10-23 19:03:09 +03:00
Kovalev Vladislav 1d153c7be6 fix(ci): honor initial newlines in CMake bracket arguments 2026-10-23 12:08:55 +06:00
emirplus 810d2a2976 fix(ci): decode CMakeCache with utf-8-sig and wrap entrypoint in check_test_registration 2026-10-22 18:29:25 +03:00
Jota d502c75b5f fix(tools): skip commented workflow lines when finding test scripts
A YAML comment line such as '# python3 tools/tests/test_x.py' counted as a run, because only a comment after a space was stripped. Skip lines whose first non-blank character is '#', also inside run blocks, and strip a trailing comment after any whitespace.
2026-10-20 12:39:44 +02:00
Jota 34d3199601 fix(tools): fail when a test_*.py script is never run
check_test_registration.py only audits built test executables, so a Python test that no add_test or workflow names is silently skipped. Add a --scripts mode that lists the tracked test_*.py scripts and fails for any not run by an add_test of a CMakeLists or a python step of a workflow, and register it as a ctest so the relinker builds run it.
2026-10-20 12:39:44 +02:00
Dean 7914531d6c Merge pull request #8130 from xXPBSXx/fix/test-registration-build-errors
fix(tools): report an unusable build directory in check_test_registration
2026-10-20 18:34:14 +13:00
xXPBSXxandClaude Sonnet 5.5 3f18855d3e fix(tools): report an unusable build directory in check_test_registration
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 01:15:06 +02:00
maximaxi01 4c8daaf25a fix(tools): ignore CMake literals when checking test registration 2026-10-19 13:14:56 -04:00
MrMha 911708633e fix: retain enabled CTest registrations across configurations 2026-10-15 18:55:05 +04:00
Adrià 8c5516ce24 Merge pull request #5737 from wachi35676/fix/tools-registration-multi-config
fix(tools): count tests registered per configuration as run
2026-10-15 15:05:50 +02:00
Adrià 4ae78dc136 Merge pull request #5012 from ideabsassistenza/fix/registration-bracket-comments
fix(tests): ignore bracket comments in registration audit
2026-10-14 19:39:57 +02:00
Muhammad Wasif Ali WasifandClaude Opus 5.5 c53c349095 fix(tools): count tests registered per configuration as run
Ninja Multi-Config writes one add_test per configuration and a final NOT_AVAILABLE one for the same name. The audit kept only the last, so every test executable was reported as never run.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 13:37:17 +05:00
Rujul Talekar 39317d5b31 fix(tools): decode Ninja targets using its build-file encoding 2026-10-14 10:50:32 +05:30
ideabsassistenza 8a51ff3154 fix(tests): ignore bracket comments in registration audit 2026-10-13 10:07:08 +02:00
Rujul Talekar 0c52b2a0b0 fix(tools): use configured CMAKE_MAKE_PROGRAM for test registration audit
tools/check_test_registration.py invoked bare ninja from PATH, so the audit failed with FileNotFoundError when the configured Ninja lived outside PATH. Read CMAKE_MAKE_PROGRAM from the build directory CMakeCache.txt and fail honestly when it is missing. Adapt the mocked built tests to a configured build and add a regression that runs a real Ninja from a path with spaces outside PATH.
2026-10-12 21:59:53 +05:30
ArjenS-LA 9504762edb fix(tools): ignore unreachable CTest registration files 2026-10-12 00:00:28 -07:00
MrMha 0ffd244af2 fix(ci): preserve test discovery and skip diagnostics 2026-10-11 18:25:36 +04:00
Привалов Александр Владимирович e419096bff fix(tools): ignore test names when checking executable registration 2026-10-10 09:54:44 +02:00
Dean Galvin d1bf5c73de fix(tools): drop agc_driver_recorder_tests from KNOWN_UNRUN
#1331 registered the agc_pipeline_cache ctest, which runs
agc_driver_recorder_tests, without removing that executable from
KNOWN_UNRUN, so check_test_registration fails on main:
'agc_driver_recorder_tests is run by ctest now; remove it from KNOWN_UNRUN'.
The list is empty now; keep it a set for the set operations below.
2026-10-10 15:13:05 +13:00
Pedro 3e01e740e4 test(videoout): drop video_out_flip_tests from KNOWN_UNRUN now that ctest runs it 2026-10-09 06:53:27 -05:00
Gerard L.andClaude Opus 5.5 1d6968225f test(agc): run agc_driver_mesh_tests under ctest
The mesh test was built only on request and never registered, so the
translation of NGG geometry programs to mesh shaders ran in no test
run. On an RTX 4060 it passes. Register it with the other AGC driver
tests.

Three cases would fail or mislead under ctest. Without a Vulkan device
the test failed, and the Windows job has none. A device without
VK_EXT_mesh_shader exited 0, so ctest reported a pass for a test that
drew nothing. On llvmpipe, with the Linux job's Mesa 25.2.8 and Ubuntu
24.04's LLVM 20.1.2, every draw that builds a mesh pipeline stops the
process with "LLVM ERROR: Cannot emit physreg copy instruction"; Mesa
26.2.4 with LLVM 23.1 segfaults in LLVM's code generation instead. The
SPIR-V of all 18 modules the test builds passes spirv-val. Mesa #14376
reports the same error for lavapipe mesh shaders that index shared
memory per invocation; that the cause is the same is not established.

The test now opens its device with OpenVulkanTestDevice and exits 77
without a device, without VK_EXT_mesh_shader and on llvmpipe, saying
why. ANYPS5_REQUIRE_VULKAN still turns a missing device into a
failure. The Linux job therefore skips the test; it runs on hosts with
a GPU.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 23:44:46 +02:00
Daniele Giovane 59fd202257 fix(ci): remove stale formatting test exception 2026-10-08 16:07:07 +02:00
Adrià FranchandClaude 464f673170 ci: keep the not-run list per platform
guest_formatting_tests runs only on Windows and windows_exception_tests only
exists there, so the stale-entry check failed the Windows job.

Co-Authored-By: Claude <[email protected]>
2026-10-08 12:02:39 +02:00
Adrià FranchandClaude 0208dea491 ci: fail when a KNOWN_UNRUN test is run by ctest
agc_driver_bda_device_tests is registered on main, so its entry hid any
future loss of that registration.

Co-Authored-By: Claude <[email protected]>
2026-10-08 11:40:34 +02:00
Dextroid17 5d6ec8ee1f fix(ci): read only linked executables out of the build graph
The Windows job failed the check with two names that are not test
executables. `libhost_thread_local_test_library` is a support library
whose RUNTIME_OUTPUT_DIRECTORY puts it in the test directory; on Linux
its output is a library artifact and never lands there, which is why the
Linux job stayed green. `windows_exception_tests` is a MINGW-only test
executable that no `add_test` registers.

Ninja prints the rule beside each target, and CMake links an executable
with `CXX_EXECUTABLE_LINKER__<target>_<config>` and a shared library with
`CXX_SHARED_LIBRARY_LINKER__...`, on every platform. Requiring EXECUTABLE
in the rule leaves the library out and keeps the Linux count at 362.

`windows_exception_tests` is a real instance of the class this check
looks for, so record it beside the other five rather than fail the job
that found it.
2026-10-08 11:40:34 +02:00
Dextroid17 28d9b1a49b fix(ci): read the test executable list on Windows as well
The Windows job failed on the new step with
"no test executables found under build". Ninja prints the target names
with the platform separator, so the Windows build graph lists
tests\name_tests.exe where Linux lists tests/name_tests, and the reader
matched neither the backslash nor the .exe suffix.

Accept both separators and a .exe suffix. Verified by driving the
function with recorded Ninja output for both platforms, which now
return the same names, and by re-running the check against the Linux
tree, which still reports 362 test executables and the same five.
2026-10-08 11:40:34 +02:00
Dextroid17 dd5c052dc5 ci: fail when a test executable is built that no test runs
A test executable can be declared with add_test_executable and never
registered with add_test. It is then built and never run, and ctest
reports a full pass over what it knows, so nothing in CI says so.

Measured on main, five test executables are in this state: the driver's
mesh and recorder tests, the guest formatting tests, the video out flip
tests and the BDA device tests.

tools/check_test_registration.py compares the test executables CMake
builds, read from the build graph, against the add_test calls in the
generated CTestTestfile.cmake files, which are written at configure time
and so do not depend on the build having finished. It fails on a test
executable that nothing runs, and records those five by name so the job
stays green until they are dealt with.

Both jobs run it right after configure, before anything is built.
2026-10-08 11:40:34 +02:00