Files
git.stella-ops.org/docs/features/checked/libraries/determinism-gate-testing-infrastructure.md
2026-02-14 09:11:48 +02:00

35 lines
2.3 KiB
Markdown

# Determinism Gate Testing Infrastructure
## Module
__Libraries
## Status
VERIFIED
## Description
Dedicated determinism testing library and TestKit deterministic helpers for CI-gated canonical output verification.
## Implementation Details
- **TestKit**: `src/__Libraries/StellaOps.TestKit/` -- comprehensive shared test kit with TestCategories, DeterministicRandom, DeterministicTime, CanonicalJsonAssert, SnapshotAssert, BlastRadiusTestRunner/Validator, ConnectorTestBase hierarchy (HttpFixture, LiveSchema, Resilience, Security), FixtureUpdater, EnvironmentProfile, SkewTestRunner, EvidenceChainAssert/Reporter, IntentAttribute/TestIntents, SchemaVersionMatrix, StabilityMetrics/TestRunner, OTelContractAssert, LogContractAssert, MetricsContractAssert, CacheIdempotencyTests, FlakyToDeterministicPattern, QueryDeterminismTests, StorageConcurrencyTests/IdempotencyTests, WebServiceTestBase
- **Testing.Determinism**: `src/__Libraries/StellaOps.Testing.Determinism/` -- determinism-specific test infrastructure (referenced but directory may be integrated into TestKit)
- **Determinism.Abstractions**: `src/__Libraries/StellaOps.Determinism.Abstractions/` -- `IGuidProvider` (SystemGuidProvider/SequentialGuidProvider), `ResolverBoundaryAttribute`, `RequiresCanonicalizationAttribute`, `DeterministicOutputAttribute`, `DeterminismServiceCollectionExtensions` (AddSystemTimeProvider, AddSystemGuidProvider, AddDeterminismDefaults)
- **Source**: Feature matrix scan
## E2E Test Plan
- [ ] Verify `CanonicalJsonAssert` detects non-deterministic JSON serialization (e.g., unordered keys)
- [ ] Verify `SnapshotAssert` compares golden snapshots and reports diffs
- [ ] Test `DeterministicRandom` produces repeatable sequences with same seed
- [ ] Test `DeterministicTime` provides controlled time progression
- [ ] Verify `SequentialGuidProvider` returns predictable GUID sequence with counter in last 4 bytes
- [ ] Test `BlastRadiusTestRunner` validates change scope within expected boundaries
- [ ] Verify `StorageIdempotencyTests` confirm repeated writes produce identical results
- [ ] Test `FlakyToDeterministicPattern` converts non-deterministic tests to deterministic equivalents
## Verification
- **Verified**: 2026-02-13T20:30:00Z
- **Run**: run-001
- **Tier**: Tier 2d (Library/Internal)
- **Verdict**: PASS