| 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 798c8deb8ca5ebd0861680744426ab5b0de5bf46..e175cd6e884e05d8fb4f44fb06a2c4c5f8227999 100644
|
| --- a/net/quic/quic_sent_packet_manager_test.cc
|
| +++ b/net/quic/quic_sent_packet_manager_test.cc
|
| @@ -148,11 +148,8 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| Times(AnyNumber());
|
| }
|
|
|
| - // Retransmits a packet as though it was a TLP retransmission, because TLP
|
| - // leaves the |old_sequence_number| pending.
|
| - // TODO(ianswett): Test with transmission types besides TLP.
|
| - void RetransmitPacket(QuicPacketSequenceNumber old_sequence_number,
|
| - QuicPacketSequenceNumber new_sequence_number) {
|
| + void RetransmitAndSendPacket(QuicPacketSequenceNumber old_sequence_number,
|
| + QuicPacketSequenceNumber new_sequence_number) {
|
| QuicSentPacketManagerPeer::MarkForRetransmission(
|
| &manager_, old_sequence_number, TLP_RETRANSMISSION);
|
| EXPECT_TRUE(manager_.HasPendingRetransmissions());
|
| @@ -161,25 +158,20 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| EXPECT_EQ(old_sequence_number, next_retransmission.sequence_number);
|
| EXPECT_EQ(TLP_RETRANSMISSION,
|
| next_retransmission.transmission_type);
|
| - manager_.OnRetransmittedPacket(old_sequence_number,
|
| - new_sequence_number);
|
| - EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(
|
| - &manager_, new_sequence_number));
|
| - }
|
| -
|
| - void RetransmitAndSendPacket(QuicPacketSequenceNumber old_sequence_number,
|
| - QuicPacketSequenceNumber new_sequence_number) {
|
| - RetransmitPacket(old_sequence_number, new_sequence_number);
|
|
|
| EXPECT_CALL(*send_algorithm_,
|
| OnPacketSent(_, BytesInFlight(), new_sequence_number,
|
| kDefaultLength, HAS_RETRANSMITTABLE_DATA))
|
| .WillOnce(Return(true));
|
| - manager_.OnPacketSent(new_sequence_number,
|
| + SerializedPacket packet(CreatePacket(new_sequence_number, false));
|
| + manager_.OnPacketSent(&packet,
|
| + old_sequence_number,
|
| clock_.Now(),
|
| kDefaultLength,
|
| LOSS_RETRANSMISSION,
|
| HAS_RETRANSMITTABLE_DATA);
|
| + EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(
|
| + &manager_, new_sequence_number));
|
| }
|
|
|
| SerializedPacket CreateDataPacket(QuicPacketSequenceNumber sequence_number) {
|
| @@ -210,8 +202,7 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| OnPacketSent(_, BytesInFlight(), sequence_number, _, _))
|
| .Times(1).WillOnce(Return(true));
|
| SerializedPacket packet(CreateDataPacket(sequence_number));
|
| - manager_.OnSerializedPacket(packet);
|
| - manager_.OnPacketSent(sequence_number, clock_.Now(),
|
| + manager_.OnPacketSent(&packet, 0, clock_.Now(),
|
| packet.packet->length(), NOT_RETRANSMISSION,
|
| HAS_RETRANSMITTABLE_DATA);
|
| }
|
| @@ -225,8 +216,7 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| packet.retransmittable_frames->AddStreamFrame(
|
| new QuicStreamFrame(1, false, 0, IOVector()));
|
| packet.retransmittable_frames->set_encryption_level(ENCRYPTION_NONE);
|
| - manager_.OnSerializedPacket(packet);
|
| - manager_.OnPacketSent(sequence_number, clock_.Now(),
|
| + manager_.OnPacketSent(&packet, 0, clock_.Now(),
|
| packet.packet->length(), NOT_RETRANSMISSION,
|
| HAS_RETRANSMITTABLE_DATA);
|
| }
|
| @@ -237,8 +227,7 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| kDefaultLength, NO_RETRANSMITTABLE_DATA))
|
| .Times(1).WillOnce(Return(true));
|
| SerializedPacket packet(CreateFecPacket(sequence_number));
|
| - manager_.OnSerializedPacket(packet);
|
| - manager_.OnPacketSent(sequence_number, clock_.Now(),
|
| + manager_.OnPacketSent(&packet, 0, clock_.Now(),
|
| packet.packet->length(), NOT_RETRANSMISSION,
|
| NO_RETRANSMITTABLE_DATA);
|
| }
|
| @@ -249,8 +238,7 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| kDefaultLength, NO_RETRANSMITTABLE_DATA))
|
| .Times(1).WillOnce(Return(false));
|
| SerializedPacket packet(CreatePacket(sequence_number, false));
|
| - manager_.OnSerializedPacket(packet);
|
| - manager_.OnPacketSent(sequence_number, clock_.Now(),
|
| + manager_.OnPacketSent(&packet, 0, clock_.Now(),
|
| packet.packet->length(), NOT_RETRANSMISSION,
|
| NO_RETRANSMITTABLE_DATA);
|
| }
|
| @@ -265,9 +253,9 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| .Times(1).WillOnce(Return(true));
|
| const QuicSentPacketManager::PendingRetransmission pending =
|
| manager_.NextPendingRetransmission();
|
| - manager_.OnRetransmittedPacket(pending.sequence_number,
|
| - retransmission_sequence_number);
|
| - manager_.OnPacketSent(retransmission_sequence_number, clock_.Now(),
|
| + SerializedPacket packet(
|
| + CreatePacket(retransmission_sequence_number, false));
|
| + manager_.OnPacketSent(&packet, pending.sequence_number, clock_.Now(),
|
| kDefaultLength, pending.transmission_type,
|
| HAS_RETRANSMITTABLE_DATA);
|
| }
|
| @@ -292,7 +280,7 @@ TEST_F(QuicSentPacketManagerTest, IsUnacked) {
|
|
|
| TEST_F(QuicSentPacketManagerTest, IsUnAckedRetransmit) {
|
| SendDataPacket(1);
|
| - RetransmitPacket(1, 2);
|
| + RetransmitAndSendPacket(1, 2);
|
|
|
| EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(&manager_, 2));
|
| QuicPacketSequenceNumber unacked[] = { 1, 2 };
|
| @@ -342,30 +330,6 @@ TEST_F(QuicSentPacketManagerTest, RetransmitThenAckBeforeSend) {
|
|
|
| TEST_F(QuicSentPacketManagerTest, RetransmitThenAckPrevious) {
|
| SendDataPacket(1);
|
| - RetransmitPacket(1, 2);
|
| - QuicTime::Delta rtt = QuicTime::Delta::FromMilliseconds(15);
|
| - clock_.AdvanceTime(rtt);
|
| -
|
| - // Ack 1 but not 2.
|
| - ExpectAck(1);
|
| - QuicAckFrame ack_frame;
|
| - ack_frame.largest_observed = 1;
|
| - manager_.OnIncomingAck(ack_frame, clock_.ApproximateNow());
|
| -
|
| - // 2 should be unacked, since it may provide an RTT measurement.
|
| - QuicPacketSequenceNumber unacked[] = { 2 };
|
| - VerifyUnackedPackets(unacked, arraysize(unacked));
|
| - EXPECT_FALSE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
|
| - VerifyRetransmittablePackets(NULL, 0);
|
| -
|
| - // Verify that the retransmission alarm would not fire,
|
| - // since there is no retransmittable data outstanding.
|
| - EXPECT_EQ(QuicTime::Zero(), manager_.GetRetransmissionTime());
|
| - 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);
|
| @@ -387,11 +351,7 @@ TEST_F(QuicSentPacketManagerTest, RetransmitAndSendThenAckPrevious) {
|
|
|
| TEST_F(QuicSentPacketManagerTest, RetransmitThenAckPreviousThenNackRetransmit) {
|
| SendDataPacket(1);
|
| - RetransmitPacket(1, 2);
|
| - EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 2, _, _))
|
| - .WillOnce(Return(true));
|
| - manager_.OnPacketSent(2, clock_.ApproximateNow(), kDefaultLength,
|
| - LOSS_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
|
| + RetransmitAndSendPacket(1, 2);
|
| QuicTime::Delta rtt = QuicTime::Delta::FromMilliseconds(15);
|
| clock_.AdvanceTime(rtt);
|
|
|
|
|