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/core/quic_unacked_packet_map.h" | 5 #include "net/quic/core/quic_unacked_packet_map.h" |
6 | 6 |
7 #include "base/stl_util.h" | |
8 #include "net/quic/core/quic_flags.h" | 7 #include "net/quic/core/quic_flags.h" |
9 #include "net/quic/core/quic_utils.h" | 8 #include "net/quic/core/quic_utils.h" |
10 #include "net/quic/test_tools/quic_test_utils.h" | 9 #include "net/quic/test_tools/quic_test_utils.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
12 | 11 |
13 using std::min; | 12 using std::min; |
14 using std::vector; | 13 using std::vector; |
15 | 14 |
16 namespace net { | 15 namespace net { |
17 namespace test { | 16 namespace test { |
18 namespace { | 17 namespace { |
19 | 18 |
20 // Default packet length. | 19 // Default packet length. |
21 const uint32_t kDefaultLength = 1000; | 20 const uint32_t kDefaultLength = 1000; |
22 | 21 |
23 class QuicUnackedPacketMapTest : public ::testing::Test { | 22 class QuicUnackedPacketMapTest : public ::testing::Test { |
24 protected: | 23 protected: |
25 QuicUnackedPacketMapTest() | 24 QuicUnackedPacketMapTest() |
26 : unacked_packets_(), | 25 : unacked_packets_(), |
27 now_(QuicTime::Zero() + QuicTime::Delta::FromMilliseconds(1000)) {} | 26 now_(QuicTime::Zero() + QuicTime::Delta::FromMilliseconds(1000)) {} |
28 | 27 |
29 ~QuicUnackedPacketMapTest() override { base::STLDeleteElements(&packets_); } | 28 ~QuicUnackedPacketMapTest() override {} |
30 | 29 |
31 SerializedPacket CreateRetransmittablePacket(QuicPacketNumber packet_number) { | 30 SerializedPacket CreateRetransmittablePacket(QuicPacketNumber packet_number) { |
32 return CreateRetransmittablePacketForStream(packet_number, | 31 return CreateRetransmittablePacketForStream(packet_number, |
33 kHeadersStreamId); | 32 kHeadersStreamId); |
34 } | 33 } |
35 | 34 |
36 SerializedPacket CreateRetransmittablePacketForStream( | 35 SerializedPacket CreateRetransmittablePacketForStream( |
37 QuicPacketNumber packet_number, | 36 QuicPacketNumber packet_number, |
38 QuicStreamId stream_id) { | 37 QuicStreamId stream_id) { |
39 SerializedPacket packet(kDefaultPathId, packet_number, | 38 SerializedPacket packet(kDefaultPathId, packet_number, |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 if (!it->retransmittable_frames.empty()) { | 101 if (!it->retransmittable_frames.empty()) { |
103 ++num_retransmittable_packets; | 102 ++num_retransmittable_packets; |
104 } | 103 } |
105 } | 104 } |
106 EXPECT_EQ(num_packets, num_retransmittable_packets); | 105 EXPECT_EQ(num_packets, num_retransmittable_packets); |
107 for (size_t i = 0; i < num_packets; ++i) { | 106 for (size_t i = 0; i < num_packets; ++i) { |
108 EXPECT_TRUE(unacked_packets_.HasRetransmittableFrames(packets[i])) | 107 EXPECT_TRUE(unacked_packets_.HasRetransmittableFrames(packets[i])) |
109 << " packets[" << i << "]:" << packets[i]; | 108 << " packets[" << i << "]:" << packets[i]; |
110 } | 109 } |
111 } | 110 } |
112 vector<QuicEncryptedPacket*> packets_; | |
113 QuicUnackedPacketMap unacked_packets_; | 111 QuicUnackedPacketMap unacked_packets_; |
114 QuicTime now_; | 112 QuicTime now_; |
115 }; | 113 }; |
116 | 114 |
117 TEST_F(QuicUnackedPacketMapTest, RttOnly) { | 115 TEST_F(QuicUnackedPacketMapTest, RttOnly) { |
118 // Acks are only tracked for RTT measurement purposes. | 116 // Acks are only tracked for RTT measurement purposes. |
119 SerializedPacket packet(CreateNonRetransmittablePacket(1)); | 117 SerializedPacket packet(CreateNonRetransmittablePacket(1)); |
120 unacked_packets_.AddSentPacket(&packet, 0, NOT_RETRANSMISSION, now_, false); | 118 unacked_packets_.AddSentPacket(&packet, 0, NOT_RETRANSMISSION, now_, false); |
121 | 119 |
122 QuicPacketNumber unacked[] = {1}; | 120 QuicPacketNumber unacked[] = {1}; |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 EXPECT_FALSE(unacked_packets_.IsUnacked(2)); | 384 EXPECT_FALSE(unacked_packets_.IsUnacked(2)); |
387 EXPECT_TRUE(unacked_packets_.IsUnacked(3)); | 385 EXPECT_TRUE(unacked_packets_.IsUnacked(3)); |
388 EXPECT_FALSE(unacked_packets_.IsUnacked(4)); | 386 EXPECT_FALSE(unacked_packets_.IsUnacked(4)); |
389 EXPECT_TRUE(unacked_packets_.IsUnacked(5)); | 387 EXPECT_TRUE(unacked_packets_.IsUnacked(5)); |
390 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet()); | 388 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet()); |
391 } | 389 } |
392 | 390 |
393 } // namespace | 391 } // namespace |
394 } // namespace test | 392 } // namespace test |
395 } // namespace net | 393 } // namespace net |
OLD | NEW |