Skip to content

test: unify gateway integration architecture - #125

Merged
lucarlig merged 1 commit into
mainfrom
user/luca/unify-gateway-test-architecture
Sep 4, 2026
Merged

test: unify gateway integration architecture#125
lucarlig merged 1 commit into
mainfrom
user/luca/unify-gateway-test-architecture

Conversation

@lucarlig

@lucarlig lucarlig commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Consolidate the nine library integration binaries into one feature-organized gateway target.
  • Replace duplicate gateway and backend setup with pre-bound, lifecycle-owned HTTP and TLS fixtures.
  • Preserve all 13 ignored tests while modernizing the 11 library future contracts to MCP 2026-07-28 and server/discover.
  • Preserve useful coverage added on main, including the modern no-schema parameter-header case and the new authorization/config tests.
  • Isolate active compatibility coverage and remove duplicate concrete secrets-plugin gateway tests.
  • Update the testing wiki with the new lanes, inventory, fixture model, and ignored-test policy.

Architecture

  • Add Gateway::into_router() as the public composition seam.
  • Add owned TestServer and GatewayFixture primitives with cancellation, explicit async shutdown, and Drop fallback.
  • Default fixtures to one virtual host and the minimum backend count.
  • Keep focused Counter, Recording, Paginating, plaintext, and TLS backends instead of a generic mock DSL.
  • Remove openport usage from the library suite, readiness polling, global port locking, unowned spawns, manual abort boilerplate, and dead support helpers.
  • Adapt the unified fixture to main's ServiceRoute tables and authorization service.

Inventory

  • Before on current main: 225 active tests, 13 ignored tests, 10 library integration binaries.
  • After: 220 active tests, 13 ignored tests, 2 library test binaries (unit + gateway integration).
  • The five removed active cases duplicated concrete secrets-plugin behavior already owned by the plugin crate; deterministic recording-plugin gateway coverage remains.

Verification

  • cargo fmt --all --check
  • cargo clippy --locked --workspace --all-targets --all-features -- -D warnings
  • cargo test --locked --workspace --all-features --no-run
  • cargo nextest run --locked --workspace --all-features --no-fail-fast: 220 passed, 13 skipped
  • cargo nextest run --locked --workspace --all-features --run-ignored only --no-fail-fast: all 13 remain expected failures
  • cargo shear --check-test-targets --deny-warnings --locked
  • cargo deny check advisories licenses (passes; reports the existing transitive yanked chacha20 0.10.1 warning)
  • cargo build --locked --workspace
  • mdbook build _context/wiki
  • mdbook test _context/wiki

The ignored-only lane was run with no fail-fast. All 13 remain expected failures: nine federated fanout or control-plane contracts, one missing prompt-completion capability, one cancellation contract timeout, and two Redis process E2Es that require redis-server. The ignored TLS scenario reaches its known federated-list blocker instead of failing during fixture setup.

Non-goals

@lucarlig
lucarlig marked this pull request as ready for review September 1, 2026 10:57
@lucarlig lucarlig closed this Sep 1, 2026
@lucarlig lucarlig reopened this Sep 1, 2026
@lucarlig lucarlig closed this Sep 1, 2026
@lucarlig lucarlig reopened this Sep 1, 2026
@lucarlig
lucarlig force-pushed the user/luca/unify-gateway-test-architecture branch from 87fc377 to 804804a Compare September 2, 2026 13:26
dawid-nowak
dawid-nowak previously approved these changes Sep 4, 2026
@lucarlig
lucarlig force-pushed the user/luca/unify-gateway-test-architecture branch from 804804a to eda2963 Compare September 4, 2026 13:52
Signed-off-by: lucarlig <luca.carlig@ibm.com>
@lucarlig
lucarlig force-pushed the user/luca/unify-gateway-test-architecture branch from eda2963 to a553b33 Compare September 4, 2026 13:54
@lucarlig
lucarlig merged commit 56eb606 into main Sep 4, 2026
11 checks passed
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.

2 participants