Ships the CI fix together with the test-harness work that supports it, so
every tier stays honest on every machine.
scripts/test.sh
- T6 records missing-artifact failures as skips when no imported game3 data
exists at all (empty CI identity, no data/generated): the data-driven
top-level suites assert instead of self-skipping on a fresh runner. The
skipped suite names are printed with that reason; with data present the
same failure gates exactly as before.
- The T3 content verdict now weighs the exit code and the FAIL-line allowlist
together. The exit code used to be discarded, so a mid-run crash
(unresolvable require under POKEPORT_DATA_DIR) printed green checks, zero
FAIL lines, and passed. A non-zero exit with no FAIL line is reported as a
crash with the error line captured - a crash is not a pass.
Test-suite fixes, each run green (several twice)
- tests/run_tests.lua: restore per-suite leaked state and add the Data seam,
so one suite's loaded data cannot leak into the next.
- tests/mod_runtime_tests.lua: save and restore the environment around each
case.
- tests/parity_ss_anne_rooms.lua: _loadModule raw-order fix (30/30).
- tests/parity_ss_anne_departure.lua: the Data seams plus the playMap stub.
- playMap stubs for parity_rival_walkoff, parity_tower_rival,
parity_silph_rival_bug2241 and parity_ss_anne_guard.
- Class-B seams in mod_registry_tests, mod_catalog_tests, mod_ui_tests,
parity_ball_shake_anim, parity_wavy_screen, parity_hidden_coins_bcd_bug1810,
parity_mart_stock and parity_rocket3_sight_bug1814.
Together these close the 57 failing checks that were on the content tier
(allowlist stays at 0), so a content run on a machine with imports ends
ALL TESTS PASSED.
Inset save-editor chrome and pickers into SafeArea so Save stays tappable on punch-hole phones (#917), replace move cycling with a ranked search modal that reflows on phones/RGxxx, and omit the engine version from window titles on stamped release builds.
* Make ROM-free test tiers actually run on Windows
Suite discovery, the extension-point catalog scan, mod test-dir pickup,
and the meta-coverage corpus all shelled out to ls/find/test -d, which do
not exist in cmd.exe. Every listing came back empty on Windows, so tiers
ran 0 suites and still reported ALL TESTS PASSED.
Add portable probes to tests/fs_io.lua (same Unix commands on
Linux/macOS; dir /b and a shell-free rename-self existence check on
Windows) and rewire the four call sites to them. 15/15 engine suites and
2/2 modkit suites now genuinely run and pass on Windows.
Fixes#266
* Make the T3 content tier run on Windows
The content tier had the same Unix-shell assumptions as the tier
discovery fixed in #267, one level down:
- run_tests.lua redirected to /dev/null when chaining tier runners
- mod_runtime_tests.lua called ffi setenv/unsetenv, which msvcrt lacks
(_putenv with an empty value unsets)
- modkit_tests.lua captured exit codes with POSIX '; echo 0' (cmd
needs /v:on and !errorlevel!), called python3 (python on Windows),
and used mkdir -p / rm -rf; cmd mkdir makes parents on its own and
read -p as a directory name
- the save-editor suites globbed save backups with ls
- tools/save-editor/Catalog.lua scraped mod flags with ls; this one
affects the real editor on Windows, not just tests
With a ROM imported, run_tests.lua goes from 12 failures to the 3 that
track the missing audio.lua generation (#268), which fails on any OS
and needs a maintainer decision.
---------
Co-authored-by: johnjohto <johnjohto@users.noreply.github.com>