Module coverage

Module coverage 

Source
Expand description

2026-09-26: Which changed paths invalidate which gate’s records.

Owner: bench gate. Invariants:

  • A path under a BOUNDARY_FILES entry invalidates every gate; invalidates asks that first, so no exclusion can exempt the files that define the rules.
  • Any other path under PERF_PATHS invalidates a gate unless it is a registered test-only module, a kernels/**/BENCH.toml, or under one of that gate’s Exclusions.
  • invalidated_by and promotion_debt read only their paths and the constants here.

Gates subtract with exclusions rather than claim what they cover, so a path nobody classified re-runs a gate instead of escaping every gate.

Structs§

Exclusion
2026-09-26: A path prefix that does not invalidate one gate, with the reason it cannot move that gate’s numbers (every_exclusion_states_why rejects an empty or short reason).
GateCoverage
2026-09-26: One gate id and the exclusions that do not invalidate it.
TestOnlyRustModule
2026-09-26: A Rust source whose only module edge is a #[cfg(test)] declaration in parent, so it is absent from release builds and invalidates no gate.

Constants§

BOUNDARY_FILES
2026-09-26: Files that define the boundary or decide a verdict, so a change to any of them invalidates every gate. Were one excludable, a PR changing the rules would be judged by its own new rules.
NOT_REQUIRED
2026-09-26: Registered benchmarks that are not required gates, each with the reason (every_excusal_names_a_real_benchmark_and_a_reason).
PERF_PATHS
2026-09-26: Paths whose contents can change what the engine computes. .benchmarks is not listed because the records are the verdict, not its subject.
PROMOTION_CANDIDATES
2026-09-26: Gates not required yet whose invalidation is tracked as debt.
REQUIRED
2026-09-26: The gates whose records must pass, and what each one ignores. REQUIRED_GATES in mod.rs is built from these ids (required_gates_is_derived_from_the_coverage_table).
TEST_ONLY_RUST_MODULES

Functions§

find
2026-09-26: A required gate’s coverage by id; promotion candidates are not searched.
invalidated_by
2026-09-26: The required gates invalidated by a set of changed paths: a function of the paths alone, with no network, environment or clock input, so it reproduces offline.
invalidates
2026-09-26: Whether changing path invalidates gate’s existing records. The checks run in this order, and the first that applies decides:
on_boundary
2026-09-26: Whether path is under a PERF_PATHS entry.
promotion_debt
2026-09-26: Which PROMOTION_CANDIDATES these changed paths invalidate: the debt a merge takes on, one id per candidate that was owed a run and not required to have one.