Index: net/quic/quic_sent_packet_manager_test.cc |
diff --git a/net/quic/quic_sent_packet_manager_test.cc b/net/quic/quic_sent_packet_manager_test.cc |
index a8e181ab297376180c25da553686b05fe1f0abab..a0ac58e437868ad136d163816796220b12ae993a 100644 |
--- a/net/quic/quic_sent_packet_manager_test.cc |
+++ b/net/quic/quic_sent_packet_manager_test.cc |
@@ -250,9 +250,8 @@ TEST_F(QuicSentPacketManagerTest, RetransmitThenAckPrevious) { |
received_info.largest_observed = 1; |
EXPECT_TRUE(manager_.OnIncomingAck(received_info, clock_.ApproximateNow())); |
- // 2 remains unacked, but no packets have retransmittable data. |
- QuicPacketSequenceNumber unacked[] = { 2 }; |
- VerifyUnackedPackets(unacked, arraysize(unacked)); |
+ // No packets should be unacked. |
+ VerifyUnackedPackets(NULL, 0); |
EXPECT_FALSE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_)); |
VerifyRetransmittablePackets(NULL, 0); |
@@ -262,6 +261,28 @@ TEST_F(QuicSentPacketManagerTest, RetransmitThenAckPrevious) { |
EXPECT_EQ(1u, stats_.packets_spuriously_retransmitted); |
} |
+TEST_F(QuicSentPacketManagerTest, RetransmitAndSendThenAckPrevious) { |
+ SendDataPacket(1); |
+ RetransmitAndSendPacket(1, 2); |
+ QuicTime::Delta rtt = QuicTime::Delta::FromMilliseconds(15); |
+ clock_.AdvanceTime(rtt); |
+ |
+ // Ack 1 but not 2. |
+ EXPECT_CALL(*send_algorithm_, UpdateRtt(rtt)); |
+ EXPECT_CALL(*send_algorithm_, OnPacketAcked(1, _)); |
+ ReceivedPacketInfo received_info; |
+ received_info.largest_observed = 1; |
+ EXPECT_TRUE(manager_.OnIncomingAck(received_info, clock_.ApproximateNow())); |
+ |
+ // 2 remains unacked, but no packets have retransmittable data. |
+ QuicPacketSequenceNumber unacked[] = { 2 }; |
+ VerifyUnackedPackets(unacked, arraysize(unacked)); |
+ EXPECT_TRUE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_)); |
+ VerifyRetransmittablePackets(NULL, 0); |
+ |
+ EXPECT_EQ(1u, stats_.packets_spuriously_retransmitted); |
+} |
+ |
TEST_F(QuicSentPacketManagerTest, RetransmitThenAckPreviousThenNackRetransmit) { |
SendDataPacket(1); |
RetransmitPacket(1, 2); |