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

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

Issue 600823006: Test-only. Remove calls to OnSerializedPacket from (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 | « no previous file | no next file » | 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 "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/quic_flags.h" 8 #include "net/quic/quic_flags.h"
9 #include "net/quic/test_tools/quic_config_peer.h" 9 #include "net/quic/test_tools/quic_config_peer.h"
10 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h" 10 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h"
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 void SendCryptoPacket(QuicPacketSequenceNumber sequence_number) { 219 void SendCryptoPacket(QuicPacketSequenceNumber sequence_number) {
220 EXPECT_CALL(*send_algorithm_, 220 EXPECT_CALL(*send_algorithm_,
221 OnPacketSent(_, BytesInFlight(), sequence_number, 221 OnPacketSent(_, BytesInFlight(), sequence_number,
222 kDefaultLength, HAS_RETRANSMITTABLE_DATA)) 222 kDefaultLength, HAS_RETRANSMITTABLE_DATA))
223 .Times(1).WillOnce(Return(true)); 223 .Times(1).WillOnce(Return(true));
224 SerializedPacket packet(CreateDataPacket(sequence_number)); 224 SerializedPacket packet(CreateDataPacket(sequence_number));
225 packet.retransmittable_frames->AddStreamFrame( 225 packet.retransmittable_frames->AddStreamFrame(
226 new QuicStreamFrame(1, false, 0, IOVector())); 226 new QuicStreamFrame(1, false, 0, IOVector()));
227 packet.retransmittable_frames->set_encryption_level(ENCRYPTION_NONE); 227 packet.retransmittable_frames->set_encryption_level(ENCRYPTION_NONE);
228 manager_.OnSerializedPacket(packet); 228 manager_.OnSerializedPacket(packet);
229 manager_.OnPacketSent(sequence_number, clock_.ApproximateNow(), 229 manager_.OnPacketSent(sequence_number, clock_.Now(),
230 packet.packet->length(), NOT_RETRANSMISSION, 230 packet.packet->length(), NOT_RETRANSMISSION,
231 HAS_RETRANSMITTABLE_DATA); 231 HAS_RETRANSMITTABLE_DATA);
232 } 232 }
233 233
234 void SendFecPacket(QuicPacketSequenceNumber sequence_number) { 234 void SendFecPacket(QuicPacketSequenceNumber sequence_number) {
235 EXPECT_CALL(*send_algorithm_, 235 EXPECT_CALL(*send_algorithm_,
236 OnPacketSent(_, BytesInFlight(), sequence_number, 236 OnPacketSent(_, BytesInFlight(), sequence_number,
237 kDefaultLength, NO_RETRANSMITTABLE_DATA)) 237 kDefaultLength, NO_RETRANSMITTABLE_DATA))
238 .Times(1).WillOnce(Return(true)); 238 .Times(1).WillOnce(Return(true));
239 SerializedPacket packet(CreateFecPacket(sequence_number)); 239 SerializedPacket packet(CreateFecPacket(sequence_number));
240 manager_.OnSerializedPacket(packet); 240 manager_.OnSerializedPacket(packet);
241 manager_.OnPacketSent(sequence_number, clock_.ApproximateNow(), 241 manager_.OnPacketSent(sequence_number, clock_.Now(),
242 packet.packet->length(), NOT_RETRANSMISSION, 242 packet.packet->length(), NOT_RETRANSMISSION,
243 NO_RETRANSMITTABLE_DATA); 243 NO_RETRANSMITTABLE_DATA);
244 } 244 }
245 245
246 void SendAckPacket(QuicPacketSequenceNumber sequence_number) { 246 void SendAckPacket(QuicPacketSequenceNumber sequence_number) {
247 EXPECT_CALL(*send_algorithm_, 247 EXPECT_CALL(*send_algorithm_,
248 OnPacketSent(_, BytesInFlight(), sequence_number, 248 OnPacketSent(_, BytesInFlight(), sequence_number,
249 kDefaultLength, NO_RETRANSMITTABLE_DATA)) 249 kDefaultLength, NO_RETRANSMITTABLE_DATA))
250 .Times(1).WillOnce(Return(false)); 250 .Times(1).WillOnce(Return(false));
251 SerializedPacket packet(CreatePacket(sequence_number, false)); 251 SerializedPacket packet(CreatePacket(sequence_number, false));
(...skipping 23 matching lines...) Expand all
275 QuicSentPacketManager manager_; 275 QuicSentPacketManager manager_;
276 vector<QuicPacket*> packets_; 276 vector<QuicPacket*> packets_;
277 MockClock clock_; 277 MockClock clock_;
278 QuicConnectionStats stats_; 278 QuicConnectionStats stats_;
279 MockSendAlgorithm* send_algorithm_; 279 MockSendAlgorithm* send_algorithm_;
280 scoped_ptr<MockNetworkChangeVisitor> network_change_visitor_; 280 scoped_ptr<MockNetworkChangeVisitor> network_change_visitor_;
281 }; 281 };
282 282
283 TEST_F(QuicSentPacketManagerTest, IsUnacked) { 283 TEST_F(QuicSentPacketManagerTest, IsUnacked) {
284 VerifyUnackedPackets(NULL, 0); 284 VerifyUnackedPackets(NULL, 0);
285 285 SendDataPacket(1);
286 SerializedPacket serialized_packet(CreateDataPacket(1));
287
288 manager_.OnSerializedPacket(serialized_packet);
289 286
290 QuicPacketSequenceNumber unacked[] = { 1 }; 287 QuicPacketSequenceNumber unacked[] = { 1 };
291 VerifyUnackedPackets(unacked, arraysize(unacked)); 288 VerifyUnackedPackets(unacked, arraysize(unacked));
292 QuicPacketSequenceNumber retransmittable[] = { 1 }; 289 QuicPacketSequenceNumber retransmittable[] = { 1 };
293 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable)); 290 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
294 } 291 }
295 292
296 TEST_F(QuicSentPacketManagerTest, IsUnAckedRetransmit) { 293 TEST_F(QuicSentPacketManagerTest, IsUnAckedRetransmit) {
297 SendDataPacket(1); 294 SendDataPacket(1);
298 RetransmitPacket(1, 2); 295 RetransmitPacket(1, 2);
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 VerifyUnackedPackets(unacked, arraysize(unacked)); 638 VerifyUnackedPackets(unacked, arraysize(unacked));
642 QuicPacketSequenceNumber retransmittable[] = { 5, 6, 7, 8, 9 }; 639 QuicPacketSequenceNumber retransmittable[] = { 5, 6, 7, 8, 9 };
643 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable)); 640 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
644 } 641 }
645 642
646 TEST_F(QuicSentPacketManagerTest, GetLeastUnacked) { 643 TEST_F(QuicSentPacketManagerTest, GetLeastUnacked) {
647 EXPECT_EQ(1u, manager_.GetLeastUnacked()); 644 EXPECT_EQ(1u, manager_.GetLeastUnacked());
648 } 645 }
649 646
650 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedUnacked) { 647 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedUnacked) {
651 SerializedPacket serialized_packet(CreateDataPacket(1)); 648 SendDataPacket(1);
652
653 manager_.OnSerializedPacket(serialized_packet);
654 EXPECT_EQ(1u, manager_.GetLeastUnacked()); 649 EXPECT_EQ(1u, manager_.GetLeastUnacked());
655 } 650 }
656 651
657 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedUnackedFec) { 652 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedUnackedFec) {
658 SerializedPacket serialized_packet(CreateFecPacket(1)); 653 SendFecPacket(1);
659
660 manager_.OnSerializedPacket(serialized_packet);
661 EXPECT_EQ(1u, manager_.GetLeastUnacked()); 654 EXPECT_EQ(1u, manager_.GetLeastUnacked());
662 } 655 }
663 656
664 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedAndDiscard) { 657 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedAndDiscard) {
665 VerifyUnackedPackets(NULL, 0); 658 VerifyUnackedPackets(NULL, 0);
666 659
667 SendFecPacket(1); 660 SendFecPacket(1);
668 EXPECT_EQ(1u, manager_.GetLeastUnacked()); 661 EXPECT_EQ(1u, manager_.GetLeastUnacked());
669 662
670 SendFecPacket(2); 663 SendFecPacket(2);
(...skipping 12 matching lines...) Expand all
683 ack_frame.largest_observed = 2; 676 ack_frame.largest_observed = 2;
684 ack_frame.missing_packets.insert(1); 677 ack_frame.missing_packets.insert(1);
685 manager_.OnIncomingAck(ack_frame, clock_.Now()); 678 manager_.OnIncomingAck(ack_frame, clock_.Now());
686 679
687 EXPECT_EQ(1u, manager_.GetLeastUnacked()); 680 EXPECT_EQ(1u, manager_.GetLeastUnacked());
688 } 681 }
689 682
690 TEST_F(QuicSentPacketManagerTest, GetSentTime) { 683 TEST_F(QuicSentPacketManagerTest, GetSentTime) {
691 VerifyUnackedPackets(NULL, 0); 684 VerifyUnackedPackets(NULL, 0);
692 685
693 SerializedPacket serialized_packet(CreateFecPacket(1)); 686 QuicTime sent_time = clock_.Now();
694 manager_.OnSerializedPacket(serialized_packet); 687 SendFecPacket(1);
695 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 1, _, _)) 688 QuicTime sent_time2 = clock_.Now();
696 .Times(1).WillOnce(Return(true)); 689 SendFecPacket(2);
697 manager_.OnPacketSent(1, QuicTime::Zero(), kDefaultLength, NOT_RETRANSMISSION,
698 NO_RETRANSMITTABLE_DATA);
699
700 SerializedPacket serialized_packet2(CreateFecPacket(2));
701 QuicTime sent_time = QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(1));
702 manager_.OnSerializedPacket(serialized_packet2);
703 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 2, _, _))
704 .Times(1).WillOnce(Return(true));
705 manager_.OnPacketSent(2, sent_time, kDefaultLength, NOT_RETRANSMISSION,
706 NO_RETRANSMITTABLE_DATA);
707
708 QuicPacketSequenceNumber unacked[] = { 1, 2 }; 690 QuicPacketSequenceNumber unacked[] = { 1, 2 };
709 VerifyUnackedPackets(unacked, arraysize(unacked)); 691 VerifyUnackedPackets(unacked, arraysize(unacked));
710 VerifyRetransmittablePackets(NULL, 0); 692 VerifyRetransmittablePackets(NULL, 0);
711 693
712 EXPECT_TRUE(manager_.HasUnackedPackets()); 694 EXPECT_TRUE(manager_.HasUnackedPackets());
713 EXPECT_EQ(QuicTime::Zero(), 695 EXPECT_EQ(sent_time, QuicSentPacketManagerPeer::GetSentTime(&manager_, 1));
714 QuicSentPacketManagerPeer::GetSentTime(&manager_, 1)); 696 EXPECT_EQ(sent_time2, QuicSentPacketManagerPeer::GetSentTime(&manager_, 2));
715 EXPECT_EQ(sent_time, QuicSentPacketManagerPeer::GetSentTime(&manager_, 2));
716 } 697 }
717 698
718 TEST_F(QuicSentPacketManagerTest, AckAckAndUpdateRtt) { 699 TEST_F(QuicSentPacketManagerTest, AckAckAndUpdateRtt) {
719 SendDataPacket(1); 700 SendDataPacket(1);
720 SendAckPacket(2); 701 SendAckPacket(2);
721 702
722 // Now ack the ack and expect an RTT update. 703 // Now ack the ack and expect an RTT update.
723 QuicAckFrame ack_frame; 704 QuicAckFrame ack_frame;
724 ack_frame.largest_observed = 2; 705 ack_frame.largest_observed = 2;
725 ack_frame.delta_time_largest_observed = 706 ack_frame.delta_time_largest_observed =
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 ack_frame.largest_observed = 2; 994 ack_frame.largest_observed = 2;
1014 ack_frame.missing_packets.insert(1); 995 ack_frame.missing_packets.insert(1);
1015 manager_.OnIncomingAck(ack_frame, clock_.ApproximateNow()); 996 manager_.OnIncomingAck(ack_frame, clock_.ApproximateNow());
1016 997
1017 EXPECT_FALSE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_)); 998 EXPECT_FALSE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
1018 QuicPacketSequenceNumber unacked[] = { 3 }; 999 QuicPacketSequenceNumber unacked[] = { 3 };
1019 VerifyUnackedPackets(unacked, arraysize(unacked)); 1000 VerifyUnackedPackets(unacked, arraysize(unacked));
1020 } 1001 }
1021 1002
1022 TEST_F(QuicSentPacketManagerTest, CryptoHandshakeTimeoutUnsentDataPacket) { 1003 TEST_F(QuicSentPacketManagerTest, CryptoHandshakeTimeoutUnsentDataPacket) {
1023 // Send 2 crypto packets and serialize 1 data packet. 1004 // Send 2 crypto packets and 1 data packet.
1024 const size_t kNumSentCryptoPackets = 2; 1005 const size_t kNumSentCryptoPackets = 2;
1025 for (size_t i = 1; i <= kNumSentCryptoPackets; ++i) { 1006 for (size_t i = 1; i <= kNumSentCryptoPackets; ++i) {
1026 SendCryptoPacket(i); 1007 SendCryptoPacket(i);
1027 } 1008 }
1028 SerializedPacket packet(CreateDataPacket(3)); 1009 SendDataPacket(3);
1029 manager_.OnSerializedPacket(packet);
1030 EXPECT_TRUE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_)); 1010 EXPECT_TRUE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
1031 1011
1032 // Retransmit 2 crypto packets, but not the serialized packet. 1012 // Retransmit 2 crypto packets, but not the serialized packet.
1033 manager_.OnRetransmissionTimeout(); 1013 manager_.OnRetransmissionTimeout();
1034 RetransmitNextPacket(4); 1014 RetransmitNextPacket(4);
1035 RetransmitNextPacket(5); 1015 RetransmitNextPacket(5);
1036 EXPECT_FALSE(manager_.HasPendingRetransmissions()); 1016 EXPECT_FALSE(manager_.HasPendingRetransmissions());
1037 EXPECT_TRUE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_)); 1017 EXPECT_TRUE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
1038 } 1018 }
1039 1019
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1085 QuicAckFrame ack_frame; 1065 QuicAckFrame ack_frame;
1086 ack_frame.largest_observed = 3; 1066 ack_frame.largest_observed = 3;
1087 ack_frame.missing_packets.insert(1); 1067 ack_frame.missing_packets.insert(1);
1088 ack_frame.missing_packets.insert(2); 1068 ack_frame.missing_packets.insert(2);
1089 ExpectUpdatedRtt(3); 1069 ExpectUpdatedRtt(3);
1090 manager_.OnIncomingAck(ack_frame, clock_.ApproximateNow()); 1070 manager_.OnIncomingAck(ack_frame, clock_.ApproximateNow());
1091 VerifyUnackedPackets(NULL, 0); 1071 VerifyUnackedPackets(NULL, 0);
1092 VerifyRetransmittablePackets(NULL, 0); 1072 VerifyRetransmittablePackets(NULL, 0);
1093 } 1073 }
1094 1074
1095 TEST_F(QuicSentPacketManagerTest, TailLossProbeTimeoutUnsentDataPacket) {
1096 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2);
1097 // Serialize two data packets and send the latter.
1098 SerializedPacket packet(CreateDataPacket(1));
1099 manager_.OnSerializedPacket(packet);
1100 SendDataPacket(2);
1101 EXPECT_FALSE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
1102 EXPECT_TRUE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
1103
1104 // Retransmit 1 unacked packets, but not the first serialized packet.
1105 manager_.OnRetransmissionTimeout();
1106 EXPECT_EQ(QuicTime::Delta::Zero(),
1107 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1108 EXPECT_FALSE(manager_.HasPendingRetransmissions());
1109 manager_.MaybeRetransmitTailLossProbe();
1110 EXPECT_TRUE(manager_.HasPendingRetransmissions());
1111 RetransmitNextPacket(3);
1112 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return(
1113 QuicTime::Delta::Infinite()));
1114 EXPECT_EQ(QuicTime::Delta::Infinite(),
1115 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1116 EXPECT_FALSE(manager_.HasPendingRetransmissions());
1117 EXPECT_FALSE(QuicSentPacketManagerPeer::HasUnackedCryptoPackets(&manager_));
1118 EXPECT_TRUE(QuicSentPacketManagerPeer::HasPendingPackets(&manager_));
1119 }
1120
1121 TEST_F(QuicSentPacketManagerTest, ResetRecentMinRTTWithEmptyWindow) { 1075 TEST_F(QuicSentPacketManagerTest, ResetRecentMinRTTWithEmptyWindow) {
1122 QuicTime::Delta min_rtt = QuicTime::Delta::FromMilliseconds(50); 1076 QuicTime::Delta min_rtt = QuicTime::Delta::FromMilliseconds(50);
1123 QuicSentPacketManagerPeer::GetRttStats(&manager_)->UpdateRtt( 1077 QuicSentPacketManagerPeer::GetRttStats(&manager_)->UpdateRtt(
1124 min_rtt, QuicTime::Delta::Zero(), QuicTime::Zero()); 1078 min_rtt, QuicTime::Delta::Zero(), QuicTime::Zero());
1125 EXPECT_EQ(min_rtt, 1079 EXPECT_EQ(min_rtt,
1126 QuicSentPacketManagerPeer::GetRttStats(&manager_)->min_rtt()); 1080 QuicSentPacketManagerPeer::GetRttStats(&manager_)->min_rtt());
1127 EXPECT_EQ(min_rtt, 1081 EXPECT_EQ(min_rtt,
1128 QuicSentPacketManagerPeer::GetRttStats( 1082 QuicSentPacketManagerPeer::GetRttStats(
1129 &manager_)->recent_min_rtt()); 1083 &manager_)->recent_min_rtt());
1130 1084
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
1462 .WillOnce(Return(100 * kDefaultTCPMSS)); 1416 .WillOnce(Return(100 * kDefaultTCPMSS));
1463 manager_.SetFromConfig(config); 1417 manager_.SetFromConfig(config);
1464 1418
1465 EXPECT_EQ(initial_rtt_us, 1419 EXPECT_EQ(initial_rtt_us,
1466 manager_.GetRttStats()->SmoothedRtt().ToMicroseconds()); 1420 manager_.GetRttStats()->SmoothedRtt().ToMicroseconds());
1467 } 1421 }
1468 1422
1469 } // namespace 1423 } // namespace
1470 } // namespace test 1424 } // namespace test
1471 } // namespace net 1425 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698