Connect · Sparkplug B · TCK
Sparkplug TCK 3.0.0 Results, Kilo Sparkplug B v0.2.1
Kilo ran the signed Eclipse Sparkplug TCK 3.0.0 against Kilo Sparkplug B v0.2.1 for the Sparkplug Edge Node and Sparkplug Host Application profiles, on MQTT 5.0 and 3.1.1. 28 of 28 TCK test runs passed, and every requirement the TCK can report passed in at least one cell and failed in none.
- TCK test runs passed
- 28 / 28
- Requirements: PASS
- 273
- Requirements: n/a (server profile)
- 11
- Requirements: not reportable (E47)
- 15
What was tested?
- Product and version
- Kilo Sparkplug B v0.2.1 · library commit
4b19f2994f3755e7f36babb4e4e5edbad8718342 - Sparkplug Edge Node
- Kilo Sparkplug B Edge Node
- Sparkplug Host Application
- Kilo Sparkplug B Host Application
- Specification
- Sparkplug 3.0.0
- TCK
- Sparkplug TCK 3.0.0, SHA-256
a70b2c2f00d67ac714eadd5ac50f6241e0efa26036d95ca8ec667d491021b86b - Sparkplug Edge Node runner
cmd/tck-edge, SHA-256af49570371a63f55964cb42fcbfe52304997033bdb286aa366c67b04c42a5992- Sparkplug Host Application runner
cmd/tck-host, SHA-2563f2de2747b6b03b23130f304909383162b1f1f8fe4621f4c4855c3f8cbf08a85- Services
- hivemq · MQTT server · TCK extension sparkplug-tck-3.0.0.zip
hivemq/hivemq-ce:2026.5@sha256:bac6d4d1d815bffe4bc9a7fca8d06ea12b32d34f84ef2f1851ff4548560ee67bsecond · MQTT serverhivemq/hivemq-ce:2026.5@sha256:bac6d4d1d815bffe4bc9a7fca8d06ea12b32d34f84ef2f1851ff4548560ee67blatencyghcr.io/shopify/toxiproxy:2.13.0@sha256:5d3dae09bc185dcc5ff6cf43abf6062a4a720aff0c4306a471e773acdcd107aa - Network
- The runners reached both brokers through a TCP proxy adding 2 ms to every packet they sent, so a birth arrives at the TCK at least a millisecond after it was stamped (erratum E45); the console spoke to the broker directly.
- Host
- One Linux machine; the MQTT servers and the proxy ran in Docker containers on it, the runners as its processes. No devices or cloud services. Each cell started from new broker containers and volumes.
Sparkplug TCK results by test
| Test | edge-5MQTT 5.0 | edge-3.1.1MQTT 3.1.1 | host-5MQTT 5.0 | host-3.1.1MQTT 3.1.1 |
|---|---|---|---|---|
| SessionEstablishment | PASS but INCOMPLETE | PASS but INCOMPLETE | PASS but INCOMPLETE | PASS but INCOMPLETE |
| SendData | PASS | PASS | — | — |
| SendComplexData | PASS | PASS | — | — |
| ReceiveCommand | PASS | PASS | — | — |
| SessionTermination | PASS but INCOMPLETE | PASS but INCOMPLETE | PASS but INCOMPLETE, PASS but INCOMPLETE | PASS but INCOMPLETE, PASS but INCOMPLETE |
| PrimaryHost | PASS | PASS | — | — |
| MultipleBroker | PASS | PASS | PASS | PASS |
| SendCommand | — | — | PASS | PASS |
| HostEdgeNodeSessionTerminationTest | — | — | PASS | PASS |
| MessageOrdering | — | — | PASS | PASS |
"PASS but INCOMPLETE" marks a test with an assertion that belongs to the other MQTT version or the other way of disconnecting.
Sparkplug TCK optional groups
| Group | Assertions | edge-5 | edge-3.1.1 | host-5 | host-3.1.1 | Result |
|---|---|---|---|---|---|---|
| Aliases | 4 | 4 pass | 4 pass | 0 pass | 0 pass | PASS |
| Datasets | 7 | 7 pass | 7 pass | 0 pass | 0 pass | PASS |
| Message Reordering | 4 | 0 pass | 0 pass | 4 pass | 4 pass | PASS |
| Multiple Brokers | 4 | 3 pass | 3 pass | 2 pass | 2 pass | PASS |
| Properties | 7 | 7 pass | 7 pass | 0 pass | 0 pass | PASS |
| Templates | 27 (1 not reportable) | 26 pass | 26 pass | 0 pass | 0 pass | PASS |
Which Sparkplug TCK assertions cannot be reported?
TCK 3.0.0 maps every assertion to a test, but for these 15 it can never record a pass for this product, because of how the TCK's Monitor judges them. They are defects in the TCK, not in Kilo Sparkplug B, which judges each of them in its own test suite. Codes such as E45 and E47 refer to Kilo's record of specification and TCK errata; each defect is reported to the Sparkplug project:
| Assertion | Why the TCK cannot report it |
|---|---|
| tck-id-intro-group-id-string | the Monitor records it only when violated |
| tck-id-intro-group-id-chars | the Monitor records it only when violated |
| tck-id-intro-edge-node-id-string | the Monitor records it only when violated |
| tck-id-intro-edge-node-id-chars | the Monitor records it only when violated |
| tck-id-intro-device-id-string | the Monitor records it only when violated |
| tck-id-intro-device-id-chars | the Monitor records it only when violated |
| tck-id-intro-edge-node-id-uniqueness | the Monitor records it only when violated |
| tck-id-topic-structure-namespace-a | the Monitor records it only when violated |
| tck-id-topic-structure-namespace-unique-edge-node-descriptor | the Monitor records it only when violated |
| tck-id-topic-structure-namespace-unique-device-id | the Monitor records it only when violated |
| tck-id-topics-nbirth-templates | the Monitor's DDATA check looks the NBIRTH up under the device's key, and its NDATA check reads a datatype the library leaves out of data metrics, as ch6 says it SHOULD NOT be there |
| tck-id-message-flow-device-birth-publish-dbirth-payload-seq | the Monitor records a pass only for an unset entry, but presets every entry to NOT EXECUTED |
| tck-id-operational-behavior-data-publish-nbirth-order | judged only for a metric whose is_historical is present and false; the library omits an unset optional field |
| tck-id-operational-behavior-data-publish-dbirth-order | judged only for a metric whose is_historical is present and false; the library omits an unset optional field |
| tck-id-payloads-nbirth-edge-node-descriptor | the Monitor records it only when violated |
Why does report.py show fewer passes?
The TCK's own report.py summary of the combined results log is published unchanged. Its counts understate: a later NOT EXECUTED replaces an earlier PASS (only a FAIL stays), so an id of one MQTT version shows the other cell's result, and it drops the results of the test logged under the profile "Sparkplug" (EdgeSessionTerminationTest) (erratum E47). The table below is computed per cell from each cell's own log.
Sparkplug TCK results by requirement
All 299 requirements of Sparkplug 3.0.0, with each cell's result. "—" means the cell's profile does not judge it.
| Requirement | Group | edge-5 | edge-3.1.1 | host-5 | host-3.1.1 | Result |
|---|---|---|---|---|---|---|
| tck-id-intro-sparkplug-host-state | — | — | PASS | PASS | PASS | |
| tck-id-intro-group-id-string | — | — | — | — | not reportable (E47) | |
| tck-id-intro-group-id-chars | — | — | — | — | not reportable (E47) | |
| tck-id-intro-edge-node-id-string | — | — | — | — | not reportable (E47) | |
| tck-id-intro-edge-node-id-chars | — | — | — | — | not reportable (E47) | |
| tck-id-intro-device-id-string | — | — | — | — | not reportable (E47) | |
| tck-id-intro-device-id-chars | — | — | — | — | not reportable (E47) | |
| tck-id-intro-edge-node-id-uniqueness | — | — | — | — | not reportable (E47) | |
| tck-id-principles-rbe-recommended | PASS | PASS | PASS | PASS | PASS | |
| tck-id-principles-birth-certificates-order | PASS | PASS | PASS | PASS | PASS | |
| tck-id-principles-persistence-clean-session-311 | NOT EXECUTED | PASS | — | — | PASS | |
| tck-id-principles-persistence-clean-session-50 | PASS | NOT EXECUTED | — | — | PASS | |
| tck-id-components-ph-state | — | — | PASS | PASS | PASS | |
| tck-id-topic-structure | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topic-structure-namespace-a | — | — | — | — | not reportable (E47) | |
| tck-id-topic-structure-namespace-valid-group-id | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topic-structure-namespace-unique-edge-node-descriptor | — | — | — | — | not reportable (E47) | |
| tck-id-topic-structure-namespace-valid-edge-node-id | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topic-structure-namespace-valid-device-id | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topic-structure-namespace-unique-device-id | — | — | — | — | not reportable (E47) | |
| tck-id-topic-structure-namespace-duplicate-device-id-across-edge-node | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topic-structure-namespace-device-id-associated-message-types | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topic-structure-namespace-device-id-non-associated-message-types | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topics-nbirth-topic | PASS | PASS | — | — | PASS | |
| tck-id-topics-nbirth-mqtt | PASS | PASS | — | — | PASS | |
| tck-id-topics-nbirth-seq-num | PASS | PASS | — | — | PASS | |
| tck-id-topics-nbirth-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-topics-nbirth-metric-reqs | PASS | PASS | — | — | PASS | |
| tck-id-topics-nbirth-metrics | PASS | PASS | — | — | PASS | |
| tck-id-topics-nbirth-templates | Templates | — | — | — | — | not reportable (E47) |
| tck-id-topics-nbirth-bdseq-included | PASS | PASS | — | — | PASS | |
| tck-id-topics-nbirth-bdseq-matching | PASS | PASS | — | — | PASS | |
| tck-id-topics-nbirth-bdseq-increment | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topics-nbirth-rebirth-metric | PASS | PASS | — | — | PASS | |
| tck-id-topics-ndata-topic | PASS | PASS | — | — | PASS | |
| tck-id-topics-ndata-mqtt | PASS | PASS | — | — | PASS | |
| tck-id-topics-ndata-seq-num | PASS | PASS | — | — | PASS | |
| tck-id-topics-ndata-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-topics-ndata-payload | PASS | PASS | — | — | PASS | |
| tck-id-topics-ndeath-topic | PASS | PASS | — | — | PASS | |
| tck-id-topics-ndeath-payload | PASS | PASS | — | — | PASS | |
| tck-id-topics-ndeath-seq | PASS | PASS | — | — | PASS | |
| tck-id-topics-ncmd-topic | — | — | PASS | PASS | PASS | |
| tck-id-topics-ncmd-mqtt | — | — | PASS | PASS | PASS | |
| tck-id-topics-ncmd-timestamp | — | — | PASS | PASS | PASS | |
| tck-id-topics-ncmd-payload | — | — | PASS | PASS | PASS | |
| tck-id-topics-dbirth-topic | PASS | PASS | — | — | PASS | |
| tck-id-topics-dbirth-mqtt | PASS | PASS | — | — | PASS | |
| tck-id-topics-dbirth-seq | PASS | PASS | — | — | PASS | |
| tck-id-topics-dbirth-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-topics-dbirth-metric-reqs | PASS | PASS | PASS | PASS | PASS | |
| tck-id-topics-dbirth-metrics | PASS | PASS | — | — | PASS | |
| tck-id-topics-ddata-topic | PASS | PASS | — | — | PASS | |
| tck-id-topics-ddata-mqtt | PASS | PASS | — | — | PASS | |
| tck-id-topics-ddata-seq-num | PASS | PASS | — | — | PASS | |
| tck-id-topics-ddata-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-topics-ddata-payload | PASS | PASS | — | — | PASS | |
| tck-id-topics-ddeath-topic | PASS | PASS | — | — | PASS | |
| tck-id-topics-ddeath-mqtt | PASS | PASS | — | — | PASS | |
| tck-id-topics-ddeath-seq-num | PASS | PASS | — | — | PASS | |
| tck-id-topics-dcmd-topic | — | — | PASS | PASS | PASS | |
| tck-id-topics-dcmd-mqtt | — | — | PASS | PASS | PASS | |
| tck-id-topics-dcmd-timestamp | — | — | PASS | PASS | PASS | |
| tck-id-topics-dcmd-payload | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-birth-message | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-birth-qos | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-birth-retain | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-birth-topic | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-birth-sub-required | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-birth-required | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-birth-payload | PASS | PASS | PASS | PASS | PASS | |
| tck-id-host-topic-phid-birth-payload-timestamp | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-death-qos | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-death-retain | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-death-topic | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-death-required | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-death-payload | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-death-payload-timestamp-connectshown as tck-id-host-topic-phid-death-payload-connect | PASS | PASS | PASS | PASS | PASS | |
| tck-id-host-topic-phid-death-payload-timestamp-disconnect-cleanshown as tck-id-host-topic-phid-death-payload-disconnect-clean | — | — | PASS | PASS | PASS | |
| tck-id-host-topic-phid-death-payload-timestamp-disconnect-with-no-disconnect-packetshown as tck-id-host-topic-phid-death-payload-disconnect-with-no-disconnect-packet | — | — | PASS | PASS | PASS | |
| tck-id-case-sensitivity-sparkplug-ids | PASS | PASS | PASS | PASS | PASS | |
| tck-id-case-sensitivity-metric-names | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-phid-sparkplug-clean-session-311 | — | — | NOT EXECUTED | PASS | PASS | |
| tck-id-message-flow-phid-sparkplug-clean-session-50 | — | — | PASS | NOT EXECUTED | PASS | |
| tck-id-message-flow-phid-sparkplug-subscription | — | — | PASS | PASS | PASS | |
| tck-id-message-flow-phid-sparkplug-state-publish | — | — | PASS | PASS | PASS | |
| tck-id-message-flow-phid-sparkplug-state-publish-payload | — | — | PASS | PASS | PASS | |
| tck-id-message-flow-phid-sparkplug-state-publish-payload-timestamp | — | — | PASS | PASS | PASS | |
| tck-id-message-flow-hid-sparkplug-state-message-delivered | — | — | PASS | PASS | PASS | |
| tck-id-message-flow-edge-node-ncmd-subscribe | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-connect | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-will-message | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-will-message-topic | PASS | PASS | PASS | PASS | PASS | |
| tck-id-message-flow-edge-node-birth-publish-will-message-payload | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-will-message-payload-bdSeq | PASS | PASS | PASS | PASS | PASS | |
| tck-id-message-flow-edge-node-birth-publish-will-message-qos | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-will-message-will-retained | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-phid-wait | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-phid-wait-id | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-phid-wait-online | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-phid-wait-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-nbirth-topic | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-nbirth-payload | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-nbirth-payload-bdSeq | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-nbirth-qos | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-nbirth-retained | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-nbirth-payload-seq | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-edge-node-birth-publish-phid-offline | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-edge-node-intentional-disconnect-ndeath | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-edge-node-intentional-disconnect-packet | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-action-ndeath-node-offline | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-action-ndeath-node-tags-stale | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-action-ndeath-devices-offline | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-action-ndeath-devices-tags-stale | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-offline | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-offline-reconnect | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-offline-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-device-dcmd-subscribe | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-device-birth-publish-nbirth-wait | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-device-birth-publish-dbirth-topic | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-device-birth-publish-dbirth-match-edge-node-topic | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-device-birth-publish-dbirth-payload | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-device-birth-publish-dbirth-qos | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-device-birth-publish-dbirth-retained | PASS | PASS | — | — | PASS | |
| tck-id-message-flow-device-birth-publish-dbirth-payload-seq | — | — | — | — | not reportable (E47) | |
| tck-id-operational-behavior-device-ddeath | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-action-ddeath-devices-offline | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-edge-node-termination-host-action-ddeath-devices-tags-stale | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-reordering-param | Message Reordering | — | — | PASS | PASS | PASS |
| tck-id-operational-behavior-host-reordering-start | Message Reordering | — | — | PASS | PASS | PASS |
| tck-id-operational-behavior-host-reordering-rebirth | Message Reordering | — | — | PASS | PASS | PASS |
| tck-id-operational-behavior-host-reordering-success | Message Reordering | — | — | PASS | PASS | PASS |
| tck-id-operational-behavior-primary-application-state-with-multiple-servers-state-subs | Multiple Brokers | PASS | PASS | PASS | PASS | PASS |
| tck-id-operational-behavior-primary-application-state-with-multiple-servers-state | Multiple Brokers | — | — | PASS | PASS | PASS |
| tck-id-operational-behavior-primary-application-state-with-multiple-servers-single-server | Multiple Brokers | PASS | PASS | — | — | PASS |
| tck-id-operational-behavior-primary-application-state-with-multiple-servers-walk | Multiple Brokers | PASS | PASS | — | — | PASS |
| tck-id-operational-behavior-edge-node-birth-sequence-wait | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-host-application-host-id | PASS | PASS | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-will | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-will-topic | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-will-payload | PASS | PASS | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-will-qos | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-will-retained | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-birth | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-birth-topic | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-birth-payload | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-birth-qos | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-connect-birth-retained | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-multi-server-timestamp | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-termination | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-death-topic | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-death-payload | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-death-qos | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-death-retained | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-host-application-disconnect-intentional | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-publish-nbirth | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-publish-nbirth-values | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-publish-nbirth-change | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-publish-nbirth-order | — | — | — | — | not reportable (E47) | |
| tck-id-operational-behavior-data-publish-dbirth | PASS | PASS | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-publish-dbirth-values | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-publish-dbirth-change | PASS | PASS | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-publish-dbirth-order | — | — | — | — | not reportable (E47) | |
| tck-id-operational-behavior-data-commands-rebirth-name | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-commands-rebirth-name-aliases | Aliases | PASS | PASS | — | — | PASS |
| tck-id-operational-behavior-data-commands-rebirth-datatype | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-commands-rebirth-value | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-commands-ncmd-rebirth-verb | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-commands-ncmd-rebirth-name | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-commands-ncmd-rebirth-value | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-commands-rebirth-action-1 | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-commands-rebirth-action-2 | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-commands-rebirth-action-3 | PASS | PASS | — | — | PASS | |
| tck-id-operational-behavior-data-commands-ncmd-verb | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-commands-ncmd-metric-name | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-commands-ncmd-metric-value | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-commands-dcmd-verb | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-commands-dcmd-metric-name | — | — | PASS | PASS | PASS | |
| tck-id-operational-behavior-data-commands-dcmd-metric-value | — | — | PASS | PASS | PASS | |
| tck-id-payloads-timestamp-in-UTC | PASS | PASS | PASS | PASS | PASS | |
| tck-id-payloads-sequence-num-always-included | PASS | PASS | — | — | PASS | |
| tck-id-payloads-sequence-num-req-nbirthshown as tck-id-payloads-sequence-num-zero-nbirth | PASS | PASS | — | — | PASS | |
| tck-id-payloads-sequence-num-incrementing | PASS | PASS | PASS | PASS | PASS | |
| tck-id-payloads-name-requirement | PASS | PASS | — | — | PASS | |
| tck-id-payloads-alias-uniqueness | Aliases | PASS | PASS | — | — | PASS |
| tck-id-payloads-alias-birth-requirement | Aliases | PASS | PASS | — | — | PASS |
| tck-id-payloads-alias-data-cmd-requirement | Aliases | PASS | PASS | — | — | PASS |
| tck-id-payloads-name-birth-data-requirement | PASS | PASS | — | — | PASS | |
| tck-id-payloads-name-cmd-requirement | — | — | PASS | PASS | PASS | |
| tck-id-payloads-metric-timestamp-in-UTC | PASS | PASS | — | — | PASS | |
| tck-id-payloads-metric-datatype-value-type | PASS | PASS | — | — | PASS | |
| tck-id-payloads-metric-datatype-value | PASS | PASS | — | — | PASS | |
| tck-id-payloads-metric-datatype-req | PASS | PASS | — | — | PASS | |
| tck-id-payloads-metric-datatype-not-req | PASS | PASS | — | — | PASS | |
| tck-id-payloads-propertyset-keys-array-size | Properties | PASS | PASS | — | — | PASS |
| tck-id-payloads-propertyset-values-array-size | Properties | PASS | PASS | — | — | PASS |
| tck-id-payloads-metric-propertyvalue-type-type | Properties | PASS | PASS | — | — | PASS |
| tck-id-payloads-metric-propertyvalue-type-value | Properties | PASS | PASS | — | — | PASS |
| tck-id-payloads-metric-propertyvalue-type-req | Properties | PASS | PASS | — | — | PASS |
| tck-id-payloads-propertyset-quality-value-type | Properties | PASS | PASS | — | — | PASS |
| tck-id-payloads-propertyset-quality-value-value | Properties | PASS | PASS | — | — | PASS |
| tck-id-payloads-dataset-column-size | Datasets | PASS | PASS | — | — | PASS |
| tck-id-payloads-dataset-column-num-headers | Datasets | PASS | PASS | — | — | PASS |
| tck-id-payloads-dataset-types-def | Datasets | PASS | PASS | — | — | PASS |
| tck-id-payloads-dataset-types-num | Datasets | PASS | PASS | — | — | PASS |
| tck-id-payloads-dataset-types-type | Datasets | PASS | PASS | — | — | PASS |
| tck-id-payloads-dataset-types-value | Datasets | PASS | PASS | — | — | PASS |
| tck-id-payloads-dataset-parameter-type-req | Datasets | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-dataset-value | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-definition-nbirth-only | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-definition-is-definition | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-definition-ref | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-definition-members | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-definition-nbirth | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-definition-parameters | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-definition-parameters-default | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-instance-is-definition | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-instance-ref | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-instance-members | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-instance-members-birth | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-instance-members-data | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-instance-parameters | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-version | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-ref-definition | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-ref-instance | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-is-definition | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-is-definition-definition | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-is-definition-instance | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-parameter-name-required | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-parameter-name-type | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-parameter-value-type | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-parameter-type-value | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-parameter-type-req | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-template-parameter-value | Templates | PASS | PASS | — | — | PASS |
| tck-id-payloads-nbirth-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-payloads-nbirth-edge-node-descriptor | — | — | — | — | not reportable (E47) | |
| tck-id-payloads-nbirth-seq | PASS | PASS | PASS | PASS | PASS | |
| tck-id-payloads-nbirth-bdseq | PASS | PASS | — | — | PASS | |
| tck-id-payloads-nbirth-bdseq-repeat | PASS | PASS | — | — | PASS | |
| tck-id-payloads-nbirth-rebirth-req | PASS | PASS | — | — | PASS | |
| tck-id-payloads-nbirth-qos | PASS | PASS | — | — | PASS | |
| tck-id-payloads-nbirth-retain | PASS | PASS | — | — | PASS | |
| tck-id-payloads-dbirth-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-payloads-dbirth-seq | PASS | PASS | — | — | PASS | |
| tck-id-payloads-dbirth-seq-inc | PASS | PASS | — | — | PASS | |
| tck-id-payloads-dbirth-order | PASS | PASS | — | — | PASS | |
| tck-id-payloads-dbirth-qos | PASS | PASS | — | — | PASS | |
| tck-id-payloads-dbirth-retain | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndata-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndata-seq | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndata-seq-inc | PASS | PASS | PASS | PASS | PASS | |
| tck-id-payloads-ndata-order | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndata-qos | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndata-retain | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddata-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddata-seq | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddata-seq-inc | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddata-order | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddata-qos | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddata-retain | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ncmd-timestamp | — | — | PASS | PASS | PASS | |
| tck-id-payloads-ncmd-seq | — | — | PASS | PASS | PASS | |
| tck-id-payloads-ncmd-qos | — | — | PASS | PASS | PASS | |
| tck-id-payloads-ncmd-retain | — | — | PASS | PASS | PASS | |
| tck-id-payloads-dcmd-timestamp | — | — | PASS | PASS | PASS | |
| tck-id-payloads-dcmd-seq | — | — | PASS | PASS | PASS | |
| tck-id-payloads-dcmd-qos | — | — | PASS | PASS | PASS | |
| tck-id-payloads-dcmd-retain | — | — | PASS | PASS | PASS | |
| tck-id-payloads-ndeath-seq | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndeath-will-message | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndeath-will-message-qos | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndeath-will-message-retain | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndeath-bdseq | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndeath-will-message-publisher | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ndeath-will-message-publisher-disconnect-mqtt311 | NOT EXECUTED | PASS | — | — | PASS | |
| tck-id-payloads-ndeath-will-message-publisher-disconnect-mqtt50 | PASS | NOT EXECUTED | — | — | PASS | |
| tck-id-payloads-ddeath-timestamp | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddeath-seq | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddeath-seq-inc | PASS | PASS | — | — | PASS | |
| tck-id-payloads-ddeath-seq-number | PASS | PASS | — | — | PASS | |
| tck-id-payloads-state-will-message | — | — | PASS | PASS | PASS | |
| tck-id-payloads-state-will-message-qos | — | — | PASS | PASS | PASS | |
| tck-id-payloads-state-will-message-retain | — | — | PASS | PASS | PASS | |
| tck-id-payloads-state-will-message-payload | PASS | PASS | PASS | PASS | PASS | |
| tck-id-payloads-state-subscribe | — | — | PASS | PASS | PASS | |
| tck-id-payloads-state-birth | — | — | PASS | PASS | PASS | |
| tck-id-payloads-state-birth-payload | — | — | PASS | PASS | PASS | |
| tck-id-conformance-primary-host | — | — | PASS | PASS | PASS | |
| tck-id-conformance-mqtt-qos0 | n/a | n/a | n/a | n/a | n/a (server profile) | |
| tck-id-conformance-mqtt-qos1 | n/a | n/a | n/a | n/a | n/a (server profile) | |
| tck-id-conformance-mqtt-will-messages | n/a | n/a | n/a | n/a | n/a (server profile) | |
| tck-id-conformance-mqtt-retained | n/a | n/a | n/a | n/a | n/a (server profile) | |
| tck-id-conformance-mqtt-aware-basic | Aware | n/a | n/a | n/a | n/a | n/a (server profile) |
| tck-id-conformance-mqtt-aware-store | Aware | n/a | n/a | n/a | n/a | n/a (server profile) |
| tck-id-conformance-mqtt-aware-nbirth-mqtt-topic | Aware | n/a | n/a | n/a | n/a | n/a (server profile) |
| tck-id-conformance-mqtt-aware-nbirth-mqtt-retain | Aware | n/a | n/a | n/a | n/a | n/a (server profile) |
| tck-id-conformance-mqtt-aware-dbirth-mqtt-topic | Aware | n/a | n/a | n/a | n/a | n/a (server profile) |
| tck-id-conformance-mqtt-aware-dbirth-mqtt-retain | Aware | n/a | n/a | n/a | n/a | n/a (server profile) |
| tck-id-conformance-mqtt-aware-ndeath-timestamp | Aware | n/a | n/a | n/a | n/a | n/a (server profile) |
Raw Sparkplug TCK logs
- SparkplugTCKResults.log — every cell in run order, as the TCK wrote it
- results/edge-5.log — Sparkplug Edge Node, MQTT 5.0
- results/edge-3.1.1.log — Sparkplug Edge Node, MQTT 3.1.1
- results/host-5.log — Sparkplug Host Application, MQTT 5.0
- results/host-3.1.1.log — Sparkplug Host Application, MQTT 3.1.1
- summary.html — the TCK's report.py output
- tck-results.json — this page's data