markdown · 1784 bytes Raw Blame History

Bench Fixtures

This directory is the long-term home for bench-owned reusable inputs.

The first afs-tests slice still references the legacy test_programs/ corpus directly so we can migrate coverage into suites quickly without losing the existing compiler smoke tests. New shared fixtures should land here, and later sprints will move legacy inputs across when the suite layout settles.

The frontend corpus now lives under fixtures/frontend/ with dedicated subdirectories for preprocess, lexer, parser, and sema.

IR and optimizer suites currently lean on the shared test_programs/ corpus plus a few focused bench fixtures while the middle-end coverage grows.

Sprint 5 adds fixtures/backend/ for backend-and-object-facing programs that exercise machine IR, register allocation, assembly emission, wrapper generation, and Mach-O snapshot assertions.

Sprint 6 begins carving stable runtime programs into fixtures/runtime/ so targeted suites can stop depending on the surrounding parent repo layout. The runtime-completion, runtime-control-flow, and runtime-stateful families now live there as bench-owned inputs, along with the runtime-behavior slice (mixed_types, where_construct, derived_type_basic, and string_fixed).

Sprint 7 begins carving authored module graphs into fixtures/modules/ so the bench can model ordered multi-file inputs instead of only isolated sources. That corpus now covers module-use chains, renaming, module procedures, and an early submodule probe, plus visibility, fan-in, re-export, and diamond-style dependency graph families, along with rename-across-hop export-surface probes and mixed-ONLY/collision graph shapes. Larger layered graphs with reused dependencies and multiple consumer leaves live there now too.

View source
1 # Bench Fixtures
2
3 This directory is the long-term home for bench-owned reusable inputs.
4
5 The first `afs-tests` slice still references the legacy `test_programs/`
6 corpus directly so we can migrate coverage into suites quickly without losing
7 the existing compiler smoke tests. New shared fixtures should land here, and
8 later sprints will move legacy inputs across when the suite layout settles.
9
10 The frontend corpus now lives under `fixtures/frontend/` with dedicated
11 subdirectories for `preprocess`, `lexer`, `parser`, and `sema`.
12
13 IR and optimizer suites currently lean on the shared `test_programs/` corpus
14 plus a few focused bench fixtures while the middle-end coverage grows.
15
16 Sprint 5 adds `fixtures/backend/` for backend-and-object-facing programs
17 that exercise machine IR, register allocation, assembly emission, wrapper
18 generation, and Mach-O snapshot assertions.
19
20 Sprint 6 begins carving stable runtime programs into `fixtures/runtime/` so
21 targeted suites can stop depending on the surrounding parent repo layout.
22 The `runtime-completion`, `runtime-control-flow`, and `runtime-stateful`
23 families now live there as bench-owned inputs, along with the
24 `runtime-behavior` slice (`mixed_types`, `where_construct`,
25 `derived_type_basic`, and `string_fixed`).
26
27 Sprint 7 begins carving authored module graphs into `fixtures/modules/` so the
28 bench can model ordered multi-file inputs instead of only isolated sources.
29 That corpus now covers module-use chains, renaming, module procedures, and an
30 early submodule probe, plus visibility, fan-in, re-export, and diamond-style
31 dependency graph families, along with rename-across-hop export-surface probes
32 and mixed-ONLY/collision graph shapes. Larger layered graphs with reused
33 dependencies and multiple consumer leaves live there now too.