| 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 e44dca53061a736328076e346da38a2c24241558..7d0bfeddd5675df3445e6c22589d9fa48075f3ab 100644
|
| --- a/net/quic/quic_sent_packet_manager_test.cc
|
| +++ b/net/quic/quic_sent_packet_manager_test.cc
|
| @@ -69,22 +69,13 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
|
|
| void VerifyRetransmittablePackets(QuicPacketSequenceNumber* packets,
|
| size_t num_packets) {
|
| - SequenceNumberSet unacked =
|
| - QuicSentPacketManagerPeer::GetUnackedPackets(&manager_);
|
| - for (size_t i = 0; i < num_packets; ++i) {
|
| - EXPECT_TRUE(ContainsKey(unacked, packets[i])) << packets[i];
|
| - }
|
| - size_t num_retransmittable = 0;
|
| - for (SequenceNumberSet::const_iterator it = unacked.begin();
|
| - it != unacked.end(); ++it) {
|
| - if (manager_.HasRetransmittableFrames(*it)) {
|
| - ++num_retransmittable;
|
| - }
|
| - }
|
| EXPECT_EQ(num_packets,
|
| QuicSentPacketManagerPeer::GetNumRetransmittablePackets(
|
| &manager_));
|
| - EXPECT_EQ(num_packets, num_retransmittable);
|
| + for (size_t i = 0; i < num_packets; ++i) {
|
| + EXPECT_TRUE(manager_.HasRetransmittableFrames(packets[i]))
|
| + << " packets[" << i << "]:" << packets[i];
|
| + }
|
| }
|
|
|
| void ExpectAck(QuicPacketSequenceNumber largest_observed) {
|
| @@ -125,15 +116,18 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| Pointwise(KeyEq(), lost_vector)));
|
| }
|
|
|
| + // Retransmits a packet as though it was a TLP retransmission, because TLP
|
| + // leaves the |old_sequence_number| pending.
|
| + // TODO(ianswett): Test with transmission types besides TLP.
|
| void RetransmitPacket(QuicPacketSequenceNumber old_sequence_number,
|
| QuicPacketSequenceNumber new_sequence_number) {
|
| QuicSentPacketManagerPeer::MarkForRetransmission(
|
| - &manager_, old_sequence_number, LOSS_RETRANSMISSION);
|
| + &manager_, old_sequence_number, TLP_RETRANSMISSION);
|
| EXPECT_TRUE(manager_.HasPendingRetransmissions());
|
| QuicSentPacketManager::PendingRetransmission next_retransmission =
|
| manager_.NextPendingRetransmission();
|
| EXPECT_EQ(old_sequence_number, next_retransmission.sequence_number);
|
| - EXPECT_EQ(LOSS_RETRANSMISSION,
|
| + EXPECT_EQ(TLP_RETRANSMISSION,
|
| next_retransmission.transmission_type);
|
| manager_.OnRetransmittedPacket(old_sequence_number, new_sequence_number);
|
| EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(
|
| @@ -197,7 +191,6 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| SerializedPacket packet(CreateDataPacket(sequence_number));
|
| packet.retransmittable_frames->AddStreamFrame(
|
| new QuicStreamFrame(1, false, 0, IOVector()));
|
| - packet.retransmittable_frames->set_encryption_level(ENCRYPTION_NONE);
|
| manager_.OnSerializedPacket(packet);
|
| manager_.OnPacketSent(sequence_number, clock_.ApproximateNow(),
|
| packet.packet->length(), NOT_RETRANSMISSION,
|
| @@ -297,7 +290,7 @@ TEST_F(QuicSentPacketManagerTest, RetransmitThenAck) {
|
| TEST_F(QuicSentPacketManagerTest, RetransmitThenAckBeforeSend) {
|
| SendDataPacket(1);
|
| QuicSentPacketManagerPeer::MarkForRetransmission(
|
| - &manager_, 1, LOSS_RETRANSMISSION);
|
| + &manager_, 1, TLP_RETRANSMISSION);
|
| EXPECT_TRUE(manager_.HasPendingRetransmissions());
|
|
|
| // Ack 1.
|
| @@ -557,9 +550,9 @@ TEST_F(QuicSentPacketManagerTest, TruncatedAck) {
|
| manager_.OnIncomingAck(received_info, clock_.Now());
|
|
|
| // High water mark will be raised.
|
| - QuicPacketSequenceNumber unacked[] = { 2, 3, 4 };
|
| + QuicPacketSequenceNumber unacked[] = { 2, 3, 4, 5 };
|
| VerifyUnackedPackets(unacked, arraysize(unacked));
|
| - QuicPacketSequenceNumber retransmittable[] = { 4 };
|
| + QuicPacketSequenceNumber retransmittable[] = { 5 };
|
| VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
|
| }
|
|
|
| @@ -988,25 +981,6 @@ TEST_F(QuicSentPacketManagerTest,
|
| EXPECT_FALSE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
|
| }
|
|
|
| -TEST_F(QuicSentPacketManagerTest,
|
| - CryptoHandshakeRetransmissionThenAbandonAll) {
|
| - // Send 1 crypto packet.
|
| - SendCryptoPacket(1);
|
| - EXPECT_TRUE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
|
| -
|
| - // Retransmit the crypto packet as 2.
|
| - manager_.OnRetransmissionTimeout();
|
| - RetransmitNextPacket(2);
|
| -
|
| - // Now discard all unacked unencrypted packets, which occurs when the
|
| - // connection goes forward secure.
|
| - manager_.DiscardUnencryptedPackets();
|
| - VerifyUnackedPackets(NULL, 0);
|
| - EXPECT_FALSE(manager_.HasPendingRetransmissions());
|
| - EXPECT_FALSE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
|
| - EXPECT_FALSE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
|
| -}
|
| -
|
| TEST_F(QuicSentPacketManagerTest, TailLossProbeTimeoutUnsentDataPacket) {
|
| QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2);
|
| // Serialize two data packets and send the latter.
|
|
|