Skip to content

vendor-neutral conformance platform with proc-macro and CLI runner#72

Merged
fabracht merged 7 commits intomainfrom
conformance-platform-refactor
Apr 11, 2026
Merged

vendor-neutral conformance platform with proc-macro and CLI runner#72
fabracht merged 7 commits intomainfrom
conformance-platform-refactor

Conversation

@fabracht
Copy link
Copy Markdown
Contributor

@fabracht fabracht commented Apr 10, 2026

Summary

  • New mqtt5-conformance-macros proc-macro crate with #[conformance_test] attribute that registers tests into a distributed slice with capability requirements and RFC identifiers
  • New mqtt5-conformance-cli binary runner built on libtest_mimic — supports in-process and external SUT testing via --sut descriptor files, with JSON report output
  • Migrated all conformance tests from integration test files to the proc-macro system with vendor-neutral SutHandle + TestClient + RawMqttClient abstractions
  • Added SUT descriptor profiles for Mosquitto, EMQX, HiveMQ CE, and external mqtt5 broker
  • Fixed test isolation issues (unique topic names for shared subscription tests, content-based filtering for $SYS tests)
  • Fixed FileBackend::get_session() deadlock caused by Rust 2021 if let temporary lifetime holding read guard across write lock
  • Added broker setup guide, conformance profiles, and documentation

Test plan

  • All 178 conformance tests pass against in-process broker (0 failures, 3 WebSocket skipped)
  • cargo clippy --all-targets --workspace -- -D warnings -W clippy::pedantic passes
  • cargo build --workspace succeeds
  • Run against external Mosquitto/EMQX to validate SUT descriptor flow

@fabracht fabracht force-pushed the conformance-platform-refactor branch from f4de2c5 to dc96d38 Compare April 11, 2026 02:02
@fabracht fabracht merged commit 012a711 into main Apr 11, 2026
15 checks passed
@fabracht fabracht deleted the conformance-platform-refactor branch April 11, 2026 02:09
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