test: replace graphical host source freezes

This commit is contained in:
Erik 2026-08-18 16:30:25 +02:00
parent 5e56045077
commit 9bd5d47c47
2 changed files with 678 additions and 641 deletions

View file

@ -1341,3 +1341,53 @@ Verification:
attributed methods, and reduces direct/total source readers from 41/64 to
39/55. The remaining 55 reconcile to the 22 approved retained
policies/contracts and 33 staged replacements.
## Batch AC graphical-host and lifetime source-freeze replacement
Batch AC converts all nine approved `GameWindowHostBoundaryTests` source
readers. No product source changes and no test is removed.
Startup now follows the compiled settings snapshot, frame-pacing, native
window, callback-target, callback-binding, attachment, and frame-loop edges.
The callback delegate targets retain their exact load/update/render/closing/
focus/resize order without treating local names, comments, or nested argument
spelling as behavior. `OnLoad` phase ordering is recovered from its compiled
delegate targets, while frame-root and session-player completion checks follow
their typed construction, binding, attachment, publication, and transfer
edges.
The remaining owner checks reflect the one `WorldEnvironmentController` and
`RuntimeSettingsController`, reject their displaced window mirrors, and
follow environment routing, settings startup/runtime binding, terrain-atlas
acquisition, input-action attachment, and framebuffer-resize publication
through the built methods. Focus, update, render, close, and dispose are
verified as narrow handoffs. In particular, the render check uses semantic IL
execution order—window size, immutable input construction, then graph render—
rather than the misleading lexical order of a nested source expression.
Shutdown now uses reflected root types, field stores, built call order, and
the compiled manifest's stage/operation labels. It preserves the twenty-stage
dependency order, plugin transfer before startup, ingress cleanup ordering,
Runtime/UI/resource release boundaries, `TryComplete` before native-window
release, and the final `_window` clear after the shared shutdown funnel. A
label such as `input context` may legitimately identify both an operation and
its stage; the replacement therefore verifies dependency order instead of
mistaking duplicate human-readable labels for duplicate ownership.
The old checks for HostInputCamera local `if` spelling are retired rather than
translated. `HostInputCameraCompositionTests` already exercise the complete
production acquisition and every fault boundary; the names and arrangement
of compiler locals are not part of the host contract. All valuable ownership,
ordering, and cleanup rationale remains in the compiled guards above.
Verification:
- all nine focused graphical-host/lifetime methods pass;
- the complete locked Release build covers all 44 projects with zero warnings
and zero errors;
- the no-retry complete hermetic Release gate remains 14,346/14,346 with zero
skips or failures across all 12 test assemblies; and
- the regenerated 1,254-file inventory parses every file, remains at 11,414
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.