| Index: net/quic/quic_connection_test.cc
|
| diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc
|
| index 6707c4ad1d024ef74b533eba827f41c3bb0384b6..ff50b01010615909a57b43f97e0e5b34e2cf678b 100644
|
| --- a/net/quic/quic_connection_test.cc
|
| +++ b/net/quic/quic_connection_test.cc
|
| @@ -22,6 +22,7 @@
|
| #include "net/quic/test_tools/quic_connection_peer.h"
|
| #include "net/quic/test_tools/quic_framer_peer.h"
|
| #include "net/quic/test_tools/quic_packet_creator_peer.h"
|
| +#include "net/quic/test_tools/quic_packet_generator_peer.h"
|
| #include "net/quic/test_tools/quic_sent_packet_manager_peer.h"
|
| #include "net/quic/test_tools/quic_test_utils.h"
|
| #include "net/quic/test_tools/simple_quic_framer.h"
|
| @@ -1460,7 +1461,8 @@ TEST_P(QuicConnectionTest, FECSending) {
|
| creator->set_max_packet_length(length);
|
|
|
| // And send FEC every two packets.
|
| - EXPECT_TRUE(QuicPacketCreatorPeer::SwitchFecProtectionOn(creator, 2));
|
| + QuicPacketGeneratorPeer::SwitchFecProtectionOn(
|
| + QuicConnectionPeer::GetPacketGenerator(&connection_), 2);
|
|
|
| // Send 4 data packets and 2 FEC packets.
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(6);
|
| @@ -1482,7 +1484,8 @@ TEST_P(QuicConnectionTest, FECQueueing) {
|
| IN_FEC_GROUP, &payload_length);
|
| creator->set_max_packet_length(length);
|
| // And send FEC every two packets.
|
| - EXPECT_TRUE(QuicPacketCreatorPeer::SwitchFecProtectionOn(creator, 2));
|
| + QuicPacketGeneratorPeer::SwitchFecProtectionOn(
|
| + QuicConnectionPeer::GetPacketGenerator(&connection_), 1);
|
|
|
| EXPECT_EQ(0u, connection_.NumQueuedPackets());
|
| BlockOnNextWrite();
|
| @@ -1495,8 +1498,8 @@ TEST_P(QuicConnectionTest, FECQueueing) {
|
| }
|
|
|
| TEST_P(QuicConnectionTest, AbandonFECFromCongestionWindow) {
|
| - EXPECT_TRUE(QuicPacketCreatorPeer::SwitchFecProtectionOn(
|
| - QuicConnectionPeer::GetPacketCreator(&connection_), 1));
|
| + QuicPacketGeneratorPeer::SwitchFecProtectionOn(
|
| + QuicConnectionPeer::GetPacketGenerator(&connection_), 1);
|
|
|
| // 1 Data and 1 FEC packet.
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(2);
|
| @@ -1515,8 +1518,8 @@ TEST_P(QuicConnectionTest, AbandonFECFromCongestionWindow) {
|
|
|
| TEST_P(QuicConnectionTest, DontAbandonAckedFEC) {
|
| EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
| - EXPECT_TRUE(QuicPacketCreatorPeer::SwitchFecProtectionOn(
|
| - QuicConnectionPeer::GetPacketCreator(&connection_), 1));
|
| + QuicPacketGeneratorPeer::SwitchFecProtectionOn(
|
| + QuicConnectionPeer::GetPacketGenerator(&connection_), 1);
|
|
|
| // 1 Data and 1 FEC packet.
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(6);
|
| @@ -1543,8 +1546,8 @@ TEST_P(QuicConnectionTest, DontAbandonAckedFEC) {
|
|
|
| TEST_P(QuicConnectionTest, AbandonAllFEC) {
|
| EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
| - EXPECT_TRUE(QuicPacketCreatorPeer::SwitchFecProtectionOn(
|
| - QuicConnectionPeer::GetPacketCreator(&connection_), 1));
|
| + QuicPacketGeneratorPeer::SwitchFecProtectionOn(
|
| + QuicConnectionPeer::GetPacketGenerator(&connection_), 1);
|
|
|
| // 1 Data and 1 FEC packet.
|
| EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(6);
|
| @@ -1660,8 +1663,8 @@ TEST_P(QuicConnectionTest, FramePackingCryptoThenNonCrypto) {
|
|
|
| TEST_P(QuicConnectionTest, FramePackingFEC) {
|
| // Enable fec.
|
| - EXPECT_TRUE(QuicPacketCreatorPeer::SwitchFecProtectionOn(
|
| - QuicConnectionPeer::GetPacketCreator(&connection_), 6));
|
| + QuicPacketGeneratorPeer::SwitchFecProtectionOn(
|
| + QuicConnectionPeer::GetPacketGenerator(&connection_), 6);
|
|
|
| CongestionBlockWrites();
|
|
|
| @@ -2221,6 +2224,27 @@ TEST_P(QuicConnectionTest, ReviveMissingPacketAfterDataPackets) {
|
| EXPECT_NE(0u, QuicConnectionPeer::ReceivedEntropyHash(&connection_, 3));
|
| }
|
|
|
| +TEST_P(QuicConnectionTest, TLP) {
|
| + QuicSentPacketManagerPeer::SetMaxTailLossProbes(
|
| + QuicConnectionPeer::GetSentPacketManager(&connection_), 1);
|
| +
|
| + SendStreamDataToPeer(3, "foo", 0, !kFin, NULL);
|
| + EXPECT_EQ(1u, outgoing_ack()->sent_info.least_unacked);
|
| + QuicTime retransmission_time =
|
| + connection_.GetRetransmissionAlarm()->deadline();
|
| + EXPECT_NE(QuicTime::Zero(), retransmission_time);
|
| +
|
| + EXPECT_EQ(1u, writer_->header().packet_sequence_number);
|
| + // Simulate the retransmission alarm firing and sending a tlp,
|
| + // so send algorithm's OnRetransmissionTimeout is not called.
|
| + clock_.AdvanceTime(retransmission_time.Subtract(clock_.Now()));
|
| + EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 2u, _, _));
|
| + connection_.GetRetransmissionAlarm()->Fire();
|
| + EXPECT_EQ(2u, writer_->header().packet_sequence_number);
|
| + // We do not raise the high water mark yet.
|
| + EXPECT_EQ(1u, outgoing_ack()->sent_info.least_unacked);
|
| +}
|
| +
|
| TEST_P(QuicConnectionTest, RTO) {
|
| QuicTime default_retransmission_time = clock_.ApproximateNow().Add(
|
| DefaultRetransmissionTime());
|
|
|