27 lines
2.1 KiB
Markdown
27 lines
2.1 KiB
Markdown
# Determinism Gate Testing Infrastructure
|
|
|
|
## Module
|
|
__Libraries
|
|
|
|
## Status
|
|
IMPLEMENTED
|
|
|
|
## 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
|