Gauntlet Tests
The gauntlet expands each #[ktstr_test] into a matrix of
test × topology_preset variants. The test definition controls
which cells of the matrix it populates.
Controlling topology coverage
Topology constraints in #[ktstr_test] filter which gauntlet
presets a test runs on. See
Topology Constraints
for the full attribute table and
Topology Presets
for the preset list.
Worked example
A test with min_llcs = 2, requires_smt = true, and default
max_numa_nodes = 1 against the
preset table:
tiny-1llc(1 LLC): excluded — belowmin_llcs- All non-SMT presets (
tiny-2llc,odd-*,*-nosmt): excluded —requires_smt near-max-llc(15 LLCs): excluded — above defaultmax_llcs = 12max-cpu(252 CPUs, 14 LLCs): excluded — above defaultmax_cpus = 192(also above defaultmax_llcs = 12)- All
numa*presets: excluded — above defaultmax_numa_nodes = 1
Result: 6 of 24 presets survive (smt-2llc, smt-3llc,
medium-4llc, medium-8llc, large-4llc, large-8llc). On
aarch64, none survive — all aarch64 presets lack SMT.
Total variant count
The total number of gauntlet variants for a test is:
valid_presets × resolved_kernels
A test with 8 valid presets produces 8 gauntlet variants under
a single-kernel run; passing two kernels (--kernel A --kernel B)
doubles that to 16. The kernel dimension is contributed by
cargo ktstr test / coverage / llvm-cov at the CLI surface
(zero or one resolved kernels keeps the historical 3-segment
name shape gauntlet/{name}/{preset}; two or more expands the
gauntlet across kernels with an extra {kernel_label} segment).
See
Multi-kernel: kernel as a gauntlet dimension.
Tests that skip gauntlet
- Entries with
host_only = truenever produce gauntlet variants (no VM to vary topology on). They also skip the kernel-dim multiplication under multi-kernel runs: ahost_onlytest lists and runs once regardless ofKTSTR_KERNEL_LISTcardinality, since a host-side test never observes the kernel directory and N copies of identical work would carry no signal. Seehost_onlyfor how that flag is set, and Multi-kernel: kernel as a gauntlet dimension for the kernel-suffix dispatch contract. - Tests whose names start with
demo_are ignored by default. Their gauntlet variants are also ignored (all gauntlet variants are ignored).
Cross-references
- Gauntlet (Running Tests) — how to run gauntlet variants, preset table, budget interaction
- The #[ktstr_test] Macro — full attribute reference