Stand up the real AuthoritativeServer behind the real TCP transport on a loopback port and drive real SyntheticProtocolClient sockets through it, so the matrix is exercised over an actual connection rather than in-memory fakes. Covers the baseline-protocol, TCP-compatibility, and interest-management sections: welcome->hello->sessionReady handshake, unique/non-spoofable server-owned ids, malformed and oversized rejection before mutation, rate-limit tripping, transform/playerState/worldState relay, action events not replay-cached to late joiners, disconnect/reconnect leaving no stale session, same-cell relay vs distant interest filtering, multi-client no cross-cell spam, and handshake-timeout reaping. The harness runs for real wherever loopback TCP can bind (dev machines, the self-hosted runner) and skips cleanly otherwise. Wired into a self-hosted CI job gated by the runtime-policy guard. 60s idle-timeout, 32/64-client load / packet-loss / reconnect-churn, and GNS sections remain follow-ups.
17 lines
555 B
XML
17 lines
555 B
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<OutputType>Exe</OutputType>
|
|
<TargetFramework>net8.0</TargetFramework>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<LangVersion>latest</LangVersion>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<AssemblyName>CommonwealthOnline.Server</AssemblyName>
|
|
<RootNamespace>CommonwealthOnline.Server</RootNamespace>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<Compile Remove="tests/**/*.cs" />
|
|
<Compile Remove="acceptance/**/*.cs" />
|
|
</ItemGroup>
|
|
</Project>
|