fix: complete retail parity stability pass
This commit is contained in:
parent
d3df4cb20a
commit
f7aa8e0eb7
131 changed files with 7765 additions and 1190 deletions
|
|
@ -392,6 +392,29 @@ public sealed class OutboundReliableTransportTests
|
|||
Assert.Equal(5u, wrapQueue.AckWatermark);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NewerAckOvertakingQueuedNak_SuppressesStaleEncryptedResend()
|
||||
{
|
||||
(OutboundFlowQueue queue, _, _, TransportStats stats,
|
||||
List<byte[]> sent) = CreateQueue();
|
||||
queue.SendGameMessage(MakeMessage(2), GameMessageGroup.UIQueue);
|
||||
queue.SendGameMessage(MakeMessage(3), GameMessageGroup.UIQueue);
|
||||
queue.SendGameMessage(MakeMessage(4), GameMessageGroup.UIQueue);
|
||||
|
||||
// The NAK for seq 2 is queued first. Before the frame sweep, a later
|
||||
// cumulative ACK proves the server has already advanced through 3.
|
||||
Nak(queue, 2u);
|
||||
queue.OnAckSequence(3u);
|
||||
sent.Clear();
|
||||
|
||||
queue.TransmitPendingResends();
|
||||
|
||||
Assert.Empty(sent);
|
||||
Assert.Equal(0, stats.ResendsSent);
|
||||
Assert.Equal(2, queue.CacheDepth); // watermark itself + newer seq 4
|
||||
Assert.Equal(0, queue.PendingResendCount);
|
||||
}
|
||||
|
||||
// =====================================================================
|
||||
// Conformance against the N0 ACE-behaviour double
|
||||
// =====================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue