bencch Public
Code
Use Git or checkout with SVN using the web URL.
No matching headings.
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.
Sprint 10 adds fixtures/fake_compilers/ for stable compare-mode coverage.
Those scripts let bencch compare exercise compile failures, runtime
divergence, and artifact differences without depending on whichever real
toolchains happen to be installed on a machine.
Sprint 11 adds fixtures/invalid/ for bench-owned bad-source probes. Those
fixtures let bencch introspect exercise compiler failure reporting and
partial capture without depending on temp-file setup inside tests.
That same area now also holds a tiny source-comment-driven failure probe for
suite-v2 generic failure coverage.
The mem2reg merge-smoothing work adds fixtures/compat/mem2reg/ for imported
branch-owned audit programs. Those files keep their inline ! IR_CHECK:,
! IR_NOT:, ! ERROR_EXPECTED:, and ! XFAIL: comments so bencch can
absorb the new syntax without reviving the old in-repo harness.