test: replace streaming source freezes
This commit is contained in:
parent
5a33369074
commit
0ad2ee1cdf
6 changed files with 436 additions and 285 deletions
|
|
@ -38,12 +38,12 @@ pwsh ./tools/audit-test-inventory.ps1
|
|||
The generated JSON lives under ignored `artifacts/test-audit/`; it is not a
|
||||
second 6.8 MB checked-in source of truth. The script and this reviewed ledger
|
||||
are durable, while paths and line numbers regenerate after every batch. The
|
||||
inventory refreshed through Batch W reports:
|
||||
inventory refreshed through Batch X reports:
|
||||
|
||||
| Syntax signal | Current count |
|
||||
|---|---:|
|
||||
| Tracked/parsed C# test files | 1,254 / 1,254 |
|
||||
| Attributed test methods (not expanded theory cases) | 11,416 |
|
||||
| Attributed test methods (not expanded theory cases) | 11,417 |
|
||||
| Exact duplicate-data rows | 0 |
|
||||
| Reviewed body-equivalent groups / methods | 11 / 27 |
|
||||
| Methods containing at least one empty `return;` | 138 |
|
||||
|
|
@ -56,7 +56,7 @@ inventory refreshed through Batch W reports:
|
|||
| Methods directly using `Thread.Sleep` / `Task.Delay` | 15 / 14 |
|
||||
| Cancellable-infinite-only / elapsed-time methods | 5 / 24 |
|
||||
| Methods directly reading environment variables | 47 |
|
||||
| Methods directly / through same-file helpers reading `.cs` source text | 63 / 98 |
|
||||
| Methods directly / through same-file helpers reading `.cs` source text | 57 / 92 |
|
||||
|
||||
The three remaining prerequisite-return candidates are all reviewed branch
|
||||
false positives: the two Windows/Linux factory assertions and the launcher's
|
||||
|
|
@ -140,7 +140,7 @@ identifiable in the lane report.
|
|||
| T-009 wall-clock double-click tests | resolved in batch E | Four sleeps were replaced by a deterministic test clock behind an internal factory overload. The production factory still reads `Environment.TickCount64` exactly as before. |
|
||||
| T-010 two useless cases | high-confidence cleanup batch A | Delete `SmokeTest.TestProject_IsWired` and `ChaseCameraTests.ImplementsICamera`; compilation already proves both claims. |
|
||||
| T-011 diagnostic-only methods | resolved in batches C, L, and R | The reviewed current set is 82 methods / 103 cases. All carry `Purpose=Diagnostic`, preserving the apparatus while removing it from release pass totals. Batch R catches investigations whose only assertion validates fixture/DAT availability, which the original mechanical output-only scan could not distinguish from an oracle. |
|
||||
| T-012 source-text freezes | direct-read map completed in batch I, helper-mediated gap corrected in batch U, and staged replacement active | Seventeen whole-tree architecture rules and five cross-artifact contracts stay. Batch W retires the first nine literal implementation freezes beside stronger behavior or compiled-metadata evidence; 76 staged replacements remain. |
|
||||
| T-012 source-text freezes | direct-read map completed in batch I, helper-mediated gap corrected in batch U, and staged replacement active | Seventeen whole-tree architecture rules and five cross-artifact contracts stay. Batches W/X retire the first 15 literal implementation freezes beside stronger behavior or compiled-metadata evidence; 70 staged replacements remain. |
|
||||
| T-013 controller self-comparison | high-confidence cleanup batch A | Capture the first controller next to the first body and compare every retry with that reference. |
|
||||
| T-014 seven load-sensitive tests | six mechanisms repaired in batch F; one product defect classified | Virtual/wall-clock mixing, tiered-JIT allocation noise, a live controller clock, and a ThreadPool-start timing oracle were removed without weakening behavioral contracts. `DatSoundCache` #321 is a real in-flight-entry race and now runs as `Status=KnownFailure` pending a product fix. |
|
||||
| T-015 four non-prerequisite skips | resolved in batches A/B | PVS scaffold deleted with rationale preserved; redundant chat/radar generators deleted in favor of the comprehensive Manual lane; tower oracle is `Status=KnownFailure`. |
|
||||
|
|
@ -1085,3 +1085,67 @@ Verification:
|
|||
source readers from 67 to 63 and total direct/helper readers from 107 to 98.
|
||||
The remaining 98 reconcile to the 22 approved retained policies/contracts
|
||||
and 76 staged replacements.
|
||||
|
||||
## Batch X streaming publication and live-entity source-freeze replacement
|
||||
|
||||
Batch X converts the four approved streaming-publication freezes and both
|
||||
live-entity composition freezes. No product source changes. The tests now
|
||||
inspect the built dependency graph, execute the real origin publishers, or
|
||||
assert the typed owner/reset calls instead of matching C# fragments.
|
||||
|
||||
The conversion found one materially misleading old assertion. The physics
|
||||
publisher test rejected the literal strings
|
||||
`_physicsDataCache.RemoveCellsForLandblock` and
|
||||
`_physicsDataCache.RemoveBuildingsForLandblock`. Those fragments were absent,
|
||||
but the real publisher correctly performs both removals through
|
||||
`publication.StagingCache`; the test therefore passed without establishing its
|
||||
intended generation-isolation rule. The replacement verifies the compiled
|
||||
`AdvanceBeginOne` path obtains the staging cache before each removal, commits
|
||||
through `RuntimePhysicsState.CommitCollisionGeneration`, does not restart the
|
||||
retained-owner capture, and keeps the old publication bodies out of
|
||||
`GameWindow`.
|
||||
|
||||
The other exact decisions are:
|
||||
|
||||
- the render publisher boundary now scans every compiled GameWindow method and
|
||||
constructor for forbidden terrain, cell-visibility, and EnvCell publication
|
||||
calls, and reflects the removed mesh-preparation/body ownership;
|
||||
- the former umbrella origin test is narrowed to the claim its fixture could
|
||||
not observe: production `LivePresentationCompositionPhase` constructs the
|
||||
render, physics, and static publishers before the one presentation pipeline,
|
||||
while GameWindow retains only that pipeline. Captured origin itself remains
|
||||
covered by the real `LandblockBuildFactory.BuildFar` and
|
||||
`LandblockRenderPublisher.BeginPublication` behavior tests;
|
||||
- recenter ordering is now its own named compiled-call contract: old-window
|
||||
retirement completion precedes `LiveWorldOriginState.Recenter`, which
|
||||
precedes destination commit. The extensive recenter transaction suite still
|
||||
owns retry, replacement, session-reset, and retirement behavior;
|
||||
- the shutdown test reads the compiled operation manifest, including delegate
|
||||
targets, to prove Runtime session stop precedes streamer disposal. It also
|
||||
proves `GameRuntime.StopSession` disposes the live session before checking
|
||||
its completion barrier and retains the re-entrant diagnostic message;
|
||||
- live animation/projectile composition now reflects the exact typed fields
|
||||
and proves `CompletePresentation` constructs `DatProjectileSetupResolver`
|
||||
before `ProjectileController`, with no window closure or remote-motion-view
|
||||
owner; and
|
||||
- the session reset test follows compiled calls through
|
||||
`LiveSessionRuntimeFactory`, `PlayerModeController`, the network-update
|
||||
owner, and `LiveWorldOriginState`, rather than pinning four statement strings.
|
||||
|
||||
`CompiledCallGraph` gained reusable readers for every declared method,
|
||||
delegate method targets, and compiled string literals. These are test-only
|
||||
metadata facilities used when invoking the real process/window graph would
|
||||
mutate external resources.
|
||||
|
||||
Verification:
|
||||
|
||||
- the four directly affected owner suites pass 111/111;
|
||||
- the complete locked Release build covers all 44 projects with zero warnings
|
||||
and zero errors;
|
||||
- the no-retry complete hermetic Release gate passes 14,349/14,349 with zero
|
||||
skips or failures across all 12 test assemblies. The one-case increase is the
|
||||
newly separated recenter-order contract; and
|
||||
- the regenerated 1,254-file inventory parses every file, reports 11,417
|
||||
attributed methods, and reduces direct/total source readers from 63/98 to
|
||||
57/92. The remaining 92 reconcile to 22 approved retained
|
||||
policies/contracts and 70 staged replacements.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue