markdown · 1503 bytes Raw Blame History

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
  • bencch is 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.

  • bencch was 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.