| Index: net/quic/quic_connection_test.cc
|
| diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc
|
| index 476fea9a2ca57ccf165fe394155e5ea132691c9f..dbdb86f4b6e111abaf43173fbb63fcdbe1351122 100644
|
| --- a/net/quic/quic_connection_test.cc
|
| +++ b/net/quic/quic_connection_test.cc
|
| @@ -1324,8 +1324,7 @@ TEST_F(QuicConnectionTest, AbandonFECFromCongestionWindow) {
|
| clock_.AdvanceTime(retransmission_time);
|
|
|
| // Abandon FEC packet and data packet.
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(_, _)).Times(2);
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
|
| EXPECT_CALL(visitor_, OnCanWrite());
|
| connection_.OnRetransmissionTimeout();
|
| @@ -1354,13 +1353,12 @@ TEST_F(QuicConnectionTest, DontAbandonAckedFEC) {
|
|
|
| // Don't abandon the acked FEC packet, but it will abandon 2 the subsequent
|
| // FEC packets.
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(_, _)).Times(5);
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(3);
|
| connection_.GetRetransmissionAlarm()->Fire();
|
| }
|
|
|
| -TEST_F(QuicConnectionTest, DontAbandonAllFEC) {
|
| +TEST_F(QuicConnectionTest, AbandonAllFEC) {
|
| EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
| connection_.options()->max_packets_per_fec_group = 1;
|
|
|
| @@ -1387,14 +1385,12 @@ TEST_F(QuicConnectionTest, DontAbandonAllFEC) {
|
| clock_.AdvanceTime(DefaultRetransmissionTime().Subtract(
|
| QuicTime::Delta::FromMilliseconds(1)));
|
|
|
| - // Don't abandon the acked FEC packet, but it will abandon 1 of the subsequent
|
| - // FEC packets.
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(4, _));
|
| + // Abandon all packets
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(false));
|
| connection_.GetRetransmissionAlarm()->Fire();
|
|
|
| - // Ensure the connection's alarm is still set, in order to abandon the third
|
| - // FEC packet.
|
| - EXPECT_TRUE(connection_.GetRetransmissionAlarm()->IsSet());
|
| + // Ensure the alarm is not set since all packets have been abandoned.
|
| + EXPECT_FALSE(connection_.GetRetransmissionAlarm()->IsSet());
|
| }
|
|
|
| TEST_F(QuicConnectionTest, FramePacking) {
|
| @@ -1747,8 +1743,7 @@ TEST_F(QuicConnectionTest, QueueAfterTwoRTOs) {
|
| writer_->set_blocked(true);
|
| clock_.AdvanceTime(DefaultRetransmissionTime());
|
| // Only one packet should be retransmitted.
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(_, _)).Times(10);
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| connection_.GetRetransmissionAlarm()->Fire();
|
| EXPECT_TRUE(connection_.HasQueuedData());
|
|
|
| @@ -1941,8 +1936,7 @@ TEST_F(QuicConnectionTest, RTO) {
|
| connection_.GetRetransmissionAlarm()->deadline());
|
| // Simulate the retransmission alarm firing.
|
| clock_.AdvanceTime(DefaultRetransmissionTime());
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(1u, _));
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, 2u, _, _, _));
|
| connection_.GetRetransmissionAlarm()->Fire();
|
| EXPECT_EQ(2u, last_header()->packet_sequence_number);
|
| @@ -1970,9 +1964,7 @@ TEST_F(QuicConnectionTest, RTOWithSameEncryptionLevel) {
|
| connection_.GetRetransmissionAlarm()->deadline());
|
| {
|
| InSequence s;
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(1, _));
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(2, _));
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, 3, _, RTO_RETRANSMISSION, _));
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, 4, _, RTO_RETRANSMISSION, _));
|
| }
|
| @@ -2030,9 +2022,8 @@ TEST_F(QuicConnectionTest,
|
| new TaggingEncrypter(0x02));
|
| connection_.SetDefaultEncryptionLevel(ENCRYPTION_FORWARD_SECURE);
|
|
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0);
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(sequence_number, _)).Times(1);
|
|
|
| QuicTime default_retransmission_time = clock_.ApproximateNow().Add(
|
| DefaultRetransmissionTime());
|
| @@ -2102,8 +2093,7 @@ TEST_F(QuicConnectionTest, TestRetransmitOrder) {
|
| EXPECT_NE(first_packet_size, second_packet_size);
|
| // Advance the clock by huge time to make sure packets will be retransmitted.
|
| clock_.AdvanceTime(QuicTime::Delta::FromSeconds(10));
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(_, _)).Times(2);
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| {
|
| InSequence s;
|
| EXPECT_CALL(*send_algorithm_,
|
| @@ -2115,8 +2105,7 @@ TEST_F(QuicConnectionTest, TestRetransmitOrder) {
|
|
|
| // Advance again and expect the packets to be sent again in the same order.
|
| clock_.AdvanceTime(QuicTime::Delta::FromSeconds(20));
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(_, _)).Times(2);
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| {
|
| InSequence s;
|
| EXPECT_CALL(*send_algorithm_,
|
| @@ -2140,9 +2129,7 @@ TEST_F(QuicConnectionTest, RetransmissionCountCalculation) {
|
| &connection_, original_sequence_number));
|
| // Force retransmission due to RTO.
|
| clock_.AdvanceTime(QuicTime::Delta::FromSeconds(10));
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| - EXPECT_CALL(*send_algorithm_,
|
| - OnPacketAbandoned(original_sequence_number, _)).Times(1);
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| QuicPacketSequenceNumber rto_sequence_number;
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, RTO_RETRANSMISSION, _))
|
| .WillOnce(DoAll(SaveArg<1>(&rto_sequence_number), Return(true)));
|
| @@ -2215,9 +2202,8 @@ TEST_F(QuicConnectionTest, DelayRTOWithAckReceipt) {
|
| // Ensure the second packet gets retransmitted when it finally fires.
|
| EXPECT_TRUE(retransmission_alarm->IsSet());
|
| EXPECT_LT(retransmission_alarm->deadline(), clock_.ApproximateNow());
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, RTO_RETRANSMISSION, _));
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(_, _));
|
| // Manually cancel the alarm to simulate a real test.
|
| connection_.GetRetransmissionAlarm()->Fire();
|
|
|
| @@ -2426,7 +2412,6 @@ TEST_F(QuicConnectionTest, SendSchedulerDelayThenSend) {
|
| TEST_F(QuicConnectionTest, SendSchedulerDelayThenRetransmit) {
|
| EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, NOT_RETRANSMISSION, _, _))
|
| .WillRepeatedly(testing::Return(QuicTime::Delta::Zero()));
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(1, _)).Times(1);
|
| EXPECT_CALL(*send_algorithm_,
|
| OnPacketSent(_, 1, _, NOT_RETRANSMISSION, _));
|
| connection_.SendStreamDataWithString(3, "foo", 0, !kFin, NULL);
|
| @@ -2435,7 +2420,7 @@ TEST_F(QuicConnectionTest, SendSchedulerDelayThenRetransmit) {
|
| clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(501));
|
| // Test that if we send a retransmit with a delay, it ends up queued in the
|
| // sent packet manager, but not yet serialized.
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| EXPECT_CALL(*send_algorithm_,
|
| TimeUntilSend(_, RTO_RETRANSMISSION, _, _)).WillOnce(
|
| testing::Return(QuicTime::Delta::FromMicroseconds(1)));
|
| @@ -3001,12 +2986,12 @@ TEST_F(QuicConnectionTest, CheckSendStats) {
|
| size_t second_packet_size = last_sent_packet_size();
|
|
|
| // 2 retransmissions due to rto, 1 due to explicit nack.
|
| - EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout());
|
| + EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| EXPECT_CALL(*send_algorithm_,
|
| OnPacketSent(_, _, _, RTO_RETRANSMISSION, _)).Times(2);
|
| EXPECT_CALL(*send_algorithm_,
|
| OnPacketSent(_, _, _, NACK_RETRANSMISSION, _));
|
| - EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(_, _)).Times(3);
|
| + EXPECT_CALL(*send_algorithm_, OnPacketAbandoned(_, _)).Times(1);
|
| EXPECT_CALL(visitor_, OnCanWrite()).WillRepeatedly(Return(true));
|
|
|
| // Retransmit due to RTO.
|
|
|