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

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

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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/quic_server.cc » ('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 "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 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission( 169 EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(
170 &manager_, new_sequence_number)); 170 &manager_, new_sequence_number));
171 } 171 }
172 172
173 SerializedPacket CreateDataPacket(QuicPacketSequenceNumber sequence_number) { 173 SerializedPacket CreateDataPacket(QuicPacketSequenceNumber sequence_number) {
174 return CreatePacket(sequence_number, true); 174 return CreatePacket(sequence_number, true);
175 } 175 }
176 176
177 SerializedPacket CreatePacket(QuicPacketSequenceNumber sequence_number, 177 SerializedPacket CreatePacket(QuicPacketSequenceNumber sequence_number,
178 bool retransmittable) { 178 bool retransmittable) {
179 packets_.push_back(QuicPacket::NewDataPacket( 179 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength));
180 nullptr, kDefaultLength, false, PACKET_8BYTE_CONNECTION_ID, false,
181 PACKET_6BYTE_SEQUENCE_NUMBER));
182 return SerializedPacket( 180 return SerializedPacket(
183 sequence_number, PACKET_6BYTE_SEQUENCE_NUMBER, packets_.back(), 0u, 181 sequence_number, PACKET_6BYTE_SEQUENCE_NUMBER, packets_.back(), 0u,
184 retransmittable ? new RetransmittableFrames() : nullptr); 182 retransmittable ? new RetransmittableFrames() : nullptr);
185 } 183 }
186 184
187 SerializedPacket CreateFecPacket(QuicPacketSequenceNumber sequence_number) { 185 SerializedPacket CreateFecPacket(QuicPacketSequenceNumber sequence_number) {
188 packets_.push_back(QuicPacket::NewFecPacket( 186 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength));
189 nullptr, kDefaultLength, false, PACKET_8BYTE_CONNECTION_ID, false, 187 SerializedPacket serialized(sequence_number, PACKET_6BYTE_SEQUENCE_NUMBER,
190 PACKET_6BYTE_SEQUENCE_NUMBER)); 188 packets_.back(), 0u, nullptr);
191 return SerializedPacket(sequence_number, PACKET_6BYTE_SEQUENCE_NUMBER, 189 serialized.is_fec_packet = true;
192 packets_.back(), 0u, nullptr); 190 return serialized;
193 } 191 }
194 192
195 void SendDataPacket(QuicPacketSequenceNumber sequence_number) { 193 void SendDataPacket(QuicPacketSequenceNumber sequence_number) {
196 EXPECT_CALL(*send_algorithm_, 194 EXPECT_CALL(*send_algorithm_,
197 OnPacketSent(_, BytesInFlight(), sequence_number, _, _)) 195 OnPacketSent(_, BytesInFlight(), sequence_number, _, _))
198 .Times(1).WillOnce(Return(true)); 196 .Times(1).WillOnce(Return(true));
199 SerializedPacket packet(CreateDataPacket(sequence_number)); 197 SerializedPacket packet(CreateDataPacket(sequence_number));
200 manager_.OnPacketSent(&packet, 0, clock_.Now(), 198 manager_.OnPacketSent(&packet, 0, clock_.Now(),
201 packet.packet->length(), NOT_RETRANSMISSION, 199 packet.packet->length(), NOT_RETRANSMISSION,
202 HAS_RETRANSMITTABLE_DATA); 200 HAS_RETRANSMITTABLE_DATA);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 const QuicSentPacketManager::PendingRetransmission pending = 247 const QuicSentPacketManager::PendingRetransmission pending =
250 manager_.NextPendingRetransmission(); 248 manager_.NextPendingRetransmission();
251 SerializedPacket packet( 249 SerializedPacket packet(
252 CreatePacket(retransmission_sequence_number, false)); 250 CreatePacket(retransmission_sequence_number, false));
253 manager_.OnPacketSent(&packet, pending.sequence_number, clock_.Now(), 251 manager_.OnPacketSent(&packet, pending.sequence_number, clock_.Now(),
254 kDefaultLength, pending.transmission_type, 252 kDefaultLength, pending.transmission_type,
255 HAS_RETRANSMITTABLE_DATA); 253 HAS_RETRANSMITTABLE_DATA);
256 } 254 }
257 255
258 QuicSentPacketManager manager_; 256 QuicSentPacketManager manager_;
259 vector<QuicPacket*> packets_; 257 vector<QuicEncryptedPacket*> packets_;
260 MockClock clock_; 258 MockClock clock_;
261 QuicConnectionStats stats_; 259 QuicConnectionStats stats_;
262 MockSendAlgorithm* send_algorithm_; 260 MockSendAlgorithm* send_algorithm_;
263 scoped_ptr<MockNetworkChangeVisitor> network_change_visitor_; 261 scoped_ptr<MockNetworkChangeVisitor> network_change_visitor_;
264 }; 262 };
265 263
266 TEST_F(QuicSentPacketManagerTest, IsUnacked) { 264 TEST_F(QuicSentPacketManagerTest, IsUnacked) {
267 VerifyUnackedPackets(nullptr, 0); 265 VerifyUnackedPackets(nullptr, 0);
268 SendDataPacket(1); 266 SendDataPacket(1);
269 267
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
1149 TEST_F(QuicSentPacketManagerTest, NewRetransmissionTimeout) { 1147 TEST_F(QuicSentPacketManagerTest, NewRetransmissionTimeout) {
1150 ValueRestore<bool> old_flag(&FLAGS_quic_use_new_rto, true); 1148 ValueRestore<bool> old_flag(&FLAGS_quic_use_new_rto, true);
1151 QuicConfig client_config; 1149 QuicConfig client_config;
1152 QuicTagVector options; 1150 QuicTagVector options;
1153 options.push_back(kNRTO); 1151 options.push_back(kNRTO);
1154 QuicSentPacketManagerPeer::SetIsServer(&manager_, false); 1152 QuicSentPacketManagerPeer::SetIsServer(&manager_, false);
1155 client_config.SetConnectionOptionsToSend(options); 1153 client_config.SetConnectionOptionsToSend(options);
1156 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange()); 1154 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
1157 EXPECT_CALL(*network_change_visitor_, OnRttChange()); 1155 EXPECT_CALL(*network_change_visitor_, OnRttChange());
1158 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _)); 1156 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _));
1157 EXPECT_CALL(*send_algorithm_, PacingRate())
1158 .WillRepeatedly(Return(QuicBandwidth::Zero()));
1159 manager_.SetFromConfig(client_config); 1159 manager_.SetFromConfig(client_config);
1160 EXPECT_TRUE(QuicSentPacketManagerPeer::GetUseNewRto(&manager_)); 1160 EXPECT_TRUE(QuicSentPacketManagerPeer::GetUseNewRto(&manager_));
1161 1161
1162 // Send 100 packets. 1162 // Send 100 packets.
1163 const size_t kNumSentPackets = 100; 1163 const size_t kNumSentPackets = 100;
1164 for (size_t i = 1; i <= kNumSentPackets; ++i) { 1164 for (size_t i = 1; i <= kNumSentPackets; ++i) {
1165 SendDataPacket(i); 1165 SendDataPacket(i);
1166 } 1166 }
1167 1167
1168 EXPECT_FALSE(manager_.MaybeRetransmitTailLossProbe()); 1168 EXPECT_FALSE(manager_.MaybeRetransmitTailLossProbe());
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
1716 } 1716 }
1717 1717
1718 TEST_F(QuicSentPacketManagerTest, NegotiateReceiveWindowFromOptions) { 1718 TEST_F(QuicSentPacketManagerTest, NegotiateReceiveWindowFromOptions) {
1719 EXPECT_EQ(kDefaultSocketReceiveBuffer, 1719 EXPECT_EQ(kDefaultSocketReceiveBuffer,
1720 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_)); 1720 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_));
1721 1721
1722 // Try to set a size below the minimum and ensure it gets set to the min. 1722 // Try to set a size below the minimum and ensure it gets set to the min.
1723 QuicConfig client_config; 1723 QuicConfig client_config;
1724 QuicConfigPeer::SetReceivedSocketReceiveBuffer(&client_config, 1024); 1724 QuicConfigPeer::SetReceivedSocketReceiveBuffer(&client_config, 1024);
1725 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _)); 1725 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _));
1726 EXPECT_CALL(*send_algorithm_, PacingRate())
1727 .WillRepeatedly(Return(QuicBandwidth::Zero()));
1726 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange()); 1728 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
1727 EXPECT_CALL(*network_change_visitor_, OnRttChange()); 1729 EXPECT_CALL(*network_change_visitor_, OnRttChange());
1728 manager_.SetFromConfig(client_config); 1730 manager_.SetFromConfig(client_config);
1729 1731
1730 EXPECT_EQ(kMinSocketReceiveBuffer, 1732 EXPECT_EQ(kMinSocketReceiveBuffer,
1731 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_)); 1733 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_));
1732 1734
1733 // Ensure the smaller send window only allows 16 packets to be sent. 1735 // Ensure the smaller send window only allows 16 packets to be sent.
1734 for (QuicPacketSequenceNumber i = 1; i <= 16; ++i) { 1736 for (QuicPacketSequenceNumber i = 1; i <= 16; ++i) {
1735 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return( 1737 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return(
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1793 1795
1794 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_)); 1796 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_));
1795 manager_.ResumeConnectionState(cached_network_params); 1797 manager_.ResumeConnectionState(cached_network_params);
1796 EXPECT_EQ(kRttMs * kNumMicrosPerMilli, 1798 EXPECT_EQ(kRttMs * kNumMicrosPerMilli,
1797 static_cast<uint64>(manager_.GetRttStats()->initial_rtt_us())); 1799 static_cast<uint64>(manager_.GetRttStats()->initial_rtt_us()));
1798 } 1800 }
1799 1801
1800 } // namespace 1802 } // namespace
1801 } // namespace test 1803 } // namespace test
1802 } // namespace net 1804 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698