From f070bddb0e6f6fb1b2f95ca116d2d188ae72f375 Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 8 May 2026 18:12:23 +0000 Subject: [PATCH] ocaml: phase 5.1 conformance.sh integrates baseline (458/458 across 15 suites) bash lib/ocaml/conformance.sh now runs lib/ocaml/baseline/run.sh and aggregates pass/fail counts under a 'baseline' suite. Full-suite scoreboard now reports both unit-test results and end-to-end OCaml program runs in a single artifact. --- lib/ocaml/conformance.sh | 11 +++++++++++ lib/ocaml/scoreboard.json | 13 +++++++------ lib/ocaml/scoreboard.md | 11 ++++++----- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/lib/ocaml/conformance.sh b/lib/ocaml/conformance.sh index 7cc471fa..884deb28 100755 --- a/lib/ocaml/conformance.sh +++ b/lib/ocaml/conformance.sh @@ -72,6 +72,17 @@ while IFS= read -r line; do fi done < "$TMPLOG" +# Run baseline OCaml programs and aggregate into a 'baseline' suite. +if [ -x lib/ocaml/baseline/run.sh ]; then + while IFS= read -r line; do + if [[ "$line" =~ ^[[:space:]]*ok\ ([^[:space:]]+\.ml) ]]; then + SUITE_PASS[baseline]=$(( ${SUITE_PASS[baseline]:-0} + 1 )) + elif [[ "$line" =~ ^[[:space:]]*FAIL\ ([^[:space:]]+\.ml) ]]; then + SUITE_FAIL[baseline]=$(( ${SUITE_FAIL[baseline]:-0} + 1 )) + fi + done < <(bash lib/ocaml/baseline/run.sh 2>/dev/null) +fi + # Pull the final pass/total TOTAL_PASS=0 TOTAL_FAIL=0 diff --git a/lib/ocaml/scoreboard.json b/lib/ocaml/scoreboard.json index 909a4877..82bdcb67 100644 --- a/lib/ocaml/scoreboard.json +++ b/lib/ocaml/scoreboard.json @@ -1,21 +1,22 @@ { "suites": { + "baseline": {"pass": 13, "fail": 0}, "eval-core": {"pass": 51, "fail": 0}, - "let-and": {"pass": 3, "fail": 0}, - "misc": {"pass": 87, "fail": 0}, + "let-and": {"pass": 4, "fail": 0}, + "misc": {"pass": 98, "fail": 0}, "parser": {"pass": 106, "fail": 0}, "phase1-params": {"pass": 2, "fail": 0}, "phase2-exn": {"pass": 8, "fail": 0}, "phase2-function": {"pass": 3, "fail": 0}, "phase2-loops": {"pass": 4, "fail": 0}, "phase2-refs": {"pass": 6, "fail": 0}, - "phase3-adt": {"pass": 27, "fail": 0}, + "phase3-adt": {"pass": 33, "fail": 0}, "phase4-modules": {"pass": 14, "fail": 0}, "phase5-hm": {"pass": 38, "fail": 0}, - "phase6-stdlib": {"pass": 59, "fail": 0}, + "phase6-stdlib": {"pass": 60, "fail": 0}, "tokenize": {"pass": 18, "fail": 0} }, - "total_pass": 426, + "total_pass": 458, "total_fail": 0, - "total": 426 + "total": 458 } diff --git a/lib/ocaml/scoreboard.md b/lib/ocaml/scoreboard.md index 551faa72..7194c2e8 100644 --- a/lib/ocaml/scoreboard.md +++ b/lib/ocaml/scoreboard.md @@ -1,20 +1,21 @@ # OCaml-on-SX scoreboard -426 / 426 tests passing. +458 / 458 tests passing. | Suite | Pass | Fail | |---|---:|---:| +| baseline | 13 | 0 | | eval-core | 51 | 0 | -| let-and | 3 | 0 | -| misc | 87 | 0 | +| let-and | 4 | 0 | +| misc | 98 | 0 | | parser | 106 | 0 | | phase1-params | 2 | 0 | | phase2-exn | 8 | 0 | | phase2-function | 3 | 0 | | phase2-loops | 4 | 0 | | phase2-refs | 6 | 0 | -| phase3-adt | 27 | 0 | +| phase3-adt | 33 | 0 | | phase4-modules | 14 | 0 | | phase5-hm | 38 | 0 | -| phase6-stdlib | 59 | 0 | +| phase6-stdlib | 60 | 0 | | tokenize | 18 | 0 |