refactor(pipeline): MP1b review - unify DatCollectionAdapter + TOC/log test gaps
Adversarially-verified review findings 7 and 8: (7) The DatCollection->IDatReaderWriter adapter existed as THREE near-identical copies (App-internal original, Bake's copy, Content. Tests' copy) — a structure where adapter drift is exactly what the live-vs-pak equivalence suite cannot detect (both sides would only drift together if they shared one implementation). Now ONE public AcDream.Content.DatCollectionAdapter next to IDatReaderWriter (GL-free home established in MP1a), carrying App's FULL behavior including the [dat-miss] TryGet tripwire log (which now also covers the bake tool and the equivalence suite) and the caching/locking. All three copies deleted; WbMeshAdapter (App), BakeRunner (Bake), and PakEquivalenceTests (Content.Tests) resolve the shared class. Iteration properties return the REAL dat iterations — the App copy's hardcoded 0 was a stub nothing read; the unification intentionally keeps truth (noted in the doc comment). Verified post-move: no Silk.NET anywhere in Content / Bake / Content.Tests / Bake.Tests resolved dependency graphs. (8) Two test gaps closed in PakRoundTripTests: (a) direct on-disk TOC sortedness — blobs added in DESCENDING key order, then the raw file bytes parsed (not through the reader) and every TOC entry asserted strictly ascending; (b) corrupt-blob logging — five repeated reads through both public paths (TryReadObjectMeshData + ContainsKey) with stderr captured, asserting exactly ONE [pak-corrupt] line for the victim key. Full suite: 4120 tests, 0 failures (Content.Tests 56, Bake.Tests 1, plus the pre-existing 4 skips).
This commit is contained in:
parent
86e0dc4655
commit
859cf5ec02
7 changed files with 135 additions and 351 deletions
|
|
@ -53,7 +53,11 @@ public static class BakeRunner {
|
|||
|
||||
var sw = Stopwatch.StartNew();
|
||||
using var dats = new DatCollection(options.DatDir, DatAccessType.Read);
|
||||
using var datReaderWriter = new BakeDatCollectionAdapter(dats);
|
||||
// The unified AcDream.Content.DatCollectionAdapter (MP1b review
|
||||
// finding 7): same instance class the client and the equivalence
|
||||
// suite use — adapter drift between bake and runtime is impossible
|
||||
// by construction.
|
||||
using var datReaderWriter = new DatCollectionAdapter(dats);
|
||||
var extractorLogger = new ConsoleErrorLogger(nameof(MeshExtractor));
|
||||
|
||||
// Thread-safe side-stage sink for particle-preload meshes MeshExtractor
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue