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

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

Issue 1962643003: Add original_path_id to SerializedPacket and OnPacketSent. No functional change expected. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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_sent_packet_manager.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_sent_packet_manager.h" 5 #include "net/quic/quic_sent_packet_manager.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "net/quic/quic_flags.h" 10 #include "net/quic/quic_flags.h"
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 PendingRetransmission next_retransmission = 206 PendingRetransmission next_retransmission =
207 manager_.NextPendingRetransmission(); 207 manager_.NextPendingRetransmission();
208 EXPECT_EQ(old_packet_number, next_retransmission.packet_number); 208 EXPECT_EQ(old_packet_number, next_retransmission.packet_number);
209 EXPECT_EQ(transmission_type, next_retransmission.transmission_type); 209 EXPECT_EQ(transmission_type, next_retransmission.transmission_type);
210 210
211 EXPECT_CALL(*send_algorithm_, 211 EXPECT_CALL(*send_algorithm_,
212 OnPacketSent(_, BytesInFlight(), new_packet_number, 212 OnPacketSent(_, BytesInFlight(), new_packet_number,
213 kDefaultLength, HAS_RETRANSMITTABLE_DATA)) 213 kDefaultLength, HAS_RETRANSMITTABLE_DATA))
214 .WillOnce(Return(true)); 214 .WillOnce(Return(true));
215 SerializedPacket packet(CreatePacket(new_packet_number, false)); 215 SerializedPacket packet(CreatePacket(new_packet_number, false));
216 manager_.OnPacketSent(&packet, old_packet_number, clock_.Now(), 216 manager_.OnPacketSent(&packet, packet.path_id, old_packet_number,
217 transmission_type, HAS_RETRANSMITTABLE_DATA); 217 clock_.Now(), transmission_type,
218 HAS_RETRANSMITTABLE_DATA);
218 EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(&manager_, 219 EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(&manager_,
219 new_packet_number)); 220 new_packet_number));
220 } 221 }
221 222
222 SerializedPacket CreateDataPacket(QuicPacketNumber packet_number) { 223 SerializedPacket CreateDataPacket(QuicPacketNumber packet_number) {
223 return CreatePacket(packet_number, true); 224 return CreatePacket(packet_number, true);
224 } 225 }
225 226
226 SerializedPacket CreatePacket(QuicPacketNumber packet_number, 227 SerializedPacket CreatePacket(QuicPacketNumber packet_number,
227 bool retransmittable) { 228 bool retransmittable) {
228 SerializedPacket packet(kDefaultPathId, packet_number, 229 SerializedPacket packet(kDefaultPathId, packet_number,
229 PACKET_6BYTE_PACKET_NUMBER, nullptr, kDefaultLength, 230 PACKET_6BYTE_PACKET_NUMBER, nullptr, kDefaultLength,
230 0u, false, false); 231 0u, false, false);
231 if (retransmittable) { 232 if (retransmittable) {
232 packet.retransmittable_frames.push_back( 233 packet.retransmittable_frames.push_back(
233 QuicFrame(new QuicStreamFrame(kStreamId, false, 0, StringPiece()))); 234 QuicFrame(new QuicStreamFrame(kStreamId, false, 0, StringPiece())));
234 } 235 }
235 return packet; 236 return packet;
236 } 237 }
237 238
238 void SendDataPacket(QuicPacketNumber packet_number) { 239 void SendDataPacket(QuicPacketNumber packet_number) {
239 EXPECT_CALL(*send_algorithm_, 240 EXPECT_CALL(*send_algorithm_,
240 OnPacketSent(_, BytesInFlight(), packet_number, _, _)) 241 OnPacketSent(_, BytesInFlight(), packet_number, _, _))
241 .Times(1) 242 .Times(1)
242 .WillOnce(Return(true)); 243 .WillOnce(Return(true));
243 SerializedPacket packet(CreateDataPacket(packet_number)); 244 SerializedPacket packet(CreateDataPacket(packet_number));
244 manager_.OnPacketSent(&packet, 0, clock_.Now(), NOT_RETRANSMISSION, 245 manager_.OnPacketSent(&packet, kInvalidPathId, 0, clock_.Now(),
245 HAS_RETRANSMITTABLE_DATA); 246 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
246 } 247 }
247 248
248 void SendCryptoPacket(QuicPacketNumber packet_number) { 249 void SendCryptoPacket(QuicPacketNumber packet_number) {
249 EXPECT_CALL(*send_algorithm_, 250 EXPECT_CALL(*send_algorithm_,
250 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength, 251 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength,
251 HAS_RETRANSMITTABLE_DATA)) 252 HAS_RETRANSMITTABLE_DATA))
252 .Times(1) 253 .Times(1)
253 .WillOnce(Return(true)); 254 .WillOnce(Return(true));
254 SerializedPacket packet(CreateDataPacket(packet_number)); 255 SerializedPacket packet(CreateDataPacket(packet_number));
255 packet.retransmittable_frames.push_back( 256 packet.retransmittable_frames.push_back(
256 QuicFrame(new QuicStreamFrame(1, false, 0, StringPiece()))); 257 QuicFrame(new QuicStreamFrame(1, false, 0, StringPiece())));
257 packet.has_crypto_handshake = IS_HANDSHAKE; 258 packet.has_crypto_handshake = IS_HANDSHAKE;
258 manager_.OnPacketSent(&packet, 0, clock_.Now(), NOT_RETRANSMISSION, 259 manager_.OnPacketSent(&packet, kInvalidPathId, 0, clock_.Now(),
259 HAS_RETRANSMITTABLE_DATA); 260 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
260 } 261 }
261 262
262 void SendAckPacket(QuicPacketNumber packet_number) { 263 void SendAckPacket(QuicPacketNumber packet_number) {
263 EXPECT_CALL(*send_algorithm_, 264 EXPECT_CALL(*send_algorithm_,
264 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength, 265 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength,
265 NO_RETRANSMITTABLE_DATA)) 266 NO_RETRANSMITTABLE_DATA))
266 .Times(1) 267 .Times(1)
267 .WillOnce(Return(false)); 268 .WillOnce(Return(false));
268 SerializedPacket packet(CreatePacket(packet_number, false)); 269 SerializedPacket packet(CreatePacket(packet_number, false));
269 manager_.OnPacketSent(&packet, 0, clock_.Now(), NOT_RETRANSMISSION, 270 manager_.OnPacketSent(&packet, kInvalidPathId, 0, clock_.Now(),
270 NO_RETRANSMITTABLE_DATA); 271 NOT_RETRANSMISSION, NO_RETRANSMITTABLE_DATA);
271 } 272 }
272 273
273 // Based on QuicConnection's WritePendingRetransmissions. 274 // Based on QuicConnection's WritePendingRetransmissions.
274 void RetransmitNextPacket(QuicPacketNumber retransmission_packet_number) { 275 void RetransmitNextPacket(QuicPacketNumber retransmission_packet_number) {
275 EXPECT_TRUE(manager_.HasPendingRetransmissions()); 276 EXPECT_TRUE(manager_.HasPendingRetransmissions());
276 EXPECT_CALL(*send_algorithm_, 277 EXPECT_CALL(*send_algorithm_,
277 OnPacketSent(_, _, retransmission_packet_number, kDefaultLength, 278 OnPacketSent(_, _, retransmission_packet_number, kDefaultLength,
278 HAS_RETRANSMITTABLE_DATA)) 279 HAS_RETRANSMITTABLE_DATA))
279 .Times(1) 280 .Times(1)
280 .WillOnce(Return(true)); 281 .WillOnce(Return(true));
281 const PendingRetransmission pending = manager_.NextPendingRetransmission(); 282 const PendingRetransmission pending = manager_.NextPendingRetransmission();
282 SerializedPacket packet(CreatePacket(retransmission_packet_number, false)); 283 SerializedPacket packet(CreatePacket(retransmission_packet_number, false));
283 manager_.OnPacketSent(&packet, pending.packet_number, clock_.Now(), 284 manager_.OnPacketSent(&packet, pending.path_id, pending.packet_number,
284 pending.transmission_type, HAS_RETRANSMITTABLE_DATA); 285 clock_.Now(), pending.transmission_type,
286 HAS_RETRANSMITTABLE_DATA);
285 } 287 }
286 288
287 // Initialize a frame acknowledging all packets up to largest_observed. 289 // Initialize a frame acknowledging all packets up to largest_observed.
288 const QuicAckFrame InitAckFrame(QuicPacketNumber largest_observed) { 290 const QuicAckFrame InitAckFrame(QuicPacketNumber largest_observed) {
289 QuicAckFrame frame(MakeAckFrame(largest_observed)); 291 QuicAckFrame frame(MakeAckFrame(largest_observed));
290 frame.missing = GetParam().missing; 292 frame.missing = GetParam().missing;
291 if (!GetParam().missing) { 293 if (!GetParam().missing) {
292 if (largest_observed > 0) { 294 if (largest_observed > 0) {
293 frame.packets.Add(1, largest_observed + 1); 295 frame.packets.Add(1, largest_observed + 1);
294 } 296 }
(...skipping 1299 matching lines...) Expand 10 before | Expand all | Expand 10 after
1594 for (QuicPacketNumber i = 1; i <= 16; ++i) { 1596 for (QuicPacketNumber i = 1; i <= 16; ++i) {
1595 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _)) 1597 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _))
1596 .WillOnce(Return(QuicTime::Delta::Zero())); 1598 .WillOnce(Return(QuicTime::Delta::Zero()));
1597 EXPECT_EQ(QuicTime::Delta::Zero(), 1599 EXPECT_EQ(QuicTime::Delta::Zero(),
1598 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 1600 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1599 EXPECT_CALL(*send_algorithm_, 1601 EXPECT_CALL(*send_algorithm_,
1600 OnPacketSent(_, BytesInFlight(), i, kDefaultLength, 1602 OnPacketSent(_, BytesInFlight(), i, kDefaultLength,
1601 HAS_RETRANSMITTABLE_DATA)) 1603 HAS_RETRANSMITTABLE_DATA))
1602 .WillOnce(Return(true)); 1604 .WillOnce(Return(true));
1603 SerializedPacket packet(CreatePacket(i, true)); 1605 SerializedPacket packet(CreatePacket(i, true));
1604 manager_.OnPacketSent(&packet, 0, clock_.Now(), NOT_RETRANSMISSION, 1606 manager_.OnPacketSent(&packet, kInvalidPathId, 0, clock_.Now(),
1605 HAS_RETRANSMITTABLE_DATA); 1607 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
1606 } 1608 }
1607 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _)) 1609 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _))
1608 .WillOnce(Return(QuicTime::Delta::Infinite())); 1610 .WillOnce(Return(QuicTime::Delta::Infinite()));
1609 EXPECT_EQ(QuicTime::Delta::Infinite(), 1611 EXPECT_EQ(QuicTime::Delta::Infinite(),
1610 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 1612 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1611 } 1613 }
1612 1614
1613 TEST_P(QuicSentPacketManagerTest, ReceiveWindowLimited) { 1615 TEST_P(QuicSentPacketManagerTest, ReceiveWindowLimited) {
1614 EXPECT_EQ(kDefaultSocketReceiveBuffer, 1616 EXPECT_EQ(kDefaultSocketReceiveBuffer,
1615 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_)); 1617 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_));
1616 1618
1617 // Ensure the smaller send window only allows 256 * 0.95 packets to be sent. 1619 // Ensure the smaller send window only allows 256 * 0.95 packets to be sent.
1618 for (QuicPacketNumber i = 1; i <= 244; ++i) { 1620 for (QuicPacketNumber i = 1; i <= 244; ++i) {
1619 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _)) 1621 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _))
1620 .WillOnce(Return(QuicTime::Delta::Zero())); 1622 .WillOnce(Return(QuicTime::Delta::Zero()));
1621 EXPECT_EQ(QuicTime::Delta::Zero(), 1623 EXPECT_EQ(QuicTime::Delta::Zero(),
1622 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 1624 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1623 EXPECT_CALL(*send_algorithm_, 1625 EXPECT_CALL(*send_algorithm_,
1624 OnPacketSent(_, BytesInFlight(), i, kDefaultLength, 1626 OnPacketSent(_, BytesInFlight(), i, kDefaultLength,
1625 HAS_RETRANSMITTABLE_DATA)) 1627 HAS_RETRANSMITTABLE_DATA))
1626 .WillOnce(Return(true)); 1628 .WillOnce(Return(true));
1627 SerializedPacket packet(CreatePacket(i, true)); 1629 SerializedPacket packet(CreatePacket(i, true));
1628 manager_.OnPacketSent(&packet, 0, clock_.Now(), NOT_RETRANSMISSION, 1630 manager_.OnPacketSent(&packet, kInvalidPathId, 0, clock_.Now(),
1629 HAS_RETRANSMITTABLE_DATA); 1631 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
1630 } 1632 }
1631 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _)) 1633 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _))
1632 .WillOnce(Return(QuicTime::Delta::Infinite())); 1634 .WillOnce(Return(QuicTime::Delta::Infinite()));
1633 EXPECT_EQ(QuicTime::Delta::Infinite(), 1635 EXPECT_EQ(QuicTime::Delta::Infinite(),
1634 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 1636 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1635 } 1637 }
1636 1638
1637 TEST_P(QuicSentPacketManagerTest, UseInitialRoundTripTimeToSend) { 1639 TEST_P(QuicSentPacketManagerTest, UseInitialRoundTripTimeToSend) {
1638 uint32_t initial_rtt_us = 325000; 1640 uint32_t initial_rtt_us = 325000;
1639 EXPECT_NE(initial_rtt_us, 1641 EXPECT_NE(initial_rtt_us,
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1714 manager_.OnConnectionMigration(PORT_CHANGE); 1716 manager_.OnConnectionMigration(PORT_CHANGE);
1715 1717
1716 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); 1718 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us());
1717 EXPECT_EQ(1u, manager_.consecutive_rto_count()); 1719 EXPECT_EQ(1u, manager_.consecutive_rto_count());
1718 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); 1720 EXPECT_EQ(2u, manager_.consecutive_tlp_count());
1719 } 1721 }
1720 1722
1721 } // namespace 1723 } // namespace
1722 } // namespace test 1724 } // namespace test
1723 } // namespace net 1725 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_sent_packet_manager.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