test: revert Core.Net serialization; widen the virtual-clock harness patience instead
Some checks failed
CI / linux-portable (push) Successful in 3m21s
CI / windows-gate (push) Failing after 4m57s
CI / release (push) Has been skipped

Serializing AcDream.Core.Net.Tests to fix a Linux starvation REGRESSED Windows,
which had been green: Core.Net went from 1000 passed in 7 s (run 154) to
999/1000 in 17 s (run 155), taking down LossSoak_TwoPercentBidirectional_
ZeroMessageLoss_LedgersConverge, a test that had never failed. That trade trans-
ferred the flake between platforms rather than fixing anything, so it is
reverted: no xunit.runner.json, no csproj change.

The actual fragility is narrower than it looked — exactly ONE test uses
real-time waits (PausedSelector_SeededDroppedServerReady_RecoversOnIdleSweep),
and its harness drives a VIRTUAL clock while asserting on 2 s wall-clock
windows. Those windows are patience for background work, not part of the
assertion, and 2 s only ever encoded 'the machine is idle'. They now share a
60 s HarnessPatience constant.

Nothing about what the test verifies changes: recovery must still occur, a
genuine failure to NAK still fails, and a real hang is still bounded. Campaign N
transport code is untouched.

Local: 1000/1000 in 6 s under the gate filter.
This commit is contained in:
Erik 2026-08-19 13:59:42 +02:00
parent 03bcc1a41b
commit daf28bfec5
3 changed files with 16 additions and 19 deletions

View file

@ -22,15 +22,4 @@
<ProjectReference Include="..\..\src\AcDream.Core.Net\AcDream.Core.Net.csproj" />
</ItemGroup>
<ItemGroup>
<!-- Several transport tests drive a virtual clock but assert on REAL-time
waits (2 s SpinUntil windows). Under default parallelism on a small CI
container PausedSelector_SeededDroppedServerReady_RecoversOnIdleSweep
took 37-42 s and missed its window, while passing 5/5 in ~350 ms in
isolation on the same machine. Serialize the assembly rather than
loosen a Campaign N transport assertion. Same settings
AcDream.Core.Tests and AcDream.Launcher.Tests already use. -->
<None Update="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
</Project>