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 |