test(worker): use Register (a real STA command) for STA-dispatch race tests

Ping is now intercepted as a worker control command and answered on the
message-loop thread, so the dispatch/heartbeat/shutdown-race tests must use a
genuine STA-dispatched command kind to keep exercising DispatchAsync.
This commit is contained in:
Joseph Doherty
2026-06-15 10:25:34 -04:00
parent 72e1aca716
commit f94c206489
@@ -1130,6 +1130,11 @@ public sealed class WorkerPipeSessionTests
};
}
// A generic STA-dispatched command used by the dispatch/heartbeat/
// shutdown-race tests. Register is a real MXAccess command kind (not a
// worker control command), so it flows through IWorkerRuntimeSession
// .DispatchAsync — unlike Ping/GetSessionState/etc., which are answered on
// the message-loop thread without touching the STA.
private static WorkerEnvelope CreateCommandEnvelope(string correlationId, ulong sequence = 2)
{
return new WorkerEnvelope
@@ -1142,10 +1147,10 @@ public sealed class WorkerPipeSessionTests
{
Command = new MxCommand
{
Kind = MxCommandKind.Ping,
Ping = new PingCommand
Kind = MxCommandKind.Register,
Register = new RegisterCommand
{
Message = "ping",
ClientName = "test-client",
},
},
EnqueueTimestamp = Timestamp.FromDateTimeOffset(DateTimeOffset.UtcNow),