Skip to content

conformance suite: no in-tree arm passes by skipping its subject (row 114, 1/2) - #887

Open
MattJackson wants to merge 1 commit into
predevfrom
lane-p6-silent-skip
Open

MattJackson wants to merge 1 commit into
predevfrom
lane-p6-silent-skip

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

Status row 114 (no test in crates/ passes by an early-return skip when its subject is absent in the default build). Part 1 of 2: the published conformance suite.

Found: the conformance_suite! macro, run in-tree by busbar-plane-decisions and busbar-transport-stdio, generated 8 tests that printed and returned:

  • red_an_outbound_field_byte_off_is_refused, red_an_outbound_door_writing_no_field_is_refused, red_a_second_token_fetch_is_refused (x2 crates): outbound.rs let-else on outbound_subject → eprintln! + return for any door without CAP_OUTBOUND.
  • the_declared_needs_are_the_statements (x2 crates): needs_declared let-else on declares_file → eprintln! + return; neither crate held a declares.json.

Fix:

  • conformance::outbound_plant (auth/mod.rs): the macro's three outbound arms call it. The door's tail (CAP_OUTBOUND) and conformance.json (auth.outbound) must agree; a disagreement fails by name, and the plant runs only when both state the family. This catches a real hole too: a door that lost CAP_OUTBOUND while its inputs still drive outbound styles used to pass all three arms unrun. outbound.rs is untouched because row 68: the breaker reads a plane fault at the far end (stacked on #561) #778 and breaker: no protocol in kernel; the transport states its fault table, PIECE_END=128 rides the same framer lineage (row 66) #561 hold it.
  • needs_declared: a missing declares file is now a hard failure. plugin-ci already refuses a repo without one (plugin-ci.yml l.453-454), and all 26 fleet plugin repos hold one at a path declares_file finds (checked via the GitHub API).
  • New crates/busbar-plane-decisions/declares.json (needs: ["http"], from claims::TRANSPORT) and crates/busbar-transport-stdio/declares.json (needs: [], the default Statement).

RED (conformance_suite_tests.rs):

  • red_a_plugin_with_no_declares_file_fails_the_declared_needs_proof: no file → panics by name; with a matching file → passes.
  • red_an_outbound_arm_over_a_door_without_the_family_never_passes_unrun: export test door + auth.outbound inputs → panics; with no inputs → the arm is never called.

Spec: Law 0, an instrument that cannot produce a NO is not a check (BUSBAR-1.6.0.md l.2038); false-fail over false-green (l.1929-1930). No test removed (l.1182, F25).

Sweep evidence (all crates): /Users/matthew/Developer/tmp/lane114/skips.tsv. Left for coordinator: crates/busbar-core-connector/tests/universal_needs.rs:261-267 (CI-only assert + return; held by #805/#834/#837/#847) and outbound.rs:1694-1696 (!mints print+return, reached only by fleet auth plugins; held by #778/#561).

No cargo was run locally; ModernCI's verdict is the proof.

… 114)

The published suite's outbound RED arms printed and returned over a door with
no outbound family, and the declared-needs proof printed and returned when the
crate held no declares.json; busbar-plane-decisions and busbar-transport-stdio
ran eight such tests green having proved nothing.

- conformance::outbound_plant: the macro's three outbound arms go through it;
  the door's tail (CAP_OUTBOUND) and conformance.json (auth.outbound) must
  agree on the outbound family, a disagreement fails by name, and the plant
  runs only when both state it.
- needs_declared: no declares file is a hard failure (plugin-ci already
  refuses a repo without one; all 26 fleet plugin repos hold one where
  declares_file finds it).
- busbar-plane-decisions/declares.json (needs: http) and
  busbar-transport-stdio/declares.json (needs: none): the in-tree subjects.
- RED: conformance_suite_tests: a missing declares file fails the proof; inputs
  driving auth.outbound over a door without the family fail the arm.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant