test: replace campaign labels with behavior names

This commit is contained in:
Erik 2026-08-18 12:25:00 +02:00
parent e6fab96f12
commit 9c6b143a03
30 changed files with 135 additions and 97 deletions

File diff suppressed because one or more lines are too long

View file

@ -136,7 +136,7 @@ identifiable in the lane report.
| 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`. |
| T-016 historical test taxonomy | open | Rename/re-home only after each test's durable owner and oracle are established. |
| T-016 historical test taxonomy | first descriptive-identity batch active in batch J | Remove opaque AP/R/J/K/Slice codes from current test/type names while preserving provenance in comments and ledgers. The 47 `Issue###` files remain an explicit user-decision set because their IDs still connect tests to retail evidence. |
| T-017 Avalonia ownership | reopened and closed in batch D | The full gate exposed the same compositor ownership class between six newer `MainWindowViewTests` facts. Their six named assertion phases now run in one owned Avalonia application session; 25 fresh-process stress iterations and the complete gate pass. |
| T-018 stderr observer race | resolved in R2 | Live reader shares writes/deletes; 25 focused repetitions plus the complete gate. |
| T-019 remaining explicit waits | classified in batch H; nine fixed-delay negative oracles need cleanup | Five of the 38 methods are deterministic cancellation stubs, not wall-clock tests. Preserve four intentional real-time contracts and bounded integration polling; replace the nine tests that infer “still blocked” from a fixed delay with observable synchronization state. |
@ -465,7 +465,7 @@ of three dispositions:
| Disposition | Methods | Owning test files |
|---|---:|---|
| Campaign-era implementation-shape freeze; replace in stages | 46 | `ContentEffectsAudioCompositionTests`, `FrameRootCompositionTests`, `HostInputCameraCompositionTests`, `InteractionRetainedUiCompositionTests`, `LivePresentationCompositionTests`, `SessionPlayerCompositionTests`, `WorldRenderCompositionTests`, `GameWindowLiveSessionOwnershipTests`, `GameWindowRenderLeafCompositionTests`, `GameWindowSlice8BoundaryTests`, `ResourceCleanupGroupTests`, `RetailPViewPassExecutorTests`, `WorldRenderFrameBuilderTests`, `WorldSceneRendererTests`, `LandblockBuildOriginTests`, `LandblockPhysicsPublisherTests`, `LandblockRenderPublisherTests`, `GameWindowLiveEntityCompositionTests`, `UpdateFrameOrchestratorTests` |
| Campaign-era implementation-shape freeze; replace in stages | 46 | `ContentEffectsAudioCompositionTests`, `FrameRootCompositionTests`, `HostInputCameraCompositionTests`, `InteractionRetainedUiCompositionTests`, `LivePresentationCompositionTests`, `SessionPlayerCompositionTests`, `WorldRenderCompositionTests`, `GameWindowLiveSessionOwnershipTests`, `GameWindowRenderLeafCompositionTests`, `GameWindowHostBoundaryTests`, `ResourceCleanupGroupTests`, `RetailPViewPassExecutorTests`, `WorldRenderFrameBuilderTests`, `WorldSceneRendererTests`, `LandblockBuildOriginTests`, `LandblockPhysicsPublisherTests`, `LandblockRenderPublisherTests`, `GameWindowLiveEntityCompositionTests`, `UpdateFrameOrchestratorTests` |
| Whole-tree architecture policy; retain, then make syntax/metadata-aware | 12 | `LinuxPlatformBoundaryTests`, `RenderSceneArchitectureTests`, `RuntimePhysicsOwnershipTests`, `RuntimeEntityOwnershipTests` |
| Source/project/artifact text is the actual cross-artifact contract; retain | 5 | `ParticleBindlessInstanceTests`, `PerformanceToolsTests`, `LauncherProjectBoundaryTests` |
@ -496,3 +496,45 @@ text is appropriate there.
No source-freeze fact is removed in this classification batch. The 46 staged
facts are an ambiguous architecture decision and will be presented for user
approval in behavior-owner groups rather than deleted from a numeric heuristic.
## Batch J descriptive test identities
The first T-016 naming batch changes no oracle or production behavior. It
renames eight opaque type/file identities and fifteen test methods whose AP,
R, J, K, C3c, or Slice labels described the implementation campaign rather
than the contract a maintainer needs to find:
| Former identity family | Durable identity |
|---|---|
| `GameWindowSlice8BoundaryTests` | `GameWindowHostBoundaryTests` |
| `Ap10WaterSemanticsTests`, `Ap71EntryRestrictionGateTests`, `Ap155StaticSpherePopulationMeasurementTests`, `Ap157SortingSphereFloodMeasurementTests` | `WaterSemanticsTests`, `EntryRestrictionGateTests`, `StaticSpherePopulationMeasurementTests`, `SortingSphereFloodMeasurementTests` |
| `ConnectedR6SoakContractTests` | `ConnectedWorldSoakRouteContractTests` |
| `C3cR1F3DriftModelSourcePinTests` | `CreateAuthorityDriftModelSourcePinTests` |
| `R5Host` / `R5ManagerHarness.cs` | `PhysicsObjHostStub` / `PhysicsManagerHarness.cs` |
| J4/J5 Runtime methods | gameplay-view, gameplay-command, checkpoint, simulation, and ownership-ledger names |
| K4/Slice-L/K1c/J9 methods | multi-session profile, unsupported-platform explanation, legacy keymap difference, and stop-speed behavior names |
| AP-135/AP-195 method names | placement-bookkeeping and authored-LED-sprite names |
Provenance is not discarded. AP-157 remains the row key in the retail
divergence register, the connected route keeps its established artifact name,
and historical audit/plan documents retain the old identifiers. Current
cross-references and test comments point to the new descriptive names. The
source-freeze class summary now states its R3 replacement status instead of
claiming to be a temporary Slice 8 checkpoint.
This batch intentionally does not rename the 47 `Issue###` files. Their
descriptive suffixes are often useful, and the issue number can be the shortest
path to a retail trace or reproduction. Re-homing those contracts by component
while retaining `Issue` provenance is an architecture/taxonomy choice for user
approval, not a mechanical cleanup.
Verification before the complete gate:
- all 44 maintained projects build in Release with 0 warnings and 0 errors;
- 102 focused App cases, 203 Core cases, 17 Runtime cases, 5 Headless cases,
1 Launcher.Core case, and 10 UI.Abstractions cases pass; and
- the renamed installed-DAT population measurement passes 1/1 against the
local retail DAT.
The no-retry complete hermetic Release gate passed 14,391/14,391 with zero
skips or failures across all 12 test assemblies.