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 3e040778d6ef0ff7168f82be04a0c935e193f5b2..aef7c10a7c03a4634d32b400f6c2bc4b8c8c3ecd 100644 |
--- a/net/quic/quic_sent_packet_manager_test.cc |
+++ b/net/quic/quic_sent_packet_manager_test.cc |
@@ -1034,6 +1034,44 @@ TEST_F(QuicSentPacketManagerTest, TailLossProbeTimeoutUnsentDataPacket) { |
EXPECT_TRUE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_)); |
} |
+TEST_F(QuicSentPacketManagerTest, ResetRecentMinRTTWithEmptyWindow) { |
+ QuicTime::Delta min_rtt = QuicTime::Delta::FromMilliseconds(50); |
+ QuicSentPacketManagerPeer::GetRttStats(&manager_)->UpdateRtt( |
+ min_rtt, QuicTime::Delta::Zero(), QuicTime::Zero()); |
+ EXPECT_EQ(min_rtt, |
+ QuicSentPacketManagerPeer::GetRttStats(&manager_)->min_rtt()); |
+ EXPECT_EQ(min_rtt, |
+ QuicSentPacketManagerPeer::GetRttStats( |
+ &manager_)->recent_min_rtt()); |
+ |
+ // Send two packets with no prior bytes in flight. |
+ SendDataPacket(1); |
+ SendDataPacket(2); |
+ |
+ clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(100)); |
+ // Ack two packets with 100ms RTT observations. |
+ ReceivedPacketInfo received_info; |
+ received_info.delta_time_largest_observed = QuicTime::Delta::Zero(); |
+ received_info.largest_observed = 1; |
+ ExpectAck(1); |
+ manager_.OnIncomingAck(received_info, clock_.Now()); |
+ |
+ // First ack does not change recent min rtt. |
+ EXPECT_EQ(min_rtt, |
+ QuicSentPacketManagerPeer::GetRttStats( |
+ &manager_)->recent_min_rtt()); |
+ |
+ received_info.largest_observed = 2; |
+ ExpectAck(2); |
+ manager_.OnIncomingAck(received_info, clock_.Now()); |
+ |
+ EXPECT_EQ(min_rtt, |
+ QuicSentPacketManagerPeer::GetRttStats(&manager_)->min_rtt()); |
+ EXPECT_EQ(QuicTime::Delta::FromMilliseconds(100), |
+ QuicSentPacketManagerPeer::GetRttStats( |
+ &manager_)->recent_min_rtt()); |
+} |
+ |
TEST_F(QuicSentPacketManagerTest, RetransmissionTimeout) { |
// Send 100 packets and then ensure all are abandoned when the RTO fires. |
const size_t kNumSentPackets = 100; |