Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: net/quic/quic_unacked_packet_map_test.cc

Issue 612323013: QUIC - (no behavior change) s/NULL/nullptr/g in .../quic/... (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/quic_unacked_packet_map.cc ('k') | net/quic/quic_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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;
11 11
12 namespace net { 12 namespace net {
13 namespace test { 13 namespace test {
14 namespace { 14 namespace {
15 15
16 // Default packet length. 16 // Default packet length.
17 const uint32 kDefaultAckLength = 50; 17 const uint32 kDefaultAckLength = 50;
18 const uint32 kDefaultLength = 1000; 18 const uint32 kDefaultLength = 1000;
19 19
20 class QuicUnackedPacketMapTest : public ::testing::Test { 20 class QuicUnackedPacketMapTest : public ::testing::Test {
21 protected: 21 protected:
22 QuicUnackedPacketMapTest() 22 QuicUnackedPacketMapTest()
23 : now_(QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1000))) { 23 : now_(QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1000))) {
24 } 24 }
25 25
26 SerializedPacket CreateRetransmittablePacket( 26 SerializedPacket CreateRetransmittablePacket(
27 QuicPacketSequenceNumber sequence_number) { 27 QuicPacketSequenceNumber sequence_number) {
28 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, NULL, 28 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER,
29 0, new RetransmittableFrames()); 29 nullptr, 0, new RetransmittableFrames());
30 } 30 }
31 31
32 SerializedPacket CreateNonRetransmittablePacket( 32 SerializedPacket CreateNonRetransmittablePacket(
33 QuicPacketSequenceNumber sequence_number) { 33 QuicPacketSequenceNumber sequence_number) {
34 return SerializedPacket( 34 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER,
35 sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, NULL, 0, NULL); 35 nullptr, 0, nullptr);
36 } 36 }
37 37
38 void VerifyInFlightPackets(QuicPacketSequenceNumber* packets, 38 void VerifyInFlightPackets(QuicPacketSequenceNumber* packets,
39 size_t num_packets) { 39 size_t num_packets) {
40 unacked_packets_.RemoveObsoletePackets(); 40 unacked_packets_.RemoveObsoletePackets();
41 if (num_packets == 0) { 41 if (num_packets == 0) {
42 EXPECT_FALSE(unacked_packets_.HasInFlightPackets()); 42 EXPECT_FALSE(unacked_packets_.HasInFlightPackets());
43 EXPECT_FALSE(unacked_packets_.HasMultipleInFlightPackets()); 43 EXPECT_FALSE(unacked_packets_.HasMultipleInFlightPackets());
44 return; 44 return;
45 } 45 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 } 77 }
78 EXPECT_EQ(num_packets, unacked_packets_.GetNumUnackedPacketsDebugOnly()); 78 EXPECT_EQ(num_packets, unacked_packets_.GetNumUnackedPacketsDebugOnly());
79 } 79 }
80 80
81 void VerifyRetransmittablePackets(QuicPacketSequenceNumber* packets, 81 void VerifyRetransmittablePackets(QuicPacketSequenceNumber* packets,
82 size_t num_packets) { 82 size_t num_packets) {
83 unacked_packets_.RemoveObsoletePackets(); 83 unacked_packets_.RemoveObsoletePackets();
84 size_t num_retransmittable_packets = 0; 84 size_t num_retransmittable_packets = 0;
85 for (QuicUnackedPacketMap::const_iterator it = unacked_packets_.begin(); 85 for (QuicUnackedPacketMap::const_iterator it = unacked_packets_.begin();
86 it != unacked_packets_.end(); ++it) { 86 it != unacked_packets_.end(); ++it) {
87 if (it->retransmittable_frames != NULL) { 87 if (it->retransmittable_frames != nullptr) {
88 ++num_retransmittable_packets; 88 ++num_retransmittable_packets;
89 } 89 }
90 } 90 }
91 EXPECT_EQ(num_packets, num_retransmittable_packets); 91 EXPECT_EQ(num_packets, num_retransmittable_packets);
92 for (size_t i = 0; i < num_packets; ++i) { 92 for (size_t i = 0; i < num_packets; ++i) {
93 EXPECT_TRUE(unacked_packets_.HasRetransmittableFrames(packets[i])) 93 EXPECT_TRUE(unacked_packets_.HasRetransmittableFrames(packets[i]))
94 << " packets[" << i << "]:" << packets[i]; 94 << " packets[" << i << "]:" << packets[i];
95 } 95 }
96 } 96 }
97 97
98 QuicUnackedPacketMap unacked_packets_; 98 QuicUnackedPacketMap unacked_packets_;
99 QuicTime now_; 99 QuicTime now_;
100 }; 100 };
101 101
102 TEST_F(QuicUnackedPacketMapTest, RttOnly) { 102 TEST_F(QuicUnackedPacketMapTest, RttOnly) {
103 // Acks are only tracked for RTT measurement purposes. 103 // Acks are only tracked for RTT measurement purposes.
104 unacked_packets_.AddPacket(CreateNonRetransmittablePacket(1)); 104 unacked_packets_.AddPacket(CreateNonRetransmittablePacket(1));
105 unacked_packets_.SetSent(1, now_, kDefaultAckLength, false); 105 unacked_packets_.SetSent(1, now_, kDefaultAckLength, false);
106 106
107 QuicPacketSequenceNumber unacked[] = { 1 }; 107 QuicPacketSequenceNumber unacked[] = { 1 };
108 VerifyUnackedPackets(unacked, arraysize(unacked)); 108 VerifyUnackedPackets(unacked, arraysize(unacked));
109 VerifyInFlightPackets(NULL, 0); 109 VerifyInFlightPackets(nullptr, 0);
110 VerifyRetransmittablePackets(NULL, 0); 110 VerifyRetransmittablePackets(nullptr, 0);
111 111
112 unacked_packets_.IncreaseLargestObserved(1); 112 unacked_packets_.IncreaseLargestObserved(1);
113 VerifyUnackedPackets(NULL, 0); 113 VerifyUnackedPackets(nullptr, 0);
114 VerifyInFlightPackets(NULL, 0); 114 VerifyInFlightPackets(nullptr, 0);
115 VerifyRetransmittablePackets(NULL, 0); 115 VerifyRetransmittablePackets(nullptr, 0);
116 } 116 }
117 117
118 TEST_F(QuicUnackedPacketMapTest, DiscardOldRttOnly) { 118 TEST_F(QuicUnackedPacketMapTest, DiscardOldRttOnly) {
119 // Acks are only tracked for RTT measurement purposes, and are discarded 119 // Acks are only tracked for RTT measurement purposes, and are discarded
120 // when more than 200 accumulate. 120 // when more than 200 accumulate.
121 const size_t kNumUnackedPackets = 200; 121 const size_t kNumUnackedPackets = 200;
122 for (size_t i = 1; i < 400; ++i) { 122 for (size_t i = 1; i < 400; ++i) {
123 unacked_packets_.AddPacket(CreateNonRetransmittablePacket(i)); 123 unacked_packets_.AddPacket(CreateNonRetransmittablePacket(i));
124 unacked_packets_.SetSent(i, now_, kDefaultAckLength, false); 124 unacked_packets_.SetSent(i, now_, kDefaultAckLength, false);
125 unacked_packets_.RemoveObsoletePackets(); 125 unacked_packets_.RemoveObsoletePackets();
126 EXPECT_EQ(min(i, kNumUnackedPackets), 126 EXPECT_EQ(min(i, kNumUnackedPackets),
127 unacked_packets_.GetNumUnackedPacketsDebugOnly()); 127 unacked_packets_.GetNumUnackedPacketsDebugOnly());
128 } 128 }
129 } 129 }
130 130
131 TEST_F(QuicUnackedPacketMapTest, RetransmittableInflightAndRtt) { 131 TEST_F(QuicUnackedPacketMapTest, RetransmittableInflightAndRtt) {
132 // Simulate a retransmittable packet being sent and acked. 132 // Simulate a retransmittable packet being sent and acked.
133 unacked_packets_.AddPacket(CreateRetransmittablePacket(1)); 133 unacked_packets_.AddPacket(CreateRetransmittablePacket(1));
134 unacked_packets_.SetSent(1, now_, kDefaultLength, true); 134 unacked_packets_.SetSent(1, now_, kDefaultLength, true);
135 135
136 QuicPacketSequenceNumber unacked[] = { 1 }; 136 QuicPacketSequenceNumber unacked[] = { 1 };
137 VerifyUnackedPackets(unacked, arraysize(unacked)); 137 VerifyUnackedPackets(unacked, arraysize(unacked));
138 VerifyInFlightPackets(unacked, arraysize(unacked)); 138 VerifyInFlightPackets(unacked, arraysize(unacked));
139 VerifyRetransmittablePackets(unacked, arraysize(unacked)); 139 VerifyRetransmittablePackets(unacked, arraysize(unacked));
140 140
141 unacked_packets_.RemoveRetransmittability(1); 141 unacked_packets_.RemoveRetransmittability(1);
142 VerifyUnackedPackets(unacked, arraysize(unacked)); 142 VerifyUnackedPackets(unacked, arraysize(unacked));
143 VerifyInFlightPackets(unacked, arraysize(unacked)); 143 VerifyInFlightPackets(unacked, arraysize(unacked));
144 VerifyRetransmittablePackets(NULL, 0); 144 VerifyRetransmittablePackets(nullptr, 0);
145 145
146 unacked_packets_.IncreaseLargestObserved(1); 146 unacked_packets_.IncreaseLargestObserved(1);
147 VerifyUnackedPackets(unacked, arraysize(unacked)); 147 VerifyUnackedPackets(unacked, arraysize(unacked));
148 VerifyInFlightPackets(unacked, arraysize(unacked)); 148 VerifyInFlightPackets(unacked, arraysize(unacked));
149 VerifyRetransmittablePackets(NULL, 0); 149 VerifyRetransmittablePackets(nullptr, 0);
150 150
151 unacked_packets_.RemoveFromInFlight(1); 151 unacked_packets_.RemoveFromInFlight(1);
152 VerifyUnackedPackets(NULL, 0); 152 VerifyUnackedPackets(nullptr, 0);
153 VerifyInFlightPackets(NULL, 0); 153 VerifyInFlightPackets(nullptr, 0);
154 VerifyRetransmittablePackets(NULL, 0); 154 VerifyRetransmittablePackets(nullptr, 0);
155 } 155 }
156 156
157 TEST_F(QuicUnackedPacketMapTest, RetransmittedPacket) { 157 TEST_F(QuicUnackedPacketMapTest, RetransmittedPacket) {
158 // Simulate a retransmittable packet being sent, retransmitted, and the first 158 // Simulate a retransmittable packet being sent, retransmitted, and the first
159 // transmission being acked. 159 // transmission being acked.
160 unacked_packets_.AddPacket(CreateRetransmittablePacket(1)); 160 unacked_packets_.AddPacket(CreateRetransmittablePacket(1));
161 unacked_packets_.SetSent(1, now_, kDefaultLength, true); 161 unacked_packets_.SetSent(1, now_, kDefaultLength, true);
162 unacked_packets_.OnRetransmittedPacket(1, 2, LOSS_RETRANSMISSION); 162 unacked_packets_.OnRetransmittedPacket(1, 2, LOSS_RETRANSMISSION);
163 unacked_packets_.SetSent(2, now_, kDefaultLength, true); 163 unacked_packets_.SetSent(2, now_, kDefaultLength, true);
164 164
165 QuicPacketSequenceNumber unacked[] = { 1, 2 }; 165 QuicPacketSequenceNumber unacked[] = { 1, 2 };
166 VerifyUnackedPackets(unacked, arraysize(unacked)); 166 VerifyUnackedPackets(unacked, arraysize(unacked));
167 VerifyInFlightPackets(unacked, arraysize(unacked)); 167 VerifyInFlightPackets(unacked, arraysize(unacked));
168 QuicPacketSequenceNumber retransmittable[] = { 2 }; 168 QuicPacketSequenceNumber retransmittable[] = { 2 };
169 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable)); 169 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
170 170
171 unacked_packets_.RemoveRetransmittability(1); 171 unacked_packets_.RemoveRetransmittability(1);
172 VerifyUnackedPackets(unacked, arraysize(unacked)); 172 VerifyUnackedPackets(unacked, arraysize(unacked));
173 VerifyInFlightPackets(unacked, arraysize(unacked)); 173 VerifyInFlightPackets(unacked, arraysize(unacked));
174 VerifyRetransmittablePackets(NULL, 0); 174 VerifyRetransmittablePackets(nullptr, 0);
175 175
176 unacked_packets_.IncreaseLargestObserved(2); 176 unacked_packets_.IncreaseLargestObserved(2);
177 VerifyUnackedPackets(unacked, arraysize(unacked)); 177 VerifyUnackedPackets(unacked, arraysize(unacked));
178 VerifyInFlightPackets(unacked, arraysize(unacked)); 178 VerifyInFlightPackets(unacked, arraysize(unacked));
179 VerifyRetransmittablePackets(NULL, 0); 179 VerifyRetransmittablePackets(nullptr, 0);
180 180
181 unacked_packets_.RemoveFromInFlight(2); 181 unacked_packets_.RemoveFromInFlight(2);
182 QuicPacketSequenceNumber unacked2[] = { 1 }; 182 QuicPacketSequenceNumber unacked2[] = { 1 };
183 VerifyUnackedPackets(unacked, arraysize(unacked2)); 183 VerifyUnackedPackets(unacked, arraysize(unacked2));
184 VerifyInFlightPackets(unacked, arraysize(unacked2)); 184 VerifyInFlightPackets(unacked, arraysize(unacked2));
185 VerifyRetransmittablePackets(NULL, 0); 185 VerifyRetransmittablePackets(nullptr, 0);
186 186
187 unacked_packets_.RemoveFromInFlight(1); 187 unacked_packets_.RemoveFromInFlight(1);
188 VerifyUnackedPackets(NULL, 0); 188 VerifyUnackedPackets(nullptr, 0);
189 VerifyInFlightPackets(NULL, 0); 189 VerifyInFlightPackets(nullptr, 0);
190 VerifyRetransmittablePackets(NULL, 0); 190 VerifyRetransmittablePackets(nullptr, 0);
191 } 191 }
192 192
193 TEST_F(QuicUnackedPacketMapTest, RetransmitThreeTimes) { 193 TEST_F(QuicUnackedPacketMapTest, RetransmitThreeTimes) {
194 // Simulate a retransmittable packet being sent and retransmitted twice. 194 // Simulate a retransmittable packet being sent and retransmitted twice.
195 unacked_packets_.AddPacket(CreateRetransmittablePacket(1)); 195 unacked_packets_.AddPacket(CreateRetransmittablePacket(1));
196 unacked_packets_.SetSent(1, now_, kDefaultLength, true); 196 unacked_packets_.SetSent(1, now_, kDefaultLength, true);
197 unacked_packets_.AddPacket(CreateRetransmittablePacket(2)); 197 unacked_packets_.AddPacket(CreateRetransmittablePacket(2));
198 unacked_packets_.SetSent(2, now_, kDefaultLength, true); 198 unacked_packets_.SetSent(2, now_, kDefaultLength, true);
199 199
200 QuicPacketSequenceNumber unacked[] = { 1, 2 }; 200 QuicPacketSequenceNumber unacked[] = { 1, 2 };
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 EXPECT_TRUE(unacked_packets_.IsUnacked(3)); 362 EXPECT_TRUE(unacked_packets_.IsUnacked(3));
363 EXPECT_FALSE(unacked_packets_.IsUnacked(4)); 363 EXPECT_FALSE(unacked_packets_.IsUnacked(4));
364 EXPECT_TRUE(unacked_packets_.IsUnacked(5)); 364 EXPECT_TRUE(unacked_packets_.IsUnacked(5));
365 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet()); 365 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet());
366 } 366 }
367 367
368 368
369 } // namespace 369 } // namespace
370 } // namespace test 370 } // namespace test
371 } // namespace net 371 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_unacked_packet_map.cc ('k') | net/quic/quic_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698