armfortas tests
The root tests/ directory now holds armfortas-local harnesses and integration
checks that belong in the compiler repo itself.
The extracted structured bench lives in the bencch/ submodule.
Current handoff point:
The canonical leaf-assertion language lives in source comments inside
test_programs/ and other shared fixtures:
! CHECK:! STDERR_CHECK:! EXIT_CODE:! XFAIL:! ERROR_EXPECTED:! ERROR_SPAN:! ASM_CHECK:/! ASM_NOT:! FILE_CHECK:/! FILE_NOT:! FILE_EXISTS:/! FILE_MISSING:! FILE_LINE_COUNT:! FILE_RERUN_MODE:! FILE_SET_EXACT:! REPRO_CHECK:! OPT_EQ:! PHASE_TRIANGULATE:! IR_CHECK:! IR_NOT:
That source comment language is meant to converge with bencch, not drift from
it.
Relationship To bencch
The extracted structured bench lives in the bencch/ submodule. It remains a
co-equal tool, but it now has a clearer role:
- the root harness is the fast armfortas-first runner
bencchis the structured matrix/reporting/differential runner
bencch should reuse source directives from shared fixtures whenever possible.
Its suite DSL is for orchestration — opts, references, module graphs,
capability policy, reports, and bundles — not for inventing a separate leaf
assertion language.
bencchwas split out after the Sprint 6 audit/hardening slice.- The next planned bench slice is deeper Sprint 6 differential coverage and object/tool consistency work.
View source
| 1 | # armfortas tests |
| 2 | |
| 3 | The root `tests/` directory now holds armfortas-local harnesses and integration |
| 4 | checks that belong in the compiler repo itself. |
| 5 | |
| 6 | The extracted structured bench lives in the `bencch/` submodule. |
| 7 | |
| 8 | Current handoff point: |
| 9 | The canonical leaf-assertion language lives in source comments inside |
| 10 | `test_programs/` and other shared fixtures: |
| 11 | |
| 12 | - `! CHECK:` |
| 13 | - `! STDERR_CHECK:` |
| 14 | - `! EXIT_CODE:` |
| 15 | - `! XFAIL:` |
| 16 | - `! ERROR_EXPECTED:` |
| 17 | - `! ERROR_SPAN:` |
| 18 | - `! ASM_CHECK:` / `! ASM_NOT:` |
| 19 | - `! FILE_CHECK:` / `! FILE_NOT:` |
| 20 | - `! FILE_EXISTS:` / `! FILE_MISSING:` |
| 21 | - `! FILE_LINE_COUNT:` |
| 22 | - `! FILE_RERUN_MODE:` |
| 23 | - `! FILE_SET_EXACT:` |
| 24 | - `! REPRO_CHECK:` |
| 25 | - `! OPT_EQ:` |
| 26 | - `! PHASE_TRIANGULATE:` |
| 27 | - `! IR_CHECK:` |
| 28 | - `! IR_NOT:` |
| 29 | |
| 30 | That source comment language is meant to converge with `bencch`, not drift from |
| 31 | it. |
| 32 | |
| 33 | ## Relationship To `bencch` |
| 34 | |
| 35 | The extracted structured bench lives in the `bencch/` submodule. It remains a |
| 36 | co-equal tool, but it now has a clearer role: |
| 37 | |
| 38 | - the root harness is the fast armfortas-first runner |
| 39 | - `bencch` is the structured matrix/reporting/differential runner |
| 40 | |
| 41 | `bencch` should reuse source directives from shared fixtures whenever possible. |
| 42 | Its suite DSL is for orchestration — opts, references, module graphs, |
| 43 | capability policy, reports, and bundles — not for inventing a separate leaf |
| 44 | assertion language. |
| 45 | |
| 46 | - `bencch` was split out after the Sprint 6 audit/hardening slice. |
| 47 | - The next planned bench slice is deeper Sprint 6 differential coverage and |
| 48 | object/tool consistency work. |