feat(test): ludic test -j N runs tests side by side

Every file is compiled, linked and every test block run as up to N jobs
at once (xargs -P; default the CPU count), each test with a TMPDIR of
its own, and the report is read back in file order. Windows keeps the
sequential path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-25 11:38:09 +03:00
parent e738741521
commit e3219f17dd
8 changed files with 162 additions and 12 deletions

View file

@ -30,6 +30,7 @@ program Ludic {
import "bundle.ludic"
import "scripts.ludic"
import "deps.ludic"
import "testpar.ludic"
function usage() -> void {
print("ludic — the toolchain for the Ludic language")
@ -41,7 +42,7 @@ program Ludic {
print(" run [file] [--headless] build the project and run it")
print(" build [file] [--headless] [-o out]")
print(" compile to build/<name> (a native binary, nothing to ship beside it)")
print(" test [file...] [-v] [--test NAME]")
print(" test [file|dir...] [-j N] [-v] [--test NAME]")
print(" compile and run the project's tests (-v: every test's line)")
print(" deps [file] [--graph|--dot|--writes|--uses MOD|--check F|--baseline F]")
print(" the module graph as the compiler sees it, and how tangled it is")