# Common-Lisp-on-SX conformance config — sourced by lib/guest/conformance.sh. # # CL suites run their tests at *load* time, mutating per-suite global counters # (different variable names per suite), and each suite needs a different # preload chain. Both are expressed via the extended MODE=counters SUITES # format: "name:file:pass-var:fail-var:extra-preload ...". LANG_NAME=common-lisp MODE=counters # No global counter defaults — every suite names its own pair below. COUNTERS_PASS= COUNTERS_FAIL= TIMEOUT_PER_SUITE=180 # Base preloads common to every suite (loaded before each suite's own chain). PRELOADS=( spec/stdlib.sx lib/guest/prefix.sx ) # name:file:pass-var:fail-var:extra-preloads(space-separated) SUITES=( "read:lib/common-lisp/tests/read.sx:cl-test-pass:cl-test-fail:lib/common-lisp/reader.sx" "lambda:lib/common-lisp/tests/lambda.sx:cl-test-pass:cl-test-fail:lib/common-lisp/reader.sx lib/common-lisp/parser.sx" "eval:lib/common-lisp/tests/eval.sx:cl-test-pass:cl-test-fail:lib/common-lisp/reader.sx lib/common-lisp/parser.sx lib/common-lisp/eval.sx" "conditions:lib/common-lisp/tests/conditions.sx:passed:failed:lib/common-lisp/runtime.sx" "restart-demo:lib/common-lisp/tests/programs/restart-demo.sx:demo-passed:demo-failed:lib/common-lisp/runtime.sx" "parse-recover:lib/common-lisp/tests/programs/parse-recover.sx:parse-passed:parse-failed:lib/common-lisp/runtime.sx" "interactive-debugger:lib/common-lisp/tests/programs/interactive-debugger.sx:debugger-passed:debugger-failed:lib/common-lisp/runtime.sx" "clos:lib/common-lisp/tests/clos.sx:passed:failed:lib/common-lisp/runtime.sx lib/common-lisp/clos.sx" "geometry:lib/common-lisp/tests/programs/geometry.sx:geo-passed:geo-failed:lib/common-lisp/runtime.sx lib/common-lisp/clos.sx" "mop-trace:lib/common-lisp/tests/programs/mop-trace.sx:mop-passed:mop-failed:lib/common-lisp/runtime.sx lib/common-lisp/clos.sx" "macros:lib/common-lisp/tests/macros.sx:macro-passed:macro-failed:lib/common-lisp/reader.sx lib/common-lisp/parser.sx lib/common-lisp/eval.sx lib/common-lisp/loop.sx" "stdlib:lib/common-lisp/tests/stdlib.sx:stdlib-passed:stdlib-failed:lib/common-lisp/reader.sx lib/common-lisp/parser.sx lib/common-lisp/eval.sx" ) # Preserve the historical scoreboard schema (total_pass/total_fail, suites with # name/pass/fail) so any consumer of lib/common-lisp/scoreboard.json keeps working. emit_scoreboard_json() { local n=${#GC_NAMES[@]} i printf '{\n' printf ' "generated": "%s",\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" printf ' "total_pass": %d,\n' "$GC_TOTAL_PASS" printf ' "total_fail": %d,\n' "$GC_TOTAL_FAIL" printf ' "suites": [\n' for ((i=0; i/dev/null; then status="pass"; else status="FAIL"; fi printf '| %s | %s | %s | %s |\n' "${GC_NAMES[$i]}" "$p" "$f" "$status" done printf '\n**Total: %d passed, %d failed**\n' "$GC_TOTAL_PASS" "$GC_TOTAL_FAIL" }