Commit Graph
27 Commits
Author SHA1 Message Date
plexerPK 8608bd2171 fix(ci): retain leading BOM characters in Git paths 2026-10-26 18:39:36 +01:00
plexerPK 46ac6233e9 fix(ci): preserve changed paths in test selection 2026-10-26 18:39:36 +01:00
Dean 9c9d5d439f Merge pull request #11180 from hyvvs/fix/select-tests-invalid-graph
fix(tools): reject malformed saved test graphs
2026-10-27 05:45:37 +13:00
Adrià 8813b0356e Merge pull request #9556 from dantdmdarealguy/fix/select-tests-utf8-deps
fix(tools): decode Ninja's header dependencies as UTF-8 in select_tests
2026-10-25 22:35:23 +01:00
hyvvs 34d07d733d fix(tools): reject malformed saved test graphs 2026-10-25 21:45:19 +01:00
Adrià FranchandClaude 82b3e66f29 fix(tools): build excluded executables a selected test gets as definitions
Co-Authored-By: Claude <[email protected]>
2026-10-24 11:46:56 +02:00
Adrià FranchandClaude 860c772e2c fix(tools): keep executables passed as -D definitions in select_tests
Co-Authored-By: Claude <[email protected]>
2026-10-24 09:33:30 +02:00
Dean 40e5962114 Merge pull request #10227 from veosett/codex/select-tests-windows-batches
fix(tools): measure Windows test batches after quoting
2026-10-24 11:54:31 +13:00
emirplus dd45b07ce1 fix(tools): reconfigure streams with backslashreplace in select_tests
Reconfigure sys.stdout and sys.stderr with backslashreplace error handling at the entrypoint of main() so test graph dumping and change diagnostics do not fail on Windows consoles configured with non-UTF-8 code pages.
2026-10-23 18:57:48 +03:00
Kovalev Vladislav 98737e2175 fix(tools): measure Windows test batches after quoting 2026-10-23 20:29:54 +06:00
xTRACKGOD 9dd607ee33 fix(tools): skip unselected executables in fresh builds 2026-10-23 12:55:36 +05:30
dantdmdarealguy d85426069c fix(tools): decode Ninja's header dependencies as UTF-8 in select_tests
ninja -t deps lists the paths GCC wrote to its depfiles. WinLibs GCC
15.2.0 runs with the UTF-8 active code page, while its Ninja 1.13.2
reports an ANSI build-file encoding, so a header under C:\Users\José\...
decoded with mbcs became José, fell outside the source tree and dropped
out of every test's inputs. Decode the dependency lines as UTF-8 and keep
the build-file encoding for the outputs they belong to.
2026-10-22 06:28:04 -05:00
emirplus b85e8f9e15 fix(tools): read CMakeCache, graph and changed list with utf-8-sig in select_tests 2026-10-21 19:48:31 +03:00
Dean 4640d3f0f9 Merge pull request #8230 from xXPBSXx/fix/select-tests-changed-list-bom
fix(tools): read the select_tests changed-file list as UTF-8 with a byte order mark
2026-10-21 16:09:38 +13:00
xXPBSXxandClaude Sonnet 5.5 e078bc4439 fix(tools): report an unusable build directory in select_tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 22:27:30 +02:00
Dean ecdf9b3901 Merge pull request #7436 from MrMha/feat/explain-test-selection-20261018
feat: explain saved test selections and fixture dependencies
2026-10-21 09:13:59 +13:00
xXPBSXxandClaude Sonnet 5.5 3f007a8798 fix(tools): read the select_tests changed-file list as UTF-8 with a byte order mark
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 03:00:15 +02:00
emirplus 11e11a1d1c fix(tools): avoid invoking ctest when no tests are selected in plan 2026-10-19 19:34:33 +03:00
Adrià 01ef2d2961 Merge pull request #6981 from Lorkydey/fix/selected-test-fixture-builds
fix(ci): build fixture helpers added by CTest
2026-10-19 17:28:14 +02:00
MrMha b9a5d3dfc3 feat: explain saved test selections and fixture dependencies 2026-10-18 10:17:59 +04:00
Dean 412d520e1c Merge pull request #6961 from savvaniss/fix/select-tests-junction
test(tools): build the select_tests fixture under a junction where Windows refuses symlinks
2026-10-18 02:16:19 +13:00
emirplus 1783de553b fix(tools): handle trailing separators in select_tests root paths 2026-10-17 14:17:42 +03:00
lorkydey ff159f5d61 fix(ci): build fixture helpers added by CTest 2026-10-17 03:00:24 +02:00
Savvanis SpyrosandClaude Opus 5.5 c56dbc6166 test(tools): build the select_tests fixture under a junction where Windows refuses symlinks
The fixture builds its project under a directory symlink so that the
paths CMake records differ from the resolved ones. Creating a symlink on
Windows needs SeCreateSymbolicLinkPrivilege, which a user without
Developer Mode or elevation lacks, so setUpClass failed with WinError
1314 and select_tests failed on every local Windows run. On that error
the link is now a directory junction, a reparse point realpath resolves
the same way. Where symlinks can be created nothing changes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 00:19:35 +03:00
Adrià FranchandClaude c64d2cae0f fix(tools): keep path case in select_tests on Windows
normcase lowered every path it returned, so on Windows the test graph dump
asked ninja for tests/memorypooltest.exe, which it doesn't know as
MemoryPoolTest.exe, and failed; repo paths came out lowered too and could
never match the changed files git lists. Ignore case only to compare.

Co-Authored-By: Claude <[email protected]>
2026-10-16 22:04:06 +02:00
Adrià FranchandClaude 2b056a4795 ci: keep the build paths CMake recorded in select_tests.py
Co-Authored-By: Claude <[email protected]>
2026-10-16 21:02:18 +02:00
Adrià FranchandClaude 13f6191b75 ci: build and run only the tests a change reaches on request
A new select input of the Build workflow limits the Linux and Windows jobs
to the test executables and tests whose build inputs the merged pull
requests change. Push builds of main always build and run everything and
save the test graph of their tree; dispatched runs with select restore the
latest graph and fall back to a full run without one.

tools/select_tests.py dump walks the ninja graph of every test executable
(order-only dependencies included, so prx libraries loaded at run time are
in it) plus the header dependencies of its objects, the CMake files that
register each test, the source files its command line names, and its
fixtures. select picks the tests whose closure, registration or arguments
contain a changed file, and every test that is not a native executable of
the tree; files no build reads select the tests under their directory;
changes to the root build, cmake/, 3rdparty/, the workflow or the tool run
everything. Tests added since the graph was written always run. ctest gets
the selection as -I indices through the tool, which keeps the cmd shell on
Windows and stays under its command line limit.

Co-Authored-By: Claude <[email protected]>
2026-10-16 19:10:16 +02:00