| 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 09720606ab9b5b1ea5f9270bcdeb811961fb49ac..8a386bfd0d0c7db6dd41837ae0c2a9cb3e4d6268 100644
|
| --- a/net/quic/quic_sent_packet_manager_test.cc
|
| +++ b/net/quic/quic_sent_packet_manager_test.cc
|
| @@ -607,11 +607,11 @@ TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) {
|
| RetransmitAndSendPacket(1, 2);
|
| RetransmitAndSendPacket(2, 3);
|
| RetransmitAndSendPacket(3, 4);
|
| - manager_.OnSerializedPacket(CreateDataPacket(5));
|
| - manager_.OnSerializedPacket(CreateDataPacket(6));
|
| - manager_.OnSerializedPacket(CreateDataPacket(7));
|
| - manager_.OnSerializedPacket(CreateDataPacket(8));
|
| - manager_.OnSerializedPacket(CreateDataPacket(9));
|
| + SendDataPacket(5);
|
| + SendDataPacket(6);
|
| + SendDataPacket(7);
|
| + SendDataPacket(8);
|
| + SendDataPacket(9);
|
|
|
| // Ack previous transmission
|
| {
|
| @@ -632,7 +632,7 @@ TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) {
|
| ack_frame.missing_packets.insert(5);
|
| ack_frame.missing_packets.insert(6);
|
| ack_frame.is_truncated = true;
|
| - ExpectAckAndLoss(false, 1, 3);
|
| + ExpectAckAndLoss(true, 1, 3);
|
| manager_.OnIncomingAck(ack_frame, clock_.Now());
|
| }
|
|
|
| @@ -664,28 +664,27 @@ TEST_F(QuicSentPacketManagerTest, GetLeastUnackedUnackedFec) {
|
| TEST_F(QuicSentPacketManagerTest, GetLeastUnackedAndDiscard) {
|
| VerifyUnackedPackets(NULL, 0);
|
|
|
| - SerializedPacket serialized_packet(CreateFecPacket(1));
|
| - manager_.OnSerializedPacket(serialized_packet);
|
| + SendFecPacket(1);
|
| EXPECT_EQ(1u, manager_.GetLeastUnacked());
|
|
|
| - SerializedPacket serialized_packet2(CreateFecPacket(2));
|
| - manager_.OnSerializedPacket(serialized_packet2);
|
| + SendFecPacket(2);
|
| EXPECT_EQ(1u, manager_.GetLeastUnacked());
|
|
|
| - SerializedPacket serialized_packet3(CreateFecPacket(3));
|
| - manager_.OnSerializedPacket(serialized_packet3);
|
| + SendFecPacket(3);
|
| EXPECT_EQ(1u, manager_.GetLeastUnacked());
|
|
|
| QuicPacketSequenceNumber unacked[] = { 1, 2, 3 };
|
| VerifyUnackedPackets(unacked, arraysize(unacked));
|
| VerifyRetransmittablePackets(NULL, 0);
|
|
|
| - // Ack 2, which has never been sent, so there's no rtt update.
|
| + // Ack 2, so there's an rtt update.
|
| + ExpectAck(2);
|
| QuicAckFrame ack_frame;
|
| ack_frame.largest_observed = 2;
|
| + ack_frame.missing_packets.insert(1);
|
| manager_.OnIncomingAck(ack_frame, clock_.Now());
|
|
|
| - EXPECT_EQ(3u, manager_.GetLeastUnacked());
|
| + EXPECT_EQ(1u, manager_.GetLeastUnacked());
|
| }
|
|
|
| TEST_F(QuicSentPacketManagerTest, GetSentTime) {
|
| @@ -975,7 +974,7 @@ TEST_F(QuicSentPacketManagerTest, CryptoHandshakeTimeoutVersionNegotiation) {
|
|
|
| // Now act like a version negotiation packet arrived, which would cause all
|
| // unacked packets to be retransmitted.
|
| - manager_.RetransmitUnackedPackets(ALL_PACKETS);
|
| + manager_.RetransmitUnackedPackets(ALL_UNACKED_RETRANSMISSION);
|
|
|
| // Ensure the first two pending packets are the crypto retransmits.
|
| ASSERT_TRUE(manager_.HasPendingRetransmissions());
|
| @@ -985,6 +984,13 @@ TEST_F(QuicSentPacketManagerTest, CryptoHandshakeTimeoutVersionNegotiation) {
|
| RetransmitNextPacket(9);
|
|
|
| EXPECT_TRUE(manager_.HasPendingRetransmissions());
|
| + // Send 3 more data packets and ensure the least unacked is raised.
|
| + RetransmitNextPacket(10);
|
| + RetransmitNextPacket(11);
|
| + RetransmitNextPacket(12);
|
| + EXPECT_FALSE(manager_.HasPendingRetransmissions());
|
| +
|
| + EXPECT_EQ(8u, manager_.GetLeastUnacked());
|
| }
|
|
|
| TEST_F(QuicSentPacketManagerTest, CryptoHandshakeSpuriousRetransmission) {
|
| @@ -1043,7 +1049,7 @@ TEST_F(QuicSentPacketManagerTest,
|
|
|
| // Now retransmit all the unacked packets, which occurs when there is a
|
| // version negotiation.
|
| - manager_.RetransmitUnackedPackets(ALL_PACKETS);
|
| + manager_.RetransmitUnackedPackets(ALL_UNACKED_RETRANSMISSION);
|
| QuicPacketSequenceNumber unacked[] = { 1, 2 };
|
| VerifyUnackedPackets(unacked, arraysize(unacked));
|
| EXPECT_TRUE(manager_.HasPendingRetransmissions());
|
| @@ -1443,6 +1449,23 @@ TEST_F(QuicSentPacketManagerTest, NegotiatePacingFromOptions) {
|
| EXPECT_TRUE(manager_.using_pacing());
|
| }
|
|
|
| +TEST_F(QuicSentPacketManagerTest, UseInitialRoundTripTimeToSend) {
|
| + uint32 initial_rtt_us = 325000;
|
| + EXPECT_NE(initial_rtt_us,
|
| + manager_.GetRttStats()->SmoothedRtt().ToMicroseconds());
|
| +
|
| + QuicConfig config;
|
| + config.SetInitialRoundTripTimeUsToSend(initial_rtt_us);
|
| + EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| + EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| + .WillOnce(Return(100 * kDefaultTCPMSS));
|
| + manager_.SetFromConfig(config);
|
| +
|
| + EXPECT_EQ(initial_rtt_us,
|
| + manager_.GetRttStats()->SmoothedRtt().ToMicroseconds());
|
| +}
|
| +
|
| } // namespace
|
| } // namespace test
|
| } // namespace net
|
|
|