CultLib/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 3b9ffac2fe C#: a send failure's goodbye belongs to the generation that sent
Send ended an unsendable session after releasing SessionGate, and the
goodbye was built under the gate but sent outside it. If the polling
thread admitted a new Connect from the same endpoint in that window, the
ended generation's goodbye reached the new client: it saw Data, Accept,
Disconnect and believed itself disconnected while the listener held it
connected.

Every path that finds a permanent send failure now reads the session's
generation under the gate at the send, and EndUnsendableSession builds
and sends the goodbye under the gate only while that generation is
unchanged. The generation check replaces the UnsendableReason once-guard:
a second failure in the same generation finds it already ended.

The test orders the new Connect inside the send, before the fragment
that can never be sent, and asserts the new client hears no Disconnect
and stays connected on both sides. It fails on the pre-fix code
(Data, Accept, Disconnect) and kills the mutant that drops the check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:23:30 +02:00
..
GameCult.Caching.ConsumerBuild Delete the CultCache MessagePack source generator 2026-09-13 23:38:08 +02:00
GameCult.Caching.InteropPeer Delete the CultCache MessagePack source generator 2026-09-13 23:38:08 +02:00
GameCult.Caching.Tests Caching: JSON converter and MessagePack formatter for CultPhasor 2026-09-30 02:46:29 +02:00
GameCult.Geometry.Tests Geometry tests: import System.Linq for the reference walk test 2026-09-30 02:30:43 +02:00
GameCult.Mesh.Quic.Native.Tests Extend the Cut 5 interop lane: a late C# native connector gets the TS retained frame 2026-09-23 18:32:39 +02:00
GameCult.Mesh.Quic.Tests Fix a flaky disconnect wait in the reliable-ordered retention test 2026-09-23 18:20:36 +02:00
GameCult.Mesh.Tests Tests: the Mesh same-schema read serves only owned rows; the unowned put answer must try to send 2026-09-30 06:23:09 +02:00
GameCult.Networking.InteropPeer Ack Cut 1c (C#): a Connect's sequence says whether it repeats; the handshake alone seeds the watermark 2026-09-30 05:51:14 +02:00
GameCult.Networking.Tests C#: a send failure's goodbye belongs to the generation that sent 2026-09-30 17:23:30 +02:00
GameCult.Networking.WebSockets.Tests Add real browser CultMesh transport proof 2026-08-18 00:05:57 +02:00
vectors Regenerate the C1 variant vector: the variant overrides its indexed code 2026-09-29 06:59:29 +02:00