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 |