ct-runner: feature-tag scheduling from the suite's own inventory (#25) - #30
Merged
Conversation
The runner now reads polymorph-test's L0 tags inventory — newline- delimited 'name tag...' records in component-test:tags@0.1 custom sections, collected from the component and nested modules/components (ct-runner/src/tags.ts, ported from their inventory.rs; the SDK embeds records in the guest core module via #[link_section] and they survive wac composition, verified on the polymorph-tls composed suites). When an inventory exists, gating is on: harness.mjs runCases order (only, drift, applicability), N/A rows in the embed runner's exact wire shape (status/first-excluding-mark detail/diagnostics-complete:true), envelope scheduling 'tags', RunCounts.na, --missing f1,f2 on the CLI. Suites without an inventory run feature-blind as before; --missing without an inventory refuses rather than silently degrading (their runner's posture). Drift (an enumerated case no record covers) throws — unsound, not failing. Also the #26-review parity nits: returned rows now emit diagnostics-complete:true (trap/timeout already emitted false), and smoke-tls's dead webcryptoImports import is gone. smoke-tls: per-target missing-features lists; every TAG-GATING xfail went stale and is pruned — zero failures, zero xfails on all three compositions (delegated: decline N/A; plain: both delegated-signer cases N/A, decline runs and passes). The websocket suite carries an inventory with no tagged cases: gating activates with an empty schedule, 55/55 unchanged. Pin-bump note for polymorph-test's verify-deltic lane (not affected today, pinned pre-58875e8): at the next bump their fixture leg gains hsm N/A rows + envelope scheduling 'tags', and their runner.ts needs an N/A branch — regenerate the lane goldens then. Gates: ct-runner 17/17 (seeds unset/1/4242), runtime suite, websocket conformance 55/55, smoke-tls PASS. Closes #25.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 2 of the polymorph-test migration (#14) + the #26-review parity nits, closing the tls smoke's last xfail class.
Tag gating (closes #25):
ct-runner/src/tags.tsports polymorph-test's L0 inventory —component-test:tags@0.1custom sections (newline-delimitedname tag…records, exact +prefix/*generated rows), collected from the component and nested modules/components: the SDK embeds records in the guest core module via#[link_section], and they survive wac composition (verified empirically on the polymorph-tls composed suites — the upstream 'wac strips custom sections' note covers component-level sections only). Scheduling followsharness.mjsrunCasesexactly:only→ drift (uncovered case throws, unsound-not-failing) → applicability (fneeds the feature present,!fneeds it missing); N/A rows use the embed runner's wire shape byte-for-byte; envelopescheduling: "tags";RunCounts.na;--missing f1,f2on the CLI. Inventory-less suites run feature-blind as before;--missingwithout an inventory refuses loudly.Parity nits from the #26 review: returned rows now carry
diagnostics-complete: true(trap/timeout already emittedfalse); smoke-tls's deadwebcryptoImportsimport removed.smoke-tls: per-target missing-features; all TAG-GATING xfails went stale under gating and are pruned — zero failures, zero xfails on all three compositions (plain schedules out both
delegated-signercases, one of which previously passed only by feature-blind accident; the N/A set now matches their harness legs by construction).Consumer blast radius: websocket suite has an inventory with no tagged cases — gating activates with an empty schedule, conformance 55/55 unchanged. polymorph-test's
verify-delticlane is pinned atpre-58875e8, unaffected; pin-bump note in the commit (fixture leg gains N/A rows; theirrunner.tsneeds an N/A branch; regenerate lane goldens).Gates: ct-runner 17/17 (new tags unit + e2e tests; seeds unset/1/4242), runtime suite, websocket conformance 55/55, smoke-tls PASS,
deno checkall packages touched.