docs: close r3 test cleanup

This commit is contained in:
Erik 2026-08-18 17:02:15 +02:00
parent 14d371a05b
commit b64c8041dc

View file

@ -1,6 +1,6 @@
# R3 test-truth and cleanup ledger
Status: **active**
Status: **complete**
Branch: `codex/release-stabilization`
@ -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 X reports:
final closeout inventory at implementation commit `14d371a0` reports:
| Syntax signal | Current count |
|---|---:|
| Tracked/parsed C# test files | 1,254 / 1,254 |
| Attributed test methods (not expanded theory cases) | 11,417 |
| Attributed test methods (not expanded theory cases) | 11,414 |
| 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 X 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 | 57 / 92 |
| Methods directly / in total reading `.cs` source text | 21 / 22 |
The three remaining prerequisite-return candidates are all reviewed branch
false positives: the two Windows/Linux factory assertions and the launcher's
@ -1538,3 +1538,57 @@ Verification follows the proportionate R3 policy:
source-pin comment in the affected tests. With this batch, all 85 approved
replacements are implemented; final inventory reconciliation and the one
complete Release gate follow next.
## R3 closeout
R3 closes on implementation commit `14d371a0`. The final Roslyn inventory and
the one complete Release gate both ran from that clean commit; this closeout is
the only later documentation change.
The final inventory parses all 1,254 tracked C# test files and attributes
11,414 test methods. It finds 21 direct source readers and 22 readers in total.
Those 22 reconcile exactly to the approved retained boundary:
| Retained disposition | Methods | Reconciled owners |
|---|---:|---|
| Whole-tree architecture policy | 17 | `LinuxPlatformBoundaryTests` (5), `RenderSceneArchitectureTests` (2), `RuntimePhysicsOwnershipTests` (4), `RuntimeEntityOwnershipTests` (2), and one each in `RuntimeActionOwnershipTests`, `RuntimeMovementOwnershipTests`, `RuntimeWorldTransitOwnershipTests`, and `RuntimeDatAccessArchitectureTests` |
| Cross-artifact source/project contract | 5 | `ParticleBindlessInstanceTests` (1), `PerformanceToolsTests` (1), and `LauncherProjectBoundaryTests` (3) |
The original corrected inventory's equation therefore closes without an
unclassified reader: 107 source readers = 85 replaced implementation/test-
model freezes + 17 retained architecture policies + 5 retained cross-artifact
contracts. Three of the 85 replacements removed a redundant test because an
existing stronger behavioral oracle already covered the claim; the other 82
kept a test and changed its evidence seam.
The other approved boundaries also reconcile:
- Batch V deleted exactly 28 attributed self-tests: 17 widget-recorder tests,
nine main-menu-recorder tests, and two positional-record tests. All three
approved files remain absent.
- `FakePanelRenderer` remains. The retained behavior boundary is exactly 23
attributed methods and 29 expanded cases: 22 `ChatPanel` layout/input/focus
methods plus the `ChatVMCombatTests` render-path method.
- The issue taxonomy remains descriptive: 47 `Issue###...Tests.cs` files and
all 155 attributed methods remain, with every filename carrying a behavior
suffix after its issue number.
R3 changed no product behavior. A diff from starting commit `8e884679` contains
eight `src/` paths, all previously reviewed testability/documentation seams:
two comment-only test-name updates; deterministic clock injection for input and
streaming whose public production construction still selects the same system
clock; nullable launcher contention callbacks that production leaves unset;
and one test-assembly `InternalsVisibleTo`. No shipping default, ownership,
algorithm, protocol, or presentation path changes.
Final verification at clean implementation commit `14d371a0`:
- locked Release restore and build: 44 projects, zero warnings, zero errors;
- complete hermetic Release gate: 14,346 passed, zero skipped, zero failed,
across all 12 default test assemblies; and
- durable ignored evidence: `artifacts/test-audit/test-inventory.json` and
`artifacts/release-gate/release-gate-summary.json`, with logs, TRX files,
environment capture, and SHA-256 manifest beside the gate summary.
Every R3 decision is now represented by the batch ledger above, the final
inventory agrees with every approved count, and no cleanup item remains open.