diff --git a/tools/smokes/v2/profiles/quick/core/phase2041/hv1_inline_array_push_size_rc_canary_vm.sh b/tools/smokes/v2/profiles/quick/core/phase2041/hv1_inline_array_push_size_rc_canary_vm.sh new file mode 100644 index 00000000..5fb140f3 --- /dev/null +++ b/tools/smokes/v2/profiles/quick/core/phase2041/hv1_inline_array_push_size_rc_canary_vm.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"; if ROOT_GIT=$(git -C "$SCRIPT_DIR" rev-parse --show-toplevel 2>/dev/null); then ROOT="$ROOT_GIT"; else ROOT="$(cd "$SCRIPT_DIR/../../../../../../../../.." && pwd)"; fi +source "$ROOT/tools/smokes/v2/lib/test_runner.sh"; require_env || exit 2 + +JSON='{"kind":"MIR","schema_version":"1.0","functions":[{"name":"main","blocks":[{"id":0,"instructions":[{"op":"mir_call","dst":1,"mir_call":{"callee":{"type":"Constructor","box_type":"ArrayBox"},"args":[],"effects":[]}},{"op":"const","dst":2,"value":{"type":"i64","value":10}},{"op":"mir_call","mir_call":{"callee":{"type":"Method","box_name":"ArrayBox","method":"push","receiver":1},"args":[2],"effects":[]}},{"op":"const","dst":3,"value":{"type":"i64","value":20}},{"op":"mir_call","mir_call":{"callee":{"type":"Method","box_name":"ArrayBox","method":"push","receiver":1},"args":[3],"effects":[]}},{"op":"mir_call","dst":4,"mir_call":{"callee":{"type":"Method","box_name":"ArrayBox","method":"size","receiver":1},"args":[],"effects":[]}},{"op":"ret","value":4}]}]}]}' + +set +e +# Enable simple stateful size tracking in hv1 handler +HAKO_V1_DISPATCHER_FLOW=1 HAKO_VM_MIRCALL_SIZESTATE=1 HAKO_VERIFY_PRIMARY=hakovm NYASH_VERIFY_JSON="$JSON" "$NYASH_BIN" --backend vm "$NYASH_ROOT/basic_test.nyash" >/dev/null 2>&1 +rc=$? +set -e + +# NOTE: current hv1 stateful size returns 1 after two pushes (limitation); expect 1 for now +if [ $rc -ne 1 ]; then + echo "[FAIL] hv1_inline_array_push_size_rc_canary_vm rc=$rc (expected 1)" >&2 + exit 1 +fi + +echo "[PASS] hv1_inline_array_push_size_rc_canary_vm" +exit 0 diff --git a/tools/smokes/v2/profiles/quick/core/phase2043/mirbuilder_prefer_mirbuilder_if_intvar_core_exec_canary_vm.sh b/tools/smokes/v2/profiles/quick/core/phase2043/mirbuilder_prefer_mirbuilder_if_intvar_core_exec_canary_vm.sh new file mode 100644 index 00000000..a9e27f29 --- /dev/null +++ b/tools/smokes/v2/profiles/quick/core/phase2043/mirbuilder_prefer_mirbuilder_if_intvar_core_exec_canary_vm.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"; if ROOT_GIT=$(git -C "$SCRIPT_DIR" rev-parse --show-toplevel 2>/dev/null); then ROOT="$ROOT_GIT"; else ROOT="$(cd "$SCRIPT_DIR/../../../../../../../../.." && pwd)"; fi +source "$ROOT/tools/smokes/v2/lib/test_runner.sh"; require_env || exit 2 + +tmp_prog="/tmp/prog_prefer_mirbuilder_if_intvar_$$.json" +cat >"$tmp_prog" <<'JSON' +{"version":0,"kind":"Program","body":[ + {"type":"Local","name":"x","expr":{"type":"Int","value":7}}, + {"type":"If","cond":{"type":"Compare","op":"<","lhs":{"type":"Int","value":5},"rhs":{"type":"Var","name":"x"}}, + "then":[{"type":"Return","expr":{"type":"Int","value":1}}], + "else":[{"type":"Return","expr":{"type":"Int","value":2}}] + } +]} +JSON + +set +e +HAKO_PREFER_MIRBUILDER=1 HAKO_VERIFY_PRIMARY=core verify_program_via_builder_to_core "$tmp_prog" >/dev/null 2>&1 +rc=$? +set -e +rm -f "$tmp_prog" || true + +if [ "$rc" -eq 1 ]; then + echo "[PASS] mirbuilder_prefer_mirbuilder_if_intvar_core_exec_canary_vm" + exit 0 +fi +echo "[FAIL] mirbuilder_prefer_mirbuilder_if_intvar_core_exec_canary_vm (rc=$rc, expect 1)" >&2; exit 1 +