FV-14: TLA+ faithfulness tests for Nim state machines
Add tests/tla_faithfulness.nim verifying Nim code against TLA+ invariants: - Raft: ElectionSafety, LogMatching, CommittedIndexValid - MVCC: NoDirtyReads, CommittedMustStart - 2PC: Atomicity, RecoveryConsistency Documented gap: Nim MVCC allows multiple committed versions per key, while TLA+ spec enforces first-committer-wins (WriteWriteConflict). This test ensures future changes to Nim code maintain alignment with specs. Update PLAN.md (FV-14 done), CHANGELOG.md, test_all.nim includes new suite.
This commit is contained in:
@@ -82,7 +82,7 @@
|
||||
| # | Задача | Проблем | Файл |
|
||||
|---|--------|---------|------|
|
||||
| FV-13 | ~~CI: Поправка на verify job~~ ✅ | Премахнат `container:` блок, заменен с `actions/setup-java@v4` + `actions/cache` + `continue-on-error: true`. | `.github/workflows/ci.yml` |
|
||||
| FV-14 | **Property-based testing мост** | Nim скрипт за сравнение на TLA+ state machine с Nim state machine (faithfulness check). | `tests/tla_bridge.nim` (нов) |
|
||||
| FV-14 | ~~Property-based testing мост~~ ✅ | `tests/tla_faithfulness.nim` проверява: Raft (ElectionSafety, LogMatching, CommittedIndexValid), MVCC (NoDirtyReads, CommittedMustStart), 2PC (Atomicity, RecoveryConsistency). Документиран gap: Nim MVCC позволява множество committed versions (TLA+ изисква first-committer-wins). | `tests/tla_faithfulness.nim` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user