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

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

Issue 1014433002: Land Recent QUIC Changes until 03/09/2015. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@replaces_Perspective_enun_88006458
Patch Set: Rebase - added NET_EXPORT_PRIVATE to fix compiler error Created 5 years, 9 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/test_tools/quic_test_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;
(...skipping 18 matching lines...) Expand all
29 } 29 }
30 30
31 SerializedPacket CreateRetransmittablePacket( 31 SerializedPacket CreateRetransmittablePacket(
32 QuicPacketSequenceNumber sequence_number) { 32 QuicPacketSequenceNumber sequence_number) {
33 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength)); 33 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength));
34 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, 34 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER,
35 packets_.back(), 0, 35 packets_.back(), 0,
36 new RetransmittableFrames(ENCRYPTION_NONE)); 36 new RetransmittableFrames(ENCRYPTION_NONE));
37 } 37 }
38 38
39 SerializedPacket CreateRetransmittablePacketForStream(
40 QuicPacketSequenceNumber sequence_number,
41 QuicStreamId stream_id) {
42 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength));
43 RetransmittableFrames* frames = new RetransmittableFrames(ENCRYPTION_NONE);
44 QuicStreamFrame* frame = new QuicStreamFrame();
45 frame->stream_id = stream_id;
46 frames->AddStreamFrame(frame);
47 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER,
48 packets_.back(), 0, frames);
49 }
50
39 SerializedPacket CreateNonRetransmittablePacket( 51 SerializedPacket CreateNonRetransmittablePacket(
40 QuicPacketSequenceNumber sequence_number) { 52 QuicPacketSequenceNumber sequence_number) {
41 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength)); 53 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength));
42 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, 54 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER,
43 packets_.back(), 0, nullptr); 55 packets_.back(), 0, nullptr);
44 } 56 }
45 57
46 void VerifyInFlightPackets(QuicPacketSequenceNumber* packets, 58 void VerifyInFlightPackets(QuicPacketSequenceNumber* packets,
47 size_t num_packets) { 59 size_t num_packets) {
48 unacked_packets_.RemoveObsoletePackets(); 60 unacked_packets_.RemoveObsoletePackets();
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 VerifyUnackedPackets(unacked, arraysize(unacked)); 170 VerifyUnackedPackets(unacked, arraysize(unacked));
159 VerifyInFlightPackets(unacked, arraysize(unacked)); 171 VerifyInFlightPackets(unacked, arraysize(unacked));
160 VerifyRetransmittablePackets(nullptr, 0); 172 VerifyRetransmittablePackets(nullptr, 0);
161 173
162 unacked_packets_.RemoveFromInFlight(1); 174 unacked_packets_.RemoveFromInFlight(1);
163 VerifyUnackedPackets(nullptr, 0); 175 VerifyUnackedPackets(nullptr, 0);
164 VerifyInFlightPackets(nullptr, 0); 176 VerifyInFlightPackets(nullptr, 0);
165 VerifyRetransmittablePackets(nullptr, 0); 177 VerifyRetransmittablePackets(nullptr, 0);
166 } 178 }
167 179
180 TEST_F(QuicUnackedPacketMapTest, StopRetransmission) {
181 const QuicStreamId stream_id = 2;
182 unacked_packets_.AddSentPacket(
183 CreateRetransmittablePacketForStream(1, stream_id), 0, NOT_RETRANSMISSION,
184 now_, kDefaultLength, true);
185
186 QuicPacketSequenceNumber unacked[] = {1};
187 VerifyUnackedPackets(unacked, arraysize(unacked));
188 VerifyInFlightPackets(unacked, arraysize(unacked));
189 QuicPacketSequenceNumber retransmittable[] = {1};
190 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
191
192 unacked_packets_.StopRetransmissionForStream(stream_id);
193 VerifyUnackedPackets(unacked, arraysize(unacked));
194 VerifyInFlightPackets(unacked, arraysize(unacked));
195 VerifyRetransmittablePackets(nullptr, 0);
196 }
197
198 TEST_F(QuicUnackedPacketMapTest, StopRetransmissionOnOtherStream) {
199 const QuicStreamId stream_id = 2;
200 unacked_packets_.AddSentPacket(
201 CreateRetransmittablePacketForStream(1, stream_id), 0, NOT_RETRANSMISSION,
202 now_, kDefaultLength, true);
203
204 QuicPacketSequenceNumber unacked[] = {1};
205 VerifyUnackedPackets(unacked, arraysize(unacked));
206 VerifyInFlightPackets(unacked, arraysize(unacked));
207 QuicPacketSequenceNumber retransmittable[] = {1};
208 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
209
210 // Stop retransmissions on another stream and verify the packet is unchanged.
211 unacked_packets_.StopRetransmissionForStream(stream_id + 2);
212 VerifyUnackedPackets(unacked, arraysize(unacked));
213 VerifyInFlightPackets(unacked, arraysize(unacked));
214 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
215 }
216
217 TEST_F(QuicUnackedPacketMapTest, StopRetransmissionAfterRetransmission) {
218 const QuicStreamId stream_id = 2;
219 unacked_packets_.AddSentPacket(
220 CreateRetransmittablePacketForStream(1, stream_id), 0, NOT_RETRANSMISSION,
221 now_, kDefaultLength, true);
222 unacked_packets_.AddSentPacket(CreateNonRetransmittablePacket(2), 1,
223 LOSS_RETRANSMISSION, now_, kDefaultLength,
224 true);
225
226 QuicPacketSequenceNumber unacked[] = {1, 2};
227 VerifyUnackedPackets(unacked, arraysize(unacked));
228 VerifyInFlightPackets(unacked, arraysize(unacked));
229 QuicPacketSequenceNumber retransmittable[] = {2};
230 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
231
232 unacked_packets_.StopRetransmissionForStream(stream_id);
233 VerifyUnackedPackets(unacked, arraysize(unacked));
234 VerifyInFlightPackets(unacked, arraysize(unacked));
235 VerifyRetransmittablePackets(nullptr, 0);
236 }
237
168 TEST_F(QuicUnackedPacketMapTest, RetransmittedPacket) { 238 TEST_F(QuicUnackedPacketMapTest, RetransmittedPacket) {
169 // Simulate a retransmittable packet being sent, retransmitted, and the first 239 // Simulate a retransmittable packet being sent, retransmitted, and the first
170 // transmission being acked. 240 // transmission being acked.
171 unacked_packets_.AddSentPacket(CreateRetransmittablePacket(1), 0, 241 unacked_packets_.AddSentPacket(CreateRetransmittablePacket(1), 0,
172 NOT_RETRANSMISSION, now_, kDefaultLength, 242 NOT_RETRANSMISSION, now_, kDefaultLength,
173 true); 243 true);
174 unacked_packets_.AddSentPacket(CreateNonRetransmittablePacket(2), 1, 244 unacked_packets_.AddSentPacket(CreateNonRetransmittablePacket(2), 1,
175 LOSS_RETRANSMISSION, now_, kDefaultLength, 245 LOSS_RETRANSMISSION, now_, kDefaultLength,
176 true); 246 true);
177 247
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 EXPECT_TRUE(unacked_packets_.IsUnacked(3)); 437 EXPECT_TRUE(unacked_packets_.IsUnacked(3));
368 EXPECT_FALSE(unacked_packets_.IsUnacked(4)); 438 EXPECT_FALSE(unacked_packets_.IsUnacked(4));
369 EXPECT_TRUE(unacked_packets_.IsUnacked(5)); 439 EXPECT_TRUE(unacked_packets_.IsUnacked(5));
370 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet()); 440 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet());
371 } 441 }
372 442
373 443
374 } // namespace 444 } // namespace
375 } // namespace test 445 } // namespace test
376 } // namespace net 446 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_unacked_packet_map.cc ('k') | net/quic/test_tools/quic_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698