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

Side by Side Diff: net/quic/congestion_control/pacing_sender_test.cc

Issue 1276983003: relnote: Limit the number of burst tokens in QUIC's pacing sender to the (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Preparation_for_changing_SpdyHeaderBlock_99394725
Patch Set: Created 5 years, 4 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/congestion_control/pacing_sender.cc ('k') | net/quic/quic_connection_test.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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/congestion_control/pacing_sender.h" 5 #include "net/quic/congestion_control/pacing_sender.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "net/quic/quic_flags.h"
9 #include "net/quic/quic_protocol.h" 10 #include "net/quic/quic_protocol.h"
10 #include "net/quic/test_tools/mock_clock.h" 11 #include "net/quic/test_tools/mock_clock.h"
11 #include "net/quic/test_tools/quic_test_utils.h" 12 #include "net/quic/test_tools/quic_test_utils.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 14
14 using testing::Return; 15 using testing::Return;
15 using testing::StrictMock; 16 using testing::StrictMock;
16 using testing::_; 17 using testing::_;
17 18
18 namespace net { 19 namespace net {
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1)); 193 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
193 CheckPacketIsSentImmediately(); 194 CheckPacketIsSentImmediately();
194 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2)); 195 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2));
195 } 196 }
196 197
197 TEST_F(PacingSenderTest, InitialBurst) { 198 TEST_F(PacingSenderTest, InitialBurst) {
198 // Configure pacing rate of 1 packet per 1 ms. 199 // Configure pacing rate of 1 packet per 1 ms.
199 InitPacingRate(10, QuicBandwidth::FromBytesAndTimeDelta( 200 InitPacingRate(10, QuicBandwidth::FromBytesAndTimeDelta(
200 kMaxPacketSize, QuicTime::Delta::FromMilliseconds(1))); 201 kMaxPacketSize, QuicTime::Delta::FromMilliseconds(1)));
201 202
203 if (FLAGS_quic_limit_pacing_burst) {
204 EXPECT_CALL(*mock_sender_, GetCongestionWindow())
205 .WillOnce(Return(10 * kDefaultTCPMSS));
206 }
202 // Update the RTT and verify that the first 10 packets aren't paced. 207 // Update the RTT and verify that the first 10 packets aren't paced.
203 UpdateRtt(); 208 UpdateRtt();
204 209
205 // Send 10 packets, and verify that they are not paced. 210 // Send 10 packets, and verify that they are not paced.
206 for (int i = 0 ; i < kInitialBurstPackets; ++i) { 211 for (int i = 0 ; i < kInitialBurstPackets; ++i) {
207 CheckPacketIsSentImmediately(); 212 CheckPacketIsSentImmediately();
208 } 213 }
209 214
210 // The first packet was a "make up", then we sent two packets "into the 215 // The first packet was a "make up", then we sent two packets "into the
211 // future", so the delay should be 2ms. 216 // future", so the delay should be 2ms.
(...skipping 16 matching lines...) Expand all
228 CheckPacketIsSentImmediately(); 233 CheckPacketIsSentImmediately();
229 CheckPacketIsSentImmediately(); 234 CheckPacketIsSentImmediately();
230 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2)); 235 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2));
231 } 236 }
232 237
233 TEST_F(PacingSenderTest, InitialBurstNoRttMeasurement) { 238 TEST_F(PacingSenderTest, InitialBurstNoRttMeasurement) {
234 // Configure pacing rate of 1 packet per 1 ms. 239 // Configure pacing rate of 1 packet per 1 ms.
235 InitPacingRate(10, QuicBandwidth::FromBytesAndTimeDelta( 240 InitPacingRate(10, QuicBandwidth::FromBytesAndTimeDelta(
236 kMaxPacketSize, QuicTime::Delta::FromMilliseconds(1))); 241 kMaxPacketSize, QuicTime::Delta::FromMilliseconds(1)));
237 242
243 if (FLAGS_quic_limit_pacing_burst) {
244 EXPECT_CALL(*mock_sender_, GetCongestionWindow())
245 .WillOnce(Return(10 * kDefaultTCPMSS));
246 }
238 // Send 10 packets, and verify that they are not paced. 247 // Send 10 packets, and verify that they are not paced.
239 for (int i = 0 ; i < kInitialBurstPackets; ++i) { 248 for (int i = 0 ; i < kInitialBurstPackets; ++i) {
240 CheckPacketIsSentImmediately(); 249 CheckPacketIsSentImmediately();
241 } 250 }
242 251
243 // The first packet was a "make up", then we sent two packets "into the 252 // The first packet was a "make up", then we sent two packets "into the
244 // future", so the delay should be 2ms. 253 // future", so the delay should be 2ms.
245 CheckPacketIsSentImmediately(); 254 CheckPacketIsSentImmediately();
246 CheckPacketIsSentImmediately(); 255 CheckPacketIsSentImmediately();
247 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2)); 256 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2));
(...skipping 17 matching lines...) Expand all
265 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2)); 274 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2));
266 } 275 }
267 276
268 TEST_F(PacingSenderTest, FastSending) { 277 TEST_F(PacingSenderTest, FastSending) {
269 // Ensure the pacing sender paces, even when the inter-packet spacing is less 278 // Ensure the pacing sender paces, even when the inter-packet spacing is less
270 // than the pacing granularity. 279 // than the pacing granularity.
271 InitPacingRate(10, 280 InitPacingRate(10,
272 QuicBandwidth::FromBytesAndTimeDelta( 281 QuicBandwidth::FromBytesAndTimeDelta(
273 2 * kMaxPacketSize, QuicTime::Delta::FromMilliseconds(1))); 282 2 * kMaxPacketSize, QuicTime::Delta::FromMilliseconds(1)));
274 283
284 if (FLAGS_quic_limit_pacing_burst) {
285 EXPECT_CALL(*mock_sender_, GetCongestionWindow())
286 .WillOnce(Return(10 * kDefaultTCPMSS));
287 }
275 // Update the RTT and verify that the first 10 packets aren't paced. 288 // Update the RTT and verify that the first 10 packets aren't paced.
276 UpdateRtt(); 289 UpdateRtt();
277 290
278 // Send 10 packets, and verify that they are not paced. 291 // Send 10 packets, and verify that they are not paced.
279 for (int i = 0; i < kInitialBurstPackets; ++i) { 292 for (int i = 0; i < kInitialBurstPackets; ++i) {
280 CheckPacketIsSentImmediately(); 293 CheckPacketIsSentImmediately();
281 } 294 }
282 295
283 // The first packet was a "make up", then we sent two packets "into the 296 // The first packet was a "make up", then we sent two packets "into the
284 // future", since it's 2 packets/ms, so the delay should be 1.5ms. 297 // future", since it's 2 packets/ms, so the delay should be 1.5ms.
(...skipping 15 matching lines...) Expand all
300 // The first packet was a "make up", then we sent two packets "into the 313 // The first packet was a "make up", then we sent two packets "into the
301 // future", so the delay should be 1.5ms. 314 // future", so the delay should be 1.5ms.
302 CheckPacketIsSentImmediately(); 315 CheckPacketIsSentImmediately();
303 CheckPacketIsSentImmediately(); 316 CheckPacketIsSentImmediately();
304 CheckPacketIsSentImmediately(); 317 CheckPacketIsSentImmediately();
305 CheckPacketIsDelayed(QuicTime::Delta::FromMicroseconds(1500)); 318 CheckPacketIsDelayed(QuicTime::Delta::FromMicroseconds(1500));
306 } 319 }
307 320
308 } // namespace test 321 } // namespace test
309 } // namespace net 322 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/congestion_control/pacing_sender.cc ('k') | net/quic/quic_connection_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698