test: stabilize load-sensitive release contracts
This commit is contained in:
parent
c8c764a40e
commit
dfc841b779
8 changed files with 199 additions and 43 deletions
|
|
@ -134,7 +134,7 @@ identifiable in the lane report.
|
|||
| T-011 51 output-only methods | classified in batch C | The reviewed current set is 51 methods / 70 cases. All carry `Purpose=Diagnostic`, preserving the apparatus while removing it from release pass totals. Contract-shaped names remain explicitly flagged until a stable oracle exists. |
|
||||
| T-012 source-text freezes | requires semantic replacement map | Retain whole-tree dependency rules; remove exact-text freezes only when an equivalent semantic/behavioral guard is identified. |
|
||||
| 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 | active; first mechanism reproduced | `PortalProjectionTests.ClipToRegion_FrameOwnedStore_ReusesExactResultArray` reported 6,904 B only while three App test hosts ran concurrently, then passed in an isolated run. Preserve both observations and remove ambient process-allocation sensitivity rather than loosening the zero-allocation oracle. |
|
||||
| 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-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. |
|
||||
|
|
@ -330,3 +330,43 @@ recognition. The public production factory remains wired directly to
|
|||
The focused class passes 4/4 in 17 ms with exact 10 ms and 600 ms virtual
|
||||
intervals. The complete Release build then passed with 0 warnings/errors, and
|
||||
the no-retry hermetic gate passed 14,392/14,392 with zero skips or failures.
|
||||
|
||||
## Batch F load-sensitive contracts
|
||||
|
||||
The seven cases in T-014 have now been separated into six unreliable test
|
||||
mechanisms and one real product defect:
|
||||
|
||||
- #308 `NakEmissionTests.LossSoak...` no longer mixes its virtual transport
|
||||
clock with a 60-second `DateTime.UtcNow` cutoff and fixed sleeps. Its two
|
||||
convergence phases each permit exactly 120 half-second virtual steps and
|
||||
yield to the background receiver. The full 10,000-message oracle is intact;
|
||||
25 fresh-process repetitions pass.
|
||||
- #302 and #346, the two `PortalProjectionTests` allocation contracts, now
|
||||
cross tiered-JIT/PGO thresholds before measuring and take the minimum of five
|
||||
warmed 1,000-operation batches. A linear result-array regression would
|
||||
allocate in every batch and still fail far above the existing ceilings.
|
||||
- #336 `RuntimeCollisionReportingStateTests.WarmedSteadyContactRefreshDoesNotAllocate`
|
||||
now earns the word "warmed": it performs one complete 10,000-refresh warmup
|
||||
and requires at least one of five subsequent 10,000-refresh batches to
|
||||
allocate exactly zero bytes. It passes in 25 fresh processes.
|
||||
- #340 `StreamingWorkBudgetTests.DestinationAndEmptyUnloadPriorityNeverBypassPublicationBudget`
|
||||
now supplies a frozen meter clock through an internal test-only constructor.
|
||||
The public production constructor still supplies `Stopwatch.GetTimestamp`
|
||||
and `Stopwatch.Frequency` exactly as before.
|
||||
- #402 `LandblockBuildFactoryTests.Build_UsesTheSuppliedSharedReaderGate` now
|
||||
starts a dedicated thread and observes it in `WaitSleepJoin` on the held
|
||||
monitor before checking that no DAT read occurred. It no longer treats a
|
||||
ThreadPool start within two seconds or an arbitrary 100 ms wait as evidence.
|
||||
- #321 `DatSoundCacheTests.GetWave_ConcurrentSameId_PublishesOneCanonicalWaveAndDecodesOnce`
|
||||
exposes a real race. A caller can pass the resident-cache check, pause, and
|
||||
reach `_inflight` after the winning caller has admitted the wave and removed
|
||||
its `Lazy`, producing a second decode. The assertion and rationale are
|
||||
preserved under `Status=KnownFailure`; R3 makes no cache behavior change.
|
||||
|
||||
The four changed App cases pass 100/100 across 25 fresh processes. The Runtime
|
||||
allocation case passes 25/25, and the Core.Net loss soak passes 25/25. Complete
|
||||
batch verification then passed: the 44-project Release build reports zero
|
||||
warnings/errors, the refreshed inventory reports two explicit known-failure
|
||||
methods and 15 remaining direct `Thread.Sleep` methods, and the no-retry
|
||||
hermetic gate passed 14,391/14,391 with zero skips or failures. The one-pass
|
||||
reduction is exactly #321 leaving the release lane.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue