Conformance Fixtures
The conformance/ directory contains canonical test fixtures that all IPC-capable bindings must
validate against. Each binding’s CI should deserialize the wire field, run the assertions, and
re-serialize to confirm round-trip fidelity.
Fixture schema
{
"description": "Human-readable summary",
"protocol_version": 1,
"kind": "Snapshot" | "Delta",
"assertions": { "…language-agnostic field checks…" },
"wire": { "…IpcMessage as serde_json…" }
}
Current fixtures
| Fixture | Kind | Description |
|---|---|---|
snapshot_minimal.json | Snapshot | One payload node, no edges |
snapshot_multi_node.json | Snapshot | Multiple nodes and edges |
snapshot_shared_blob.json | Snapshot | SharedBlob node state |
delta_sequential.json | Delta | All 7 DeltaOp variants, sequential |
delta_non_sequential.json | Delta | Non-sequential delta with gap |
delta_shared_blob.json | Delta | CellSet/SlotValue with SharedBlob |
Adding a new binding
Copy the fixture-loading pattern from lazily-rs/tests/conformance.rs. Each test should:
- Load the fixture.
- Parse the
wirefield into the binding’s nativeIpcMessagetype. - Assert the
assertionsfields. - Re-serialize and compare for byte-for-byte round-trip fidelity.
Examples
snapshot_minimal.json
{
"description": "Minimal snapshot with one payload node and no edges",
"protocol_version": 1,
"kind": "Snapshot",
"assertions": {
"epoch": 1,
"node_count": 1,
"edge_count": 0,
"root_count": 1,
"first_node_type_tag": "i32"
},
"wire": {
"Snapshot": {
"epoch": 1,
"nodes": [
{
"node": 1,
"type_tag": "i32",
"state": {
"Payload": [1, 2, 3, 4]
}
}
],
"edges": [],
"roots": [1]
}
}
}
snapshot_multi_node.json
{
"description": "Snapshot with payload nodes, opaque node, edges, and roots",
"protocol_version": 1,
"kind": "Snapshot",
"assertions": {
"epoch": 7,
"node_count": 3,
"edge_count": 2,
"root_count": 2,
"has_opaque_node": true,
"opaque_node_id": 3
},
"wire": {
"Snapshot": {
"epoch": 7,
"nodes": [
{
"node": 1,
"type_tag": "i32",
"state": {
"Payload": [1, 2, 3]
}
},
{
"node": 2,
"type_tag": "f64",
"state": {
"Payload": [0, 0, 0, 0, 0, 0, 240, 63]
}
},
{
"node": 3,
"type_tag": "opaque-type",
"state": "Opaque"
}
],
"edges": [
{ "dependent": 2, "dependency": 1 },
{ "dependent": 3, "dependency": 1 }
],
"roots": [1, 2]
}
}
}
snapshot_shared_blob.json
{
"description": "Snapshot with a shared-blob node referencing shared memory",
"protocol_version": 1,
"kind": "Snapshot",
"assertions": {
"epoch": 9,
"node_count": 1,
"edge_count": 0,
"root_count": 1,
"first_node_state_kind": "SharedBlob",
"blob_offset": 0,
"blob_len": 16,
"blob_epoch": 9
},
"wire": {
"Snapshot": {
"epoch": 9,
"nodes": [
{
"node": 7,
"type_tag": "text/plain",
"state": {
"SharedBlob": {
"offset": 0,
"len": 16,
"generation": 1,
"epoch": 9,
"checksum": 123456789
}
}
}
],
"edges": [],
"roots": [7]
}
}
}
delta_sequential.json
{
"description": "Sequential delta covering all 7 DeltaOp variants",
"protocol_version": 1,
"kind": "Delta",
"assertions": {
"base_epoch": 40,
"epoch": 41,
"is_sequential": true,
"op_count": 7,
"has_all_op_variants": true
},
"wire": {
"Delta": {
"base_epoch": 40,
"epoch": 41,
"ops": [
{ "CellSet": { "node": 1, "payload": { "Inline": [10] } } },
{ "SlotValue": { "node": 2, "payload": { "Inline": [20] } } },
{ "Invalidate": { "node": 3 } },
{
"NodeAdd": {
"node": 4,
"type_tag": "u64",
"state": { "Payload": [64] }
}
},
{ "NodeRemove": { "node": 5 } },
{ "EdgeAdd": { "dependent": 2, "dependency": 1 } },
{ "EdgeRemove": { "dependent": 3, "dependency": 1 } }
]
}
}
}
delta_non_sequential.json
{
"description": "Non-sequential delta with gap (requires resync)",
"protocol_version": 1,
"kind": "Delta",
"assertions": {
"base_epoch": 12,
"epoch": 13,
"is_sequential": true,
"resync_after_epoch_10": true
},
"wire": {
"Delta": {
"base_epoch": 12,
"epoch": 13,
"ops": []
}
}
}
delta_shared_blob.json
{
"description": "Delta with shared-blob payload referencing shared memory",
"protocol_version": 1,
"kind": "Delta",
"assertions": {
"base_epoch": 8,
"epoch": 9,
"op_count": 1,
"first_op_kind": "SlotValue",
"first_op_payload_kind": "SharedBlob"
},
"wire": {
"Delta": {
"base_epoch": 8,
"epoch": 9,
"ops": [
{
"SlotValue": {
"node": 7,
"payload": {
"SharedBlob": {
"offset": 40,
"len": 17,
"generation": 2,
"epoch": 9,
"checksum": 987654321
}
}
}
}
]
}
}
}