Skip to content

test(tck): run host profile and document conformance - #70

Merged
dpazj merged 1 commit into
masterfrom
tck/host-conformance
Nov 3, 2026
Merged

dpazj merged 1 commit into
masterfrom
tck/host-conformance

Conversation

@dpazj

@dpazj dpazj commented Nov 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • tck-runner now manages the host application under test for the host profile (StartAfter, StartAfterThenStop, StartBefore) and waits --node-start-delay before StartBefore tests so the retained birth/STATE exists before the test observes it.
  • generic-app waits for the application event loop to finish after cancel(), so the offline STATE and MQTT DISCONNECT are flushed before the process exits.
  • srad-types accepts integer metric values encoded in either protobuf int_value or long_value. The TCK's Tahu encoder stores UInt32 in long_value, which previously made the whole DBIRTH fail to decode.
  • Added tck/CONFORMANCE.md with the current edge and host results, the assertions that are not executed, and the implementation gaps behind them. Linked from the root README.

TCK results

With the changes:

  • Edge: 6/7 tests pass. edge:MultipleBrokerTest still fails because srad-eon has no broker failover.
  • Host: 5/6 tests pass. host:SendCommandTest (no command workflow and no command datatype in PublishMetric) and host:MultipleBrokerTest (single-broker application) remain gaps.

tck/CONFORMANCE.md documents the remaining gaps and why they exist.

Test plan

  • cargo test --workspace
  • cargo fmt --check
  • cargo clippy -p srad-types -p tck-runner -p examples --examples
  • Edge: ./target/debug/tck-runner --suite edge --docker-image srad-tck --node-cmd ./target/debug/examples/tck-node --timeout 90 (6 pass, 1 fail)
  • Host: ./target/debug/tck-runner --suite host --docker-image srad-tck --node-cmd ./target/debug/examples/generic-app --host-app-id foo --client-id client --console-reply PASS --timeout 60 (4 pass, SendCommandTest and MultipleBrokerTest are expected gaps)

- Manage the host application under test with --node-cmd for the host
  profile, and wait --node-start-delay before StartBefore tests so the
  retained birth or STATE exists before the test observes it
- Wait for the application event loop to finish in the generic-app example
  so the offline STATE and MQTT DISCONNECT are flushed
- Accept integer metric values encoded in either the protobuf int_value or
  long_value field; the TCK's Tahu encoder uses long_value for UInt32
- Add tck/CONFORMANCE.md with the current edge and host results, the
  assertions that are not executed, and the implementation gaps behind them
@dpazj
dpazj merged commit 4e44549 into master Nov 3, 2026
7 checks passed
@dpazj
dpazj deleted the tck/host-conformance branch November 3, 2026 22:53
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