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:
@@ -26,6 +26,15 @@ dotnet run --project CommonwealthOnline.Server.csproj -- serve --config commonwe
|
||||
|
||||
`start.bat` and `start.sh` prefer a published apphost, then a framework-dependent DLL, then `dotnet run` in a source checkout.
|
||||
|
||||
### Tests
|
||||
|
||||
- `tests/` — fast in-memory unit/component tests over the authoritative core (run in the `CSharp Server Gate` CI).
|
||||
- `acceptance/` — end-to-end acceptance harness (issue #15): stands up the real server behind the real TCP transport on a loopback port and drives real client sockets through the baseline-protocol, TCP-compatibility, and interest-management matrix sections. Runs in the `Acceptance (end-to-end TCP)` CI, or locally:
|
||||
|
||||
```bash
|
||||
dotnet run --project acceptance/CommonwealthOnline.Server.Acceptance.csproj -c Release
|
||||
```
|
||||
|
||||
## Config
|
||||
|
||||
Generate defaults:
|
||||
|
||||
Reference in New Issue
Block a user