test: replace frame orchestration source freezes

This commit is contained in:
Erik 2026-08-18 16:40:56 +02:00
parent 9bd5d47c47
commit 9b94050229
3 changed files with 501 additions and 466 deletions

View file

@ -1391,3 +1391,59 @@ Verification:
attributed methods, and reduces direct/total source readers from 39/55 to
32/46. The remaining 46 reconcile to the 22 approved retained
policies/contracts and 24 staged replacements.
## Batch AD frame orchestration and resource-preparation replacement
Batch AD converts all fourteen approved source readers in
`RenderFrameResourceControllerTests` and `UpdateFrameOrchestratorTests`. No
product source changes and no test is removed.
The three render-resource checks now inspect built call and field-store order.
They preserve the texture/dispatcher/environment/portal/clip/terrain/lighting
begin sequence, mesh publication before reveal evaluation and particle begin,
and weather evaluation before the elapsed-clock commit. The existing recording
phase test continues to exercise the public prepare sequence and one GPU-slot
read behaviorally; source comments and local expressions are no longer part of
the oracle.
The update-frame replacements retain the full accepted phase graph and its
existing behavioral fake trace, then use compiled metadata only for production
wiring that cannot safely be invoked without a real session or window:
- the physics script clock has one typed publisher behind `FrameRootCompositionPhase`
and no `GameWindow` publication edge;
- live-object, static-animation, effect, particle/script, and spatial-reconcile
calls preserve their registered adaptation order and exact-once tails;
- streaming precedes the live coordinator, whose inbound session and placement
retry precede command and spatial reconciliation on both available and
quiesced behavioral paths;
- session/frame composition constructs the live-object, spatial, streaming,
gameplay-input, teleport, liveness, auto-entry, camera, and update owners,
while reflected fields and compiled window calls reject the displaced bodies;
- focus loss, player-mode exit, and teleport start retain their typed
mouse-look cleanup edges, including freshness validation before input cleanup
and Runtime transit commit afterward;
- player presentation attachment retains Runtime-publication validation,
camera/shadow/host/mode order, and both cleanup routes; mouse filtering and
typed movement-input seams are checked from method and constructor metadata;
and
- camera sampling/reconciliation and the thin `OnUpdate` profile-to-graph
handoff remain ordered, while live-session event and world-origin consumers
stay behind their focused typed owners without `GameWindow` back-references.
Where construction happens inside acquisition or transfer delegates, the
tests follow the compiled delegate target before inspecting its child edge.
This preserves real execution ownership without reverting to lexical source
order across nested expressions.
Verification follows the user-approved proportionate policy for the remaining
R3 work:
- all 34 focused frame/resource methods pass;
- the complete `AcDream.App.Tests` hermetic lane passes 5,381/5,381 with zero
skips or failures;
- the complete locked Release build covers all 44 projects with zero warnings
and zero errors; and
- a targeted scan confirms neither owning test file retains a source reader or
its source-slicing helper. The final full inventory and twelve-assembly
Release gate are intentionally deferred to the one R3 closeout run.