| 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 8cd4f88fd611d40daa8f759526583d9394344ae9..4b576c615dafdf74c4e8b3870bb73ad5afa07918 100644
|
| --- a/net/quic/quic_sent_packet_manager_test.cc
|
| +++ b/net/quic/quic_sent_packet_manager_test.cc
|
| @@ -388,6 +388,47 @@ TEST_F(QuicSentPacketManagerTest, TruncatedAck) {
|
| VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| }
|
|
|
| +TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) {
|
| + SerializedPacket serialized_packet(CreateDataPacket(1));
|
| +
|
| + manager_.OnSerializedPacket(serialized_packet);
|
| + RetransmitPacket(1, 2);
|
| + RetransmitPacket(2, 3);
|
| + RetransmitPacket(3, 4);
|
| + manager_.OnSerializedPacket(CreateDataPacket(5));
|
| + manager_.OnSerializedPacket(CreateDataPacket(6));
|
| + manager_.OnSerializedPacket(CreateDataPacket(7));
|
| + manager_.OnSerializedPacket(CreateDataPacket(8));
|
| + manager_.OnSerializedPacket(CreateDataPacket(9));
|
| +
|
| + // Ack previous transmission
|
| + {
|
| + ReceivedPacketInfo received_info;
|
| + received_info.largest_observed = 2;
|
| + received_info.missing_packets.insert(1);
|
| + manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| + EXPECT_TRUE(manager_.IsUnacked(4));
|
| + }
|
| +
|
| + // Truncated ack with 4 NACKs
|
| + {
|
| + ReceivedPacketInfo received_info;
|
| + received_info.largest_observed = 6;
|
| + received_info.missing_packets.insert(3);
|
| + received_info.missing_packets.insert(4);
|
| + received_info.missing_packets.insert(5);
|
| + received_info.missing_packets.insert(6);
|
| + received_info.is_truncated = true;
|
| + manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| + }
|
| +
|
| + // High water mark will be raised.
|
| + QuicPacketSequenceNumber unacked[] = { 5, 6, 7, 8, 9 };
|
| + VerifyUnackedPackets(unacked, arraysize(unacked));
|
| + QuicPacketSequenceNumber retransmittable[] = { 5, 6, 7, 8, 9 };
|
| + VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| +}
|
| +
|
| TEST_F(QuicSentPacketManagerTest, SendDropAckRetransmitManyPackets) {
|
| manager_.OnSerializedPacket(CreateDataPacket(1));
|
| manager_.OnSerializedPacket(CreateDataPacket(2));
|
|
|