Add an end-to-end TCP acceptance harness (issue #15) (#20)

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.
This commit is contained in:
Nomads_Reach
2026-08-16 19:17:08 -04:00
committed by GitHub
parent 2b5a8c4dcb
commit 6edc16ed20
7 changed files with 550 additions and 0 deletions
+1
View File
@@ -11,5 +11,6 @@
</PropertyGroup>
<ItemGroup>
<Compile Remove="tests/**/*.cs" />
<Compile Remove="acceptance/**/*.cs" />
</ItemGroup>
</Project>