test: Phase 100 pinned local receiver fixture + smoke

- Add apps/tests/phase100_pinned_local_receiver_min.hako
  * Dynamic string construction with pinned receiver usage
  * Demonstrates loop-outer local as method receiver
- Add tools/smokes/v2/profiles/integration/apps/phase100_pinned_local_receiver_vm.sh
  * HAKO_JOINIR_STRICT=1 validation
  * Numeric output extraction for log-resistant testing
- Regression: phase96 and phase94 smoke tests pass

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-12-17 05:43:44 +09:00
parent 0661e92225
commit 82806f8f90
2 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,25 @@
#!/bin/bash
# Smoke test: Phase 100 pinned local receiver (VM backend)
HAKO_FILE="apps/tests/phase100_pinned_local_receiver_min.hako"
BACKEND="vm"
EXPECTED_OUTPUT="0
1
2"
# Run with HAKO_JOINIR_STRICT=1 (strict validation)
ACTUAL_OUTPUT=$(HAKO_JOINIR_STRICT=1 ./target/release/hakorune --backend "$BACKEND" "$HAKO_FILE" 2>&1 | grep -E '^[0-9]+$')
if [ "$ACTUAL_OUTPUT" = "$EXPECTED_OUTPUT" ]; then
echo "✅ PASS: phase100_pinned_local_receiver_vm"
exit 0
else
echo "❌ FAIL: phase100_pinned_local_receiver_vm"
echo "Expected:"
echo "$EXPECTED_OUTPUT"
echo "Got:"
echo "$ACTUAL_OUTPUT"
echo "---Full output (last 80 lines):---"
HAKO_JOINIR_STRICT=1 ./target/release/hakorune --backend "$BACKEND" "$HAKO_FILE" 2>&1 | tail -n 80
exit 1
fi