swactor/crates/provisioning/tests
Zachery Aaron Shores-Chmielewski 9ea17edec1 test(provisioning): stateful conformance kit for reconciler and plugins
Replace pointwise scenario testing with a reusable conformance kit in
tests/common: a deterministic trace harness (input alphabet, seeded
generator, naive shrinker), an invariant oracle covering twenty black-box
guarantees (identity, correlation, dead-hold, attempt-fact ownership,
quiescence no-op, monotonic generation, fair convergence, bounded
replacement), and a fair-scheduler tail asserting eventual reconciliation.

Three conformance levels run the same battery:
- FakeBackend: the reference in-memory substrate (256 seeds x 2 modes)
- PluginBackendAdapter over FakePlugin: seam contracts plus the battery
- ProcessPlugin: real child processes, faults as real signals/errors;
  "no double-create" and "converged leaks nothing" verified by counting
  live PIDs (16 seeds)

Also documents two seam findings the battery surfaced: ProvisionPlugin
cannot express ambiguity (kit convention: AMBIGUOUS_FAULT_MARKER error
reclassified by the adapter; definite classification leaks provider
resources) and spawn_effect closures form a spawner Arc cycle that leaks
backends under queue-based spawners (kit breaks it at harness drop).
2026-08-14 19:21:46 +04:00
..
common test(provisioning): stateful conformance kit for reconciler and plugins 2026-08-14 19:21:46 +04:00
executor.rs feat(provisioning): add level-triggered cluster reconciler 2026-08-12 11:49:18 +04:00
plugin_conformance.rs test(provisioning): stateful conformance kit for reconciler and plugins 2026-08-14 19:21:46 +04:00
process_conformance.rs test(provisioning): stateful conformance kit for reconciler and plugins 2026-08-14 19:21:46 +04:00
reconciler.rs feat(provisioning): add level-triggered cluster reconciler 2026-08-12 11:49:18 +04:00
reconciler_stateful.rs test(provisioning): stateful conformance kit for reconciler and plugins 2026-08-14 19:21:46 +04:00