| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/quic_unacked_packet_map.h" | 5 #include "net/quic/quic_unacked_packet_map.h" |
| 6 | 6 |
| 7 #include "net/quic/test_tools/quic_test_utils.h" | 7 #include "net/quic/test_tools/quic_test_utils.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 using std::min; | 10 using std::min; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 QuicUnackedPacketMapTest() | 23 QuicUnackedPacketMapTest() |
| 24 : now_(QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1000))) { | 24 : now_(QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1000))) { |
| 25 } | 25 } |
| 26 | 26 |
| 27 ~QuicUnackedPacketMapTest() override { | 27 ~QuicUnackedPacketMapTest() override { |
| 28 STLDeleteElements(&packets_); | 28 STLDeleteElements(&packets_); |
| 29 } | 29 } |
| 30 | 30 |
| 31 SerializedPacket CreateRetransmittablePacket( | 31 SerializedPacket CreateRetransmittablePacket( |
| 32 QuicPacketSequenceNumber sequence_number) { | 32 QuicPacketSequenceNumber sequence_number) { |
| 33 packets_.push_back(QuicPacket::NewDataPacket( | 33 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength)); |
| 34 nullptr, kDefaultLength, false, PACKET_8BYTE_CONNECTION_ID, false, | |
| 35 PACKET_1BYTE_SEQUENCE_NUMBER)); | |
| 36 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, | 34 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, |
| 37 packets_.back(), 0, new RetransmittableFrames()); | 35 packets_.back(), 0, new RetransmittableFrames()); |
| 38 } | 36 } |
| 39 | 37 |
| 40 SerializedPacket CreateNonRetransmittablePacket( | 38 SerializedPacket CreateNonRetransmittablePacket( |
| 41 QuicPacketSequenceNumber sequence_number) { | 39 QuicPacketSequenceNumber sequence_number) { |
| 42 packets_.push_back(QuicPacket::NewDataPacket( | 40 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength)); |
| 43 nullptr, kDefaultLength, false, PACKET_8BYTE_CONNECTION_ID, false, | |
| 44 PACKET_1BYTE_SEQUENCE_NUMBER)); | |
| 45 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, | 41 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, |
| 46 packets_.back(), 0, nullptr); | 42 packets_.back(), 0, nullptr); |
| 47 } | 43 } |
| 48 | 44 |
| 49 void VerifyInFlightPackets(QuicPacketSequenceNumber* packets, | 45 void VerifyInFlightPackets(QuicPacketSequenceNumber* packets, |
| 50 size_t num_packets) { | 46 size_t num_packets) { |
| 51 unacked_packets_.RemoveObsoletePackets(); | 47 unacked_packets_.RemoveObsoletePackets(); |
| 52 if (num_packets == 0) { | 48 if (num_packets == 0) { |
| 53 EXPECT_FALSE(unacked_packets_.HasInFlightPackets()); | 49 EXPECT_FALSE(unacked_packets_.HasInFlightPackets()); |
| 54 EXPECT_FALSE(unacked_packets_.HasMultipleInFlightPackets()); | 50 EXPECT_FALSE(unacked_packets_.HasMultipleInFlightPackets()); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 if (it->retransmittable_frames != nullptr) { | 94 if (it->retransmittable_frames != nullptr) { |
| 99 ++num_retransmittable_packets; | 95 ++num_retransmittable_packets; |
| 100 } | 96 } |
| 101 } | 97 } |
| 102 EXPECT_EQ(num_packets, num_retransmittable_packets); | 98 EXPECT_EQ(num_packets, num_retransmittable_packets); |
| 103 for (size_t i = 0; i < num_packets; ++i) { | 99 for (size_t i = 0; i < num_packets; ++i) { |
| 104 EXPECT_TRUE(unacked_packets_.HasRetransmittableFrames(packets[i])) | 100 EXPECT_TRUE(unacked_packets_.HasRetransmittableFrames(packets[i])) |
| 105 << " packets[" << i << "]:" << packets[i]; | 101 << " packets[" << i << "]:" << packets[i]; |
| 106 } | 102 } |
| 107 } | 103 } |
| 108 vector<QuicPacket*> packets_; | 104 vector<QuicEncryptedPacket*> packets_; |
| 109 QuicUnackedPacketMap unacked_packets_; | 105 QuicUnackedPacketMap unacked_packets_; |
| 110 QuicTime now_; | 106 QuicTime now_; |
| 111 }; | 107 }; |
| 112 | 108 |
| 113 TEST_F(QuicUnackedPacketMapTest, RttOnly) { | 109 TEST_F(QuicUnackedPacketMapTest, RttOnly) { |
| 114 // Acks are only tracked for RTT measurement purposes. | 110 // Acks are only tracked for RTT measurement purposes. |
| 115 unacked_packets_.AddSentPacket(CreateNonRetransmittablePacket(1), 0, | 111 unacked_packets_.AddSentPacket(CreateNonRetransmittablePacket(1), 0, |
| 116 NOT_RETRANSMISSION, now_, kDefaultAckLength, | 112 NOT_RETRANSMISSION, now_, kDefaultAckLength, |
| 117 false); | 113 false); |
| 118 | 114 |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 EXPECT_TRUE(unacked_packets_.IsUnacked(3)); | 392 EXPECT_TRUE(unacked_packets_.IsUnacked(3)); |
| 397 EXPECT_FALSE(unacked_packets_.IsUnacked(4)); | 393 EXPECT_FALSE(unacked_packets_.IsUnacked(4)); |
| 398 EXPECT_TRUE(unacked_packets_.IsUnacked(5)); | 394 EXPECT_TRUE(unacked_packets_.IsUnacked(5)); |
| 399 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet()); | 395 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet()); |
| 400 } | 396 } |
| 401 | 397 |
| 402 | 398 |
| 403 } // namespace | 399 } // namespace |
| 404 } // namespace test | 400 } // namespace test |
| 405 } // namespace net | 401 } // namespace net |
| OLD | NEW |