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. |