CultLib/tests/GameCult.Networking.Tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens e6ddcdd6e1 GameCult.Mesh: an RUDP client binds by its endpoint, as the other runtimes do
CultMeshRudpSocketOptions.BindHost defaulted to 0.0.0.0 for servers and
clients alike (a58daa54, so clients could reach remote routes). That bound an
IPv4 socket for every client, so a client for an IPv6 endpoint could not send,
and a client for a loopback endpoint listened on every interface.

BindHost is now nullable and unset by default. Unset, a client binds loopback
for a loopback endpoint and the unspecified address of the endpoint's family
(0.0.0.0 or ::) otherwise, matching cultnet-rs, cultnet-ts, cultnet-py and
cultmesh-kotlin. A server keeps binding 0.0.0.0. An explicit BindHost wins for
both. The test that pinned the old default's value is replaced by tests of
what each endpoint binds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 13:50:58 +02:00
..
CultCachePublicationIsolationTests.cs Narrow the escaped-observer probe to what this base can show 2026-09-29 16:57:04 +02:00
CultNetCanonicalNumberTests.cs CultNet selection cut1 fix batch: R-I/K/D tests and R-A/R-M reflection fix 2026-09-22 09:39:36 +02:00
CultNetDocumentBindingResolverTests.cs Make generated and reflective document members one rule 2026-09-13 22:00:16 +02:00
CultNetDocumentRegistryVariantTests.cs CultNet: a withdrawn hop subscription is refused with a typed error and its rows are withdrawn 2026-09-29 10:12:20 +02:00
CultNetJournalTests.cs Dispose test: hold the writer in an earlier observer so Dispose must publish what it logged 2026-09-30 07:03:15 +02:00
CultNetOperationServerTests.cs Bind CultMesh authority identity to physical routes 2026-08-18 17:21:58 +02:00
CultNetPublicationOrderTests.cs Networking tests: order is data, so pin each change's own publication, not its delivery order 2026-09-29 23:52:14 +02:00
CultNetPublishesCommitsTests.cs Pin the single-owner publication cases Soul falsified 2026-09-29 13:21:39 +02:00
CultNetRudpConnectGenerationTests.cs Ack Cut 1d batch 2 (C#): an Ack does not retire a Connect awaiting its Accept; the fresh attempt jumps by the receive window less one 2026-09-30 09:53:06 +02:00
CultNetRudpOrderedDeliveryTests.cs Ack Cut 1 tests: three held frames, the Rust byte bound, reset reseeds 2026-09-30 00:20:04 +02:00
CultNetRudpSessionEndingTests.cs Ack Cut 1b tests: an ending does not forget what the peer sent 2026-09-30 00:24:19 +02:00
CultNetSchemaContractTests.cs Cut 4 Soul 4c: committed-unlogged wire writes, database serves only what it owns, typed unowned refusal 2026-09-30 06:14:49 +02:00
CultNetSchemaServerGroupTests.cs Share CultNet handlers across transports 2026-08-18 01:31:04 +02:00
CultNetSelectionEvaluatorTests.cs Land fix batch 3's R-O and R-Q: keyed length-prefixed cursors, replica-apply sequence gap 2026-09-22 20:04:22 +02:00
CultNetSelectionFixBatchTests.cs R-AT: fix the C# self-citer fixture's naming so it actually defeats push-order luck 2026-09-23 08:38:27 +02:00
CultNetSelectionPageTests.cs CultNet selection cut1 fix batch: R-I/K/D tests and R-A/R-M reflection fix 2026-09-22 09:39:36 +02:00
CultNetSelectionSurvivorTests.cs Correct one comment still naming the deleted To.SchemaId tiebreak 2026-09-23 09:21:52 +02:00
GameCult.Networking.Tests.csproj Add GameCult Mesh package home 2026-05-19 19:08:48 +01:00
MiniJsonSchemaValidator.cs Fix batch 4 (R-X, S-4/S-10): the error schema matches the wire, and the validator refuses a keyword it does not implement 2026-09-22 21:12:23 +02:00
NetworkingTests.cs GameCult.Mesh: an RUDP client binds by its endpoint, as the other runtimes do 2026-09-30 13:50:58 +02:00
README.md JSON backing store, I/O fixes, Networking Security 2026-04-18 13:01:24 +01:00
SelectionParityVectorTests.cs R-AO: shared vector for two-in-target shared-key resolution 2026-09-23 07:18:11 +02:00
SelectionWireParityTests.cs R-AZ: mirror the all-absent Edge vector into the C# parity test 2026-09-23 09:08:42 +02:00
SoulP4cProbeTests.cs Cut 4 Soul 4d: a skipped entry is relayed as the primary sent it; probes, wire cases and the closed-enum rule committed 2026-09-30 08:03:09 +02:00
SoulP4dProbeTests.cs Cut 4 Soul 4d: a skipped entry is relayed as the primary sent it; probes, wire cases and the closed-enum rule committed 2026-09-30 08:03:09 +02:00
SoulP4ProbeTests.cs Journal fixes: hole floor on restart, one log exception per call, no shape guard, no stray shard-0 logging 2026-09-30 02:48:49 +02:00
SoulPub3Tests.cs Soul probes: commit the pass-3 P-tests and the Cut 4 probes as recovered 2026-09-30 02:38:50 +02:00

GameCult.Networking.Tests

GameCult.Networking.Tests contains NUnit tests for the networking library.

Scope

The tests currently cover:

  • AES-GCM encrypt/decrypt round-trips in Secret
  • signed session-token validation
  • signed session-token tamper detection
  • signed session-token expiry handling

Run

dotnet test tests\GameCult.Networking.Tests\GameCult.Networking.Tests.csproj

Adding New Tests

Typical future areas to expand include:

  • client reconnect and verify flows
  • login and registration integration tests
  • malformed message handling
  • rate-limiting behavior under concurrency