Files
hakorune/tools/smokes/v2/README.md

31 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Smokes v2 — Minimal Runner and Policy
Policy
- Use [SKIP:<reason>] prefix for environment/host dependent skips.
- Examples: [SKIP] hakorune not built, [SKIP:env] plugin path missing
- Keep reasons short and stable to allow grep-based canaries.
- Prefer JSON-only output in CI: set `NYASH_JSON_ONLY=1` to avoid noisy logs.
- Diagnostics lines like `[provider/select:*]` are filtered by default in `lib/test_runner.sh`.
- Toggle: set `HAKO_SILENT_TAGS=0` to disable filtering and show raw logs. `HAKO_SHOW_CALL_LOGS=1` also bypasses filtering.
Helpers
- `tools/smokes/v2/lib/mir_canary.sh` provides:
- `extract_mir_from_output` — between [MIR_BEGIN]/[MIR_END]
- `assert_has_tokens`, `assert_skip_tag`, `assert_order`, `assert_token_count`
- `tools/lib/canary.sh` provides minimal, harness-agnostic aliases:
- `extract_mir_between_tags` — same as `extract_mir_from_output`
- `require_tokens token...` — fail if any token missing
Notes
- Avoid running heavy integration smokes in CI by default. Use `--profile quick`.
- When a test depends on external tools (e.g., LLVM), prefer `[SKIP:<reason>]` over failure.
- StageB/selfhost canaries`stage1_launcher_*`, `phase251*` など)は Stage3 デフォルト環境で安定しないため、quick プロファイルでは `[SKIP:stageb]` として扱い、必要に応じて別プロファイルintegration/fullで個別に実行する。
- S3 backend 向けの長尺テスト群も quick 向きではないため、timeout を短く保ちたい場合は `[SKIP:slow]` にして別途ローカルで回すことを推奨する。
Quick tips
- EXE-heavy cases (e.g., `phase2100/*`) may take longer. When running quick with these tests, pass a larger timeout like `--timeout 120`.
- Smokes v2 auto-cleans temporary crate EXE objects created under `/tmp` (pattern: `ny_crate_backend_exe_*.o`) after the run.
Developer Notes
- **JoinIR If/Select (Phase 33)**: A/B test with `NYASH_FEATURES=stage3 NYASH_JOINIR_CORE=1 HAKO_JOINIR_IF_SELECT=1 ./target/release/hakorune apps/tests/joinir_if_select_simple.hako`dev-only、CI対象外。旧 IfSelect 用の NYASH_* トグルは非推奨)