add shellspec golden harness for the legacy make engine

- spec/golden/cases.txt: 69 black-box cases (CLI wrapper mode and make
  include mode) run in a hermetic sandbox with a mocked docker
- spec/golden/expected/*.txt recorded from this engine (baseline)
- make test / test-golden / golden-record / lint dev targets
This commit is contained in:
Yann Autissier
2026-09-03 14:35:58 +02:00
parent e2e34d813e
commit 1d44a2ff32
102 changed files with 632 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
#!/bin/sh
# Record golden outputs of the LEGACY make engine into spec/golden/expected/.
# Usage: spec/golden/record.sh [case-name ...]
set -u
here=$(cd "$(dirname "$0")" && pwd)
. "$here/../support/run.sh"
MYOS_ROOT=${MYOS_ROOT:-$(cd "$here/../.." && pwd)}
only="$*"
grep -v '^#' "$here/cases.txt" | while IFS='|' read -r name fixture args; do
name=$(echo "$name" | tr -d ' '); fixture=$(echo "$fixture" | tr -d ' ')
[ -z "$name" ] && continue
if [ -n "$only" ]; then case " $only " in *" $name "*) ;; *) continue ;; esac; fi
sb=$(myos_sandbox "$fixture")
eval "set -- $args"
myos_run_engine legacy "$sb" "$@" > "$here/expected/$name.txt"
rm -rf "$sb"
printf 'recorded %s (%s lines)\n' "$name" "$(wc -l < "$here/expected/$name.txt" | tr -d ' ')"
done