.nornir/testmatrix-arms.json
{
"_comment": [
"Rescue arms for the gated-tests guard (nornir_testmatrix::gatedtests).",
"knut was the WORST repo in the 2026-07-21 silenced-test audit: 15 targets /",
"66 hidden test fns, more than any other.",
"",
"Two very different populations hide behind that one number.",
"",
"1. knut-thund's `native` lane — 50 of the 66, and the serious finding. Pure Rust,",
" no infra, nothing #[ignore]d: they simply never compiled, because `native`",
" pulls the whole DataFusion tree and knut-thund ships as a deliberately",
" dependency-light core, so it cannot be a default. VERIFIED 2026-07-21: 50",
" integration + 20 lib, ALL GREEN, zero fixes needed. Pure reporting gap.",
" (Confirms the 05a3264 finding; that commit added the CI lane but no arms file,",
" so the guard still read the repo as silenced.)",
"",
"2. The remaining 16 are infra-bound — FalkorDB, Spark/Spark 4.1, skade, wasm,",
" grpc, gui, web — and every one of them is #[ignore]d. That is the honest",
" pattern, and the distinction the guard exists to draw: an #[ignore] is a",
" visible opt-in that shows up in every test run, whereas an unsatisfied cfg",
" made the file report `0 tests ... ok` and disappear. Declaring these arms",
" makes the files COMPILE on every run so they cannot rot; running them still",
" requires the infra, as it should.",
"",
"One arm per feature rather than one fat arm: these features pull mutually",
"expensive and partly exclusive trees (DataFusion, Spark clients, wasm, egui), and",
"an arm that names a combination nobody can actually build would be a declaration",
"that is not true.",
"",
"── 2026-08-01: the ten arms above RE-VERIFIED, and two more added ───────────",
"",
"A declared arm is a CLAIM, and until 2026-08-01 nothing in knut ever checked it —",
"nor did anything ever run the audit this file answers to. Both gaps are closed",
"now: `crates/knut-build-thing/tests/silenced_tests_guard.rs` runs `audit_repo` on every",
"plain `cargo test`, and every arm below was put through",
"`nornir_testmatrix::verify_arms`, which COMPILES the arm and asks its binary how",
"many tests it lists.",
"",
" 10/10 of the 2026-07-21 arms are real. Tests listed per arm:",
" knut-thund --features native 62",
" graphar-falkordb --features autostart 6",
" knut-popviz --features autostart 8",
" knut-bifrost --features skade 25",
" knut-bifrost --features spark 13",
" knut-bifrost --features spark41 15",
" knut-bifrost --features wasm 13",
" knut-pipelines --features grpc 4",
" knut-pipelines --features gui 4",
" knut-pipelines --features web 3",
"",
"The re-measure also found TWO targets the ten arms never covered — 16 of the",
"repo's hidden test fns, one of them the single largest dark file in knut:",
"",
" crates/knut-thund/tests/sql_frontend.rs #![cfg(feature = \"sql\")]",
" 13 test fns. `sql` pulls sqlparser ONLY, deliberately not the DataFusion tree,",
" so `native` and `sql` are siblings and neither implies the other — the",
" knut-thund/native arm above could never have reached this file. Nothing about",
" these tests needs infra; they are pure IR/parser round-trips.",
" The arm names `sql,dsl`, not `sql`, and the extra conjunct is the point: ONE",
" of the 13, `sql_to_ron_to_sql_is_the_same_pipeline`, carries its own",
" `#[cfg(feature = \"dsl\")]` INSIDE the file. Under `--features sql` the binary",
" lists 12, not 13 — a per-function gate the crate-level guard cannot see, and a",
" reminder that `hidden_tests` counts source attributes while the binary counts",
" what survived compilation. `sql,dsl` makes the two numbers agree.",
" VERIFIED 2026-08-01: `cargo test -p knut-thund --features sql,dsl --test",
" sql_frontend` → 13 passed, 0 failed, 0 ignored, 0.03 s. Zero fixes needed.",
"",
" crates/knut-bifrost/tests/watch_cli_iceberg.rs",
" #![cfg(all(feature = \"skade\", feature = \"cli\"))] — 3 test fns. The textbook",
" NEAR-MISS: the 2026-07-21 arm declared `knut-bifrost --features skade`, and the",
" file needs `skade` AND `cli`. One conjunct short rescues exactly nothing, and",
" the arms file read as if it did.",
" VERIFIED 2026-08-01: `cargo test -p knut-bifrost --features skade,cli --test",
" watch_cli_iceberg` → 3 passed, 0 failed, 0 ignored, 0.44 s. Zero fixes needed.",
"",
"What the two new arms PROVE: those 16 test fns compile AND pass on a bare box",
"(no FalkorDB, no Spark, no network) — they were a pure reporting gap, like the",
"knut-thund/native lane before them.",
"What NO arm here proves: that the infra-bound tests behind the older arms actually",
"RUN. verify_arms lists a built binary's tests; it does not execute them, and the",
"#[ignore]d ones still need their containers. It also does not prove anything is",
"run on a schedule — knut has no CI lane driving these arms.",
"",
"── 2026-08-16: one more arm, found by the guard itself ──────────────────────",
"",
" crates/knut-popviz/tests/robot_ui_kittest.rs #![cfg(feature = \"gui\")]",
" 5 test fns, landed with the popviz robot-UI work; `gui` is not in popviz's",
" default closure and the existing popviz/autostart arm never reached it.",
" VERIFIED 2026-08-16: `cargo test -p knut-popviz --features gui --test",
" robot_ui_kittest` → 5 passed, 0 failed, 0 ignored, 2.45 s (kittest, headless,",
" no display needed). Zero fixes needed — a pure reporting gap again.",
"",
"── 2026-08-27: one more arm, found by the guard itself ──────────────────────",
"",
" crates/knut-bifrost/tests/doris_sink.rs #![cfg(feature = \"doris\")]",
" 11 test fns, landed with the Doris Stream Load sink; `doris` is not in",
" bifrost's default closure, is turned on by no sibling's dependency edge, and",
" the existing bifrost arms (skade/spark/spark41/wasm) never reached it — it",
" drifted past the guard exactly as sql_frontend and watch_cli_iceberg once did.",
" The tests run against a fake Stream Load transport, so they need no cluster.",
" VERIFIED 2026-08-27: `cargo test -p knut-bifrost --features doris --test",
" doris_sink` → 11 passed, 0 failed, 0 ignored, 0.87 s. Zero fixes needed — a",
" pure reporting gap again.",
"",
"── 2026-09-26: the Iceberg -> Doris delivery arms ────────────────────────────",
"",
" crates/knut-bifrost/tests/live_iceberg_doris.rs #![cfg(feature = \"service\")]",
" crates/knut-bifrost/tests/container_rig.rs #![cfg(feature = \"service\")]",
" Every test fn in both is #[ignore]d: they need MinIO/AIStor + Doris (red over",
" WireGuard, or the draupnir rig on loki). The arm makes them COMPILE on every",
" run so they cannot rot. VERIFIED 2026-09-26 live: live_iceberg_doris green on",
" red (AIStor RELEASE.2026-05-28, Doris 4.1.3).",
"",
"── 2026-10-03: the skade-katalog gRPC catalog arm ────────────────────────────",
"",
" crates/knut-bifrost/tests/grpc_catalog_delivery.rs #![cfg(feature = \"skade-grpc\")]",
" 2 test fns. One runs on a bare box: a delivery through an in-process",
" skade-katalog gRPC front equals the embedded catalog's, commit by commit. The",
" other is #[ignore]d: the Spark 4.1 + Iceberg 1.12 fixture (SKADE_SPARK112_FIXTURE)",
" delivered over gRPC against its expected.json.",
" VERIFIED 2026-10-03: `cargo test -p knut-bifrost --features skade-grpc --test",
" grpc_catalog_delivery` -> 1 passed, 0 failed, 1 ignored; with the fixture and",
" `-- --ignored` -> 1 passed.",
"",
"── 2026-10: the popviz Iceberg → FalkorDB simulation ─────────────────────────",
"",
" crates/knut-popviz/tests/sim_iceberg_falkordb.rs #![cfg(feature = \"iceberg\")]",
" 2 test fns, both #[ignore]d (they need a FalkorDB; the second also an AIStor",
" REST catalog). The arm names `iceberg-rest`, not `iceberg`, because the AIStor",
" fn carries its own `#[cfg(feature = \"iceberg-rest\")]` and `iceberg-rest`",
" implies `iceberg` — one arm compiles both.",
" VERIFIED: `cargo test -p knut-popviz --features iceberg-rest --test",
" sim_iceberg_falkordb` → 0 passed, 0 failed, 2 ignored."
],
"arms": [
{ "package": "knut-thund", "features": ["native"] },
{ "package": "knut-thund", "features": ["sql", "dsl"], "test": "sql_frontend" },
{ "package": "graphar-falkordb", "features": ["autostart"] },
{ "package": "knut-popviz", "features": ["autostart"] },
{ "package": "knut-popviz", "features": ["gui"], "test": "robot_ui_kittest" },
{ "package": "knut-bifrost", "features": ["skade"] },
{ "package": "knut-bifrost", "features": ["skade", "cli"], "test": "watch_cli_iceberg" },
{ "package": "knut-bifrost", "features": ["spark"] },
{ "package": "knut-bifrost", "features": ["spark41"] },
{ "package": "knut-bifrost", "features": ["wasm"] },
{ "package": "knut-bifrost", "features": ["doris"] },
{ "package": "knut-bifrost", "features": ["service"], "test": "live_iceberg_doris" },
{ "package": "knut-bifrost", "features": ["service"], "test": "container_rig" },
{ "package": "knut-bifrost", "features": ["spark", "skade"], "test": "spark_rowlevel_changelog" },
{ "package": "knut-bifrost", "features": ["skade-grpc"], "test": "grpc_catalog_delivery" },
{ "package": "knut-pipelines", "features": ["grpc"] },
{ "package": "knut-pipelines", "features": ["gui"] },
{ "package": "knut-pipelines", "features": ["web"] },
{ "package": "knut-popviz", "features": ["iceberg-rest"], "test": "sim_iceberg_falkordb" }
]
}