| Filename | Latest commit message | Latest commit date |
|---|---|---|
Deleted the heuristic that rewrote a record the cache held "unchanged since read" (same key and storedAt) under the registered id, in the single-file commit and in the directory generation. It could overwrite a record another writer changed while keeping its storedAt. A commit onto a file now writes its batch and leaves every other record as the file holds it; a record under an id only an arrived entry lists is refused, typed, with the file left as it was. Deleted the directory store's _durableCatalog, a second stale-able source of arrived entries beside the manifest read under the lease. Tests: the lost-update probe, the two refusals that replace the restamp tests, the arrived-overwrites-registered guard in both id orders, the content-hash tie-break against the compatible-list order, and refusal determinism across record arrival order. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> |
||
| .. | ||
| Fixtures | ||
| AssemblyInfo.cs | ||
| BackingStoreTests.cs | ||
| ConditionalCommitTests.cs | ||
| CultAssetGuidKeyTests.cs | ||
| CultCacheJournalTests.cs | ||
| CultCacheObserverTests.cs | ||
| CultCacheProjectionTests.cs | ||
| CultDocumentRegistryTests.cs | ||
| CultDocumentSelectionSurfaceTests.cs | ||
| CultInspectorModelTests.cs | ||
| CultMathJsonTests.cs | ||
| CultMathSerializationTests.cs | ||
| DirectoryStoreDurabilityTests.cs | ||
| DocumentShapeTests.cs | ||
| ElementIdEngineTests.cs | ||
| ElementIdTests.cs | ||
| GameCult.Caching.Tests.csproj | ||
| PreCut2FixtureDocuments.cs | ||
| PreCut2StoreFormatTests.cs | ||
| README.md | ||
| SerializationOptionsTests.cs | ||
| StoreReadabilityTests.cs | ||
| StoreRoutingTests.cs | ||
| VariantTests.cs | ||
GameCult.Caching.Tests
GameCult.Caching.Tests contains NUnit tests for the caching library and its
MessagePack persistence stores.
Scope
The tests currently cover:
SingleFileMessagePackBackingStoreround-trips, external pulls, and the dirty-pull guardDirectoryMessagePackBackingStorewith thecultcache.store.v4.directory-content-addressed-pagesmanifest: page writes, clean flushes, concurrent writers under the commit lease, external deltas, unflushed local keys, orphaned pages, and observers running after the lease is releasedCultCacheMessagePack.OpenAsync, persisted globals, dirty state, and flush on dispose- cache lookups (
Get,GetAll, runtime-type upserts) CultCache.Commitbatches on a directory store: visibility after the store commits, abandoned stages, sealed batches, observers committing again- Cult document payloads, registry shape rejections, canonical schema fixtures, and schema drift reports
- hand-written MessagePack snapshot and record serialization
StoreRoutingTests: the store-composition contract (routing, attachment is hydration, read-only stores, global singletons, assignable lookups, batches, all-or-nothing loads)ConditionalCommitTests:Expect,ExpectUnchanged,TryCommit, the single-file lock, strictly increasingstoredAt, and the same conditions on a directory storeDirectoryStoreDurabilityTests: failed manifest replace, content-addressed pages, the commit lease, orphan pages and tampered pages, with faults from real file locksPreCut2StoreFormatTests: stores written before Cut 2 still open
Selective hydration, the directory store's stage probes, pre-v4 directory
formats, and the SoA table are no longer in the tree; the SoA table is parked
at parked/cultcache-soa (docs/parked-features.md).
Run
dotnet test tests\GameCult.Caching.Tests\GameCult.Caching.Tests.csproj