| 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 832b8b9b479487c242745aae6d2969a900c051aa..ee6f949f1aebfa590e0dc280ccac378cf1006b0e 100644
|
| --- a/net/quic/quic_sent_packet_manager_test.cc
|
| +++ b/net/quic/quic_sent_packet_manager_test.cc
|
| @@ -191,9 +191,7 @@ TEST_F(QuicSentPacketManagerTest, IsUnacked) {
|
| }
|
|
|
| TEST_F(QuicSentPacketManagerTest, IsUnAckedRetransmit) {
|
| - SerializedPacket serialized_packet(CreateDataPacket(1));
|
| -
|
| - manager_.OnSerializedPacket(serialized_packet);
|
| + SendDataPacket(1);
|
| RetransmitPacket(1, 2);
|
|
|
| EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(&manager_, 2));
|
| @@ -204,26 +202,26 @@ TEST_F(QuicSentPacketManagerTest, IsUnAckedRetransmit) {
|
| }
|
|
|
| TEST_F(QuicSentPacketManagerTest, RetransmitThenAck) {
|
| - SerializedPacket serialized_packet(CreateDataPacket(1));
|
| -
|
| - manager_.OnSerializedPacket(serialized_packet);
|
| - RetransmitPacket(1, 2);
|
| + SendDataPacket(1);
|
| + RetransmitAndSendPacket(1, 2);
|
|
|
| // Ack 2 but not 1.
|
| ReceivedPacketInfo received_info;
|
| received_info.largest_observed = 2;
|
| received_info.missing_packets.insert(1);
|
| + EXPECT_CALL(*send_algorithm_, UpdateRtt(_));
|
| + EXPECT_CALL(*send_algorithm_, OnPacketAcked(2, _)).Times(1);
|
| manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
|
|
| - // No unacked packets remain.
|
| - VerifyUnackedPackets(NULL, 0);
|
| + // Packet 1 is unacked, pending, but not retransmittable.
|
| + QuicPacketSequenceNumber unacked[] = { 1 };
|
| + VerifyUnackedPackets(unacked, arraysize(unacked));
|
| + EXPECT_TRUE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
|
| VerifyRetransmittablePackets(NULL, 0);
|
| }
|
|
|
| TEST_F(QuicSentPacketManagerTest, RetransmitThenAckBeforeSend) {
|
| - SerializedPacket serialized_packet(CreateDataPacket(1));
|
| -
|
| - manager_.OnSerializedPacket(serialized_packet);
|
| + SendDataPacket(1);
|
| QuicSentPacketManagerPeer::MarkForRetransmission(
|
| &manager_, 1, NACK_RETRANSMISSION);
|
| EXPECT_TRUE(manager_.HasPendingRetransmissions());
|
| @@ -231,6 +229,8 @@ TEST_F(QuicSentPacketManagerTest, RetransmitThenAckBeforeSend) {
|
| // Ack 1.
|
| ReceivedPacketInfo received_info;
|
| received_info.largest_observed = 1;
|
| + EXPECT_CALL(*send_algorithm_, UpdateRtt(_));
|
| + EXPECT_CALL(*send_algorithm_, OnPacketAcked(1, _)).Times(1);
|
| manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
|
|
| // There should no longer be a pending retransmission.
|
| @@ -389,19 +389,23 @@ TEST_F(QuicSentPacketManagerTest, RetransmitTwiceThenAckFirst) {
|
| }
|
|
|
| TEST_F(QuicSentPacketManagerTest, TruncatedAck) {
|
| - SerializedPacket serialized_packet(CreateDataPacket(1));
|
| -
|
| - manager_.OnSerializedPacket(serialized_packet);
|
| - RetransmitPacket(1, 2);
|
| - RetransmitPacket(2, 3);
|
| - RetransmitPacket(3, 4);
|
| + SendDataPacket(1);
|
| + RetransmitAndSendPacket(1, 2);
|
| + RetransmitAndSendPacket(2, 3);
|
| + RetransmitAndSendPacket(3, 4);
|
| + RetransmitAndSendPacket(4, 5);
|
|
|
| - // Truncated ack with 2 NACKs
|
| + // Truncated ack with 4 NACKs, so the first packet is lost.
|
| ReceivedPacketInfo received_info;
|
| - received_info.largest_observed = 2;
|
| + received_info.largest_observed = 4;
|
| received_info.missing_packets.insert(1);
|
| received_info.missing_packets.insert(2);
|
| + received_info.missing_packets.insert(3);
|
| + received_info.missing_packets.insert(4);
|
| received_info.is_truncated = true;
|
| + EXPECT_CALL(*send_algorithm_, UpdateRtt(_));
|
| + EXPECT_CALL(*send_algorithm_, OnPacketLost(1, _));
|
| + EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(1, _));
|
| manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
|
|
| // High water mark will be raised.
|
| @@ -412,12 +416,10 @@ TEST_F(QuicSentPacketManagerTest, TruncatedAck) {
|
| }
|
|
|
| TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) {
|
| - SerializedPacket serialized_packet(CreateDataPacket(1));
|
| -
|
| - manager_.OnSerializedPacket(serialized_packet);
|
| - RetransmitPacket(1, 2);
|
| - RetransmitPacket(2, 3);
|
| - RetransmitPacket(3, 4);
|
| + SendDataPacket(1);
|
| + RetransmitAndSendPacket(1, 2);
|
| + RetransmitAndSendPacket(2, 3);
|
| + RetransmitAndSendPacket(3, 4);
|
| manager_.OnSerializedPacket(CreateDataPacket(5));
|
| manager_.OnSerializedPacket(CreateDataPacket(6));
|
| manager_.OnSerializedPacket(CreateDataPacket(7));
|
| @@ -429,6 +431,8 @@ TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) {
|
| ReceivedPacketInfo received_info;
|
| received_info.largest_observed = 2;
|
| received_info.missing_packets.insert(1);
|
| + EXPECT_CALL(*send_algorithm_, UpdateRtt(_));
|
| + EXPECT_CALL(*send_algorithm_, OnPacketAcked(2, _));
|
| manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| EXPECT_TRUE(manager_.IsUnacked(4));
|
| }
|
| @@ -442,6 +446,9 @@ TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) {
|
| received_info.missing_packets.insert(5);
|
| received_info.missing_packets.insert(6);
|
| received_info.is_truncated = true;
|
| + EXPECT_CALL(*send_algorithm_, OnPacketAcked(1, _));
|
| + EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(3, _));
|
| + EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(4, _));
|
| manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| }
|
|
|
| @@ -452,130 +459,6 @@ TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) {
|
| VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| }
|
|
|
| -TEST_F(QuicSentPacketManagerTest, SendDropAckRetransmitManyPackets) {
|
| - manager_.OnSerializedPacket(CreateDataPacket(1));
|
| - manager_.OnSerializedPacket(CreateDataPacket(2));
|
| - manager_.OnSerializedPacket(CreateDataPacket(3));
|
| -
|
| - {
|
| - // Ack packets 1 and 3.
|
| - ReceivedPacketInfo received_info;
|
| - received_info.largest_observed = 3;
|
| - received_info.missing_packets.insert(2);
|
| - manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| -
|
| - QuicPacketSequenceNumber unacked[] = { 2 };
|
| - VerifyUnackedPackets(unacked, arraysize(unacked));
|
| - QuicPacketSequenceNumber retransmittable[] = { 2 };
|
| - VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| - }
|
| -
|
| - manager_.OnSerializedPacket(CreateDataPacket(4));
|
| - manager_.OnSerializedPacket(CreateDataPacket(5));
|
| -
|
| - {
|
| - // Ack packets 5.
|
| - ReceivedPacketInfo received_info;
|
| - received_info.largest_observed = 5;
|
| - received_info.missing_packets.insert(2);
|
| - received_info.missing_packets.insert(4);
|
| - manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| -
|
| - QuicPacketSequenceNumber unacked[] = { 2, 4 };
|
| - VerifyUnackedPackets(unacked, arraysize(unacked));
|
| - QuicPacketSequenceNumber retransmittable[] = { 2, 4 };
|
| - VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| - }
|
| -
|
| - manager_.OnSerializedPacket(CreateDataPacket(6));
|
| - manager_.OnSerializedPacket(CreateDataPacket(7));
|
| -
|
| - {
|
| - // Ack packets 7.
|
| - ReceivedPacketInfo received_info;
|
| - received_info.largest_observed = 7;
|
| - received_info.missing_packets.insert(2);
|
| - received_info.missing_packets.insert(4);
|
| - received_info.missing_packets.insert(6);
|
| - manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| -
|
| - QuicPacketSequenceNumber unacked[] = { 2, 4, 6 };
|
| - VerifyUnackedPackets(unacked, arraysize(unacked));
|
| - QuicPacketSequenceNumber retransmittable[] = { 2, 4, 6 };
|
| - VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| - }
|
| -
|
| - RetransmitPacket(2, 8);
|
| - manager_.OnSerializedPacket(CreateDataPacket(9));
|
| - manager_.OnSerializedPacket(CreateDataPacket(10));
|
| -
|
| - {
|
| - // Ack packet 10.
|
| - ReceivedPacketInfo received_info;
|
| - received_info.largest_observed = 10;
|
| - received_info.missing_packets.insert(2);
|
| - received_info.missing_packets.insert(4);
|
| - received_info.missing_packets.insert(6);
|
| - received_info.missing_packets.insert(8);
|
| - received_info.missing_packets.insert(9);
|
| - manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| -
|
| - QuicPacketSequenceNumber unacked[] = { 2, 4, 6, 8, 9 };
|
| - VerifyUnackedPackets(unacked, arraysize(unacked));
|
| - QuicPacketSequenceNumber retransmittable[] = { 4, 6, 8, 9 };
|
| - VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| - }
|
| -
|
| -
|
| - RetransmitPacket(4, 11);
|
| - manager_.OnSerializedPacket(CreateDataPacket(12));
|
| - manager_.OnSerializedPacket(CreateDataPacket(13));
|
| -
|
| - {
|
| - // Ack packet 13.
|
| - ReceivedPacketInfo received_info;
|
| - received_info.largest_observed = 13;
|
| - received_info.missing_packets.insert(2);
|
| - received_info.missing_packets.insert(4);
|
| - received_info.missing_packets.insert(6);
|
| - received_info.missing_packets.insert(8);
|
| - received_info.missing_packets.insert(9);
|
| - received_info.missing_packets.insert(11);
|
| - received_info.missing_packets.insert(12);
|
| - manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| -
|
| - QuicPacketSequenceNumber unacked[] = { 2, 4, 6, 8, 9, 11, 12 };
|
| - VerifyUnackedPackets(unacked, arraysize(unacked));
|
| - QuicPacketSequenceNumber retransmittable[] = { 6, 8, 9, 11, 12 };
|
| - VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| - }
|
| -
|
| - RetransmitPacket(6, 14);
|
| - manager_.OnSerializedPacket(CreateDataPacket(15));
|
| - manager_.OnSerializedPacket(CreateDataPacket(16));
|
| -
|
| - {
|
| - // Ack packet 16.
|
| - ReceivedPacketInfo received_info;
|
| - received_info.largest_observed = 13;
|
| - received_info.missing_packets.insert(2);
|
| - received_info.missing_packets.insert(4);
|
| - received_info.missing_packets.insert(6);
|
| - received_info.missing_packets.insert(8);
|
| - received_info.missing_packets.insert(9);
|
| - received_info.missing_packets.insert(11);
|
| - received_info.missing_packets.insert(12);
|
| - received_info.is_truncated = true;
|
| - manager_.OnIncomingAck(received_info, QuicTime::Zero());
|
| -
|
| - // Truncated ack raises the high water mark by clearing out 2, 4, and 6.
|
| - QuicPacketSequenceNumber unacked[] = { 8, 9, 11, 12, 14, 15, 16 };
|
| - VerifyUnackedPackets(unacked, arraysize(unacked));
|
| - QuicPacketSequenceNumber retransmittable[] = { 8, 9, 11, 12, 14, 15, 16 };
|
| - VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| - }
|
| -}
|
| -
|
| TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacket) {
|
| EXPECT_CALL(helper_, GetNextPacketSequenceNumber()).WillOnce(Return(1u));
|
| EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket());
|
|
|