2025-09-22 21:52:39 +09:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
2025-09-22 23:25:35 +09:00
|
|
|
ROOT_DIR=$(cd "$(dirname "$0")/../../../.." && pwd)
|
2025-09-22 21:52:39 +09:00
|
|
|
cd "$ROOT_DIR"
|
|
|
|
|
|
|
|
|
|
echo "[smoke] build nyash (release)"
|
|
|
|
|
cargo build --release -q
|
|
|
|
|
|
|
|
|
|
BIN=./target/release/nyash
|
|
|
|
|
CHILD=apps/selfhost/compiler/compiler.nyash
|
|
|
|
|
|
|
|
|
|
echo "[smoke] run child (baseline)"
|
|
|
|
|
BASE=$("$BIN" --backend vm "$CHILD" -- --min-json)
|
|
|
|
|
|
|
|
|
|
echo "[smoke] run child (loopform on)"
|
|
|
|
|
WITH=$("$BIN" --backend vm "$CHILD" -- --min-json --loopform)
|
|
|
|
|
|
|
|
|
|
if [[ "$BASE" != "$WITH" ]]; then
|
|
|
|
|
echo "❌ loopform identity prepass altered JSON" >&2
|
|
|
|
|
diff -u <(echo "$BASE") <(echo "$WITH") || true
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "$BASE" | grep -q '"kind":"Program"' || { echo "❌ baseline JSON missing Program kind" >&2; exit 1; }
|
|
|
|
|
|
|
|
|
|
echo "✅ loopform identity smoke passed"
|
|
|
|
|
|