From 5c3d4d059ae70ea72b52e89940746d61c1d962db Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 17 Oct 2026 04:59:10 +0000 Subject: docs(tests): require a native perl on Windows CI Co-Authored-By: Claude Fable 5.1 --- AGENTS/TESTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS/TESTING.md b/AGENTS/TESTING.md index 0dfc472..4ef2880 100644 --- a/AGENTS/TESTING.md +++ b/AGENTS/TESTING.md @@ -6,7 +6,7 @@ Each case directory has `program.cps` and `case.json`. Suite i adds `expected.tx Optional manifest fields are `exit_code` for expected program status (default 0) and `timeout` for execution/reference seconds (default 30; file-intensive cases use 180). Compilation has a 120-second timeout. Do not make a known compiler defect pass by changing the expectation, adding an exemption or comparing only a permissive substring of program output. -The Perl runner (`tests/run.pl`) accepts `--case`, `--cpsc`, `--run-mode`, `--perl`, `--reference`, `--seed`, `--count` and `--results`. CMake provides paths, including executable suffixes, and caches `CPSC_TEST_SEED` and `CPSC_TEST_COUNT`. The default seed is HEAD read at execution, not configure time. CI overrides it with the checked-out push SHA. Both native and enabled runner paths are tested independently; NONE skips only runner execution. +The Perl runner (`tests/run.pl`) accepts `--case`, `--cpsc`, `--run-mode`, `--perl`, `--reference`, `--seed`, `--count` and `--results`. CMake provides paths, including executable suffixes, and caches `CPSC_TEST_SEED` and `CPSC_TEST_COUNT`. The default seed is HEAD read at execution, not configure time. CI overrides it with the checked-out push SHA. Both native and enabled runner paths are tested independently; NONE skips only runner execution. Windows CI must configure a native `PERL_EXECUTABLE` (Strawberry Perl) because MSYS perl cannot read the native `D:/` drive paths CMake passes. All commands run without a shell and retain their exact argv, working directory, input, status and output under the case result directory. Each execution path has its own files. Existing results for that case are replaced on re-run. Avoid concurrent runs of the same case into the same results directory. Tests compare CRLF-normalized bytes without stripping whitespace. Runtime diagnostics on stdout are part of fixed expectations; successful compilation and ordinary programs require empty stderr. -- cgit v1.3.1-4-g156e