DTCS Test Suite Verification Report¶
Date: 2026-07-12
Scope: P0 + P1 + P2 + P3 (finish plan)
Executive Summary¶
Overall confidence: High
The suite now validates behavior against SPEC-derived expectations across diagnostics, optimizer runtime preservation, plan structural/behavioral oracles, runtime failure codes, YAML↔JSON equivalence (4 pairs), determinism double-run, expanded conformance coverage (20 cases + RuntimeInvalid), capability compile negatives, binding validate/diagnostic parity, and an automated no-network-surface security probe. Mutation testing runs in a non-blocking CI job.
Verification commands executed successfully:
cargo fmt --all -- --checkcargo clippy --all-targets -- -D warningscargo test --lockedpytest python/tests -v(232 passed)bindings/wasmandbindings/nodesmoke tests (npm test)./scripts/check-docs.sh
P0+P1 (landed in 768b09d)¶
Exact diagnostic multisets, optimizer runtime I/O parity, runtime failure integration tests, initial YAML↔JSON pair, conformance expansion, and Python mirror updates. See git history for full file list.
P2 Additions¶
| Area | Change |
|---|---|
| Plan goldens | Exact plan-failure codes (3 fixtures); structural invariants for all 40 valid goldens; behavioral oracles (runtime I/O, lineage counts, rule steps, node ids) on 10+ fixtures |
| Format equivalence | 4 YAML/JSON pairs through validate/plan/optimize (format_equivalence.rs + Python parametrized tests) |
| Determinism | deterministic_double_run.yaml double-run byte-equal outputs; impure_side_effects_invalid.yaml analysis finding |
| Conformance | RuntimeInvalid assertion kind; runtime-precondition-fail, runtime-postcondition-fail, runtime-deterministic-double-run, optimize-equivalent-action-fusion |
| Capability | Manifest-driven unsupported-action negative (mutate_unsupported_action) |
| Phase dedup | Consolidated manifest exact-code tests in phase_0_2, phase_0_3, phase_0_4 |
Plan goldens remain byte-identical change detectors; structural invariants and behavioral oracles are the independent semantic layer (same pattern as optimize goldens in phase_0_8).
P3 Additions¶
| Area | Change |
|---|---|
| Bindings | WASM + Node smoke: validateContract, exact missing_lineage codes, 8 conformance profiles; wired in CI |
| Security | no-network-surface scans src/runtime, src/validation, src/parser, src/conformance for forbidden network imports |
| Mutation | .github/workflows/mutation.yml — scoped cargo-mutants on validation/optimize/runtime (non-blocking) |
Confidence Assessment¶
| Layer | Rating |
|---|---|
| Validation diagnostics | High (exact multiset, manifest-driven) |
| Optimizer semantics | High (runtime I/O on all 8 fixtures + adversarial fusion) |
| Plan semantics | High (invariants + 10+ behavioral oracles; goldens as change detectors) |
| Runtime failures | High (integration + conformance RuntimeInvalid) |
| Format equivalence | High (4 pairs, Rust + Python) |
| Conformance | High (20 cases, per-id assertions, security probes automated) |
| Analysis / determinism | Moderate–High (impure analysis; double-run fixture) |
| Bindings | Moderate (validate + diagnostic smoke; not full plan/optimize/run parity) |
| Stdlib catalog | Strong (full catalog in 0.11.0) |
| Overall | High |
The suite would now fail if: diagnostic multisets drift, optimize changes runtime output, plan invariants break, pre/postconditions stop enforcing, format pairs diverge, conformance cases regress, bindings lose validate/diagnostic parity, or network client code appears in core paths.
Remaining gaps (documented, not blocking High)¶
- ~~Full Ch 17–19 stdlib~~ — completed in 0.11.0
- Binding depth — smoke parity only; no plan/optimize/run through WASM/Node
- Mutation gate — job is informational until mutant kill rate stabilizes
- Phase-specific subset checks — some remain where they assert extra behavior (message substrings, registry merge logic) beyond manifest codes
Key files¶
tests/plan_expectations.json,tests/phase_0_7.rs— plan oraclestests/format_equivalence.rs,python/tests/test_dtcs.py— format pairstests/determinism.rs— double-run + impure analysistests/conformance/manifest.json,src/conformance/model.rs,src/conformance/runner.rs—RuntimeInvalidtests/capability_expectations.json,tests/phase_0_9.rs— capability negativesrc/conformance/security.rs— automated network probebindings/wasm/test/smoke.test.mjs,bindings/node/test/smoke.test.mjs.github/workflows/mutation.yml,.github/workflows/checks.yml
See also testing-plan.md for how to add tests.