Files
hakorune/tools/ny_me_dummy_smoke.sh

41 lines
1.2 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
ROOT_DIR=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
BIN="$ROOT_DIR/target/release/nyash"
if [[ ! -x "$BIN" ]]; then
echo "[build] nyash (release) ..." >&2
cargo build --release >/dev/null
fi
TMP_DIR="$ROOT_DIR/tmp"
mkdir -p "$TMP_DIR"
# Enable me dummy injection for entire run
export NYASH_BRIDGE_ME_DUMMY=1
export NYASH_BRIDGE_ME_CLASS=ConsoleBox
# Case 1: me bound to a var and unused (ensures Var("me") resolves)
cat >"$TMP_DIR/me_dummy_bind_only.ny" <<'NY'
local x = me
return 0
NY
OUT1=$(python3 "$ROOT_DIR/tools/ny_parser_mvp.py" "$TMP_DIR/me_dummy_bind_only.ny" | "$BIN" --ny-parser-pipe || true)
echo "$OUT1" | rg -q '^Result:\s*0\b' && echo "✅ me dummy (bind only) OK" || { echo "❌ me dummy (bind only) FAILED"; echo "$OUT1"; exit 1; }
# Case 2: me used inside an if branch
cat >"$TMP_DIR/me_dummy_in_if.ny" <<'NY'
if 1 < 2 {
local y = me
}
return 0
NY
OUT2=$(python3 "$ROOT_DIR/tools/ny_parser_mvp.py" "$TMP_DIR/me_dummy_in_if.ny" | "$BIN" --ny-parser-pipe || true)
echo "$OUT2" | rg -q '^Result:\s*0\b' && echo "✅ me dummy (in if) OK" || { echo "❌ me dummy (in if) FAILED"; echo "$OUT2"; exit 1; }
echo "All me-dummy smokes PASS" >&2