test: serialize AcDream.Core.Net.Tests so real-time transport waits are not starved
Some checks failed
CI / linux-portable (push) Successful in 3m22s
CI / windows-gate (push) Failing after 5m15s
CI / release (push) Has been skipped

PausedSelector_SeededDroppedServerReady_RecoversOnIdleSweep failed twice in CI
on the Linux runner, taking 37 s and 42 s, while passing 5/5 in ~350 ms in
isolation on that same machine. The test drives a virtual clock but asserts on
real-time 2 s SpinUntil windows, so full-assembly parallelism on a 6-core
container starves it.

Passing -- xUnit.MaxParallelThreads=2 through dotnet test did not take effect.
A xunit.runner.json is read by xUnit directly and is the convention already
used by AcDream.Core.Tests and AcDream.Launcher.Tests.
This commit is contained in:
Erik 2026-08-19 13:51:07 +02:00
parent 6ef82934dc
commit 03bcc1a41b
2 changed files with 17 additions and 0 deletions

View file

@ -22,4 +22,15 @@
<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>

View file

@ -0,0 +1,6 @@
{
"$schema": "https://xunit.net/schema/current/xunit.runner.schema.json",
"parallelizeAssembly": false,
"parallelizeTestCollections": false,
"maxParallelThreads": 1
}