OLD | NEW |
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_protocol.h" | 9 #include "net/quic/quic_protocol.h" |
10 #include "net/quic/test_tools/mock_clock.h" | 10 #include "net/quic/test_tools/mock_clock.h" |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 CheckPacketIsSentImmediately(); | 230 CheckPacketIsSentImmediately(); |
231 CheckPacketIsSentImmediately(); | 231 CheckPacketIsSentImmediately(); |
232 CheckPacketIsSentImmediately(); | 232 CheckPacketIsSentImmediately(); |
233 | 233 |
234 // The first packet was a "make up", then we sent two packets "into the | 234 // The first packet was a "make up", then we sent two packets "into the |
235 // future", so the delay should be 2. | 235 // future", so the delay should be 2. |
236 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2)); | 236 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2)); |
237 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5)); | 237 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5)); |
238 CheckPacketIsSentImmediately(); | 238 CheckPacketIsSentImmediately(); |
239 | 239 |
240 // Now reduce bytes in flight back to 0 by and ensure another burst of 10 can | 240 // Next time TimeUntilSend is called with no bytes in flight, the tokens |
241 // be sent. | 241 // should be refilled and there should be no delay. |
242 EXPECT_CALL(*mock_sender_, OnCongestionEvent(true, 0, _, _)); | 242 EXPECT_CALL(*mock_sender_, |
243 pacing_sender_->OnCongestionEvent(true, 0, empty_map, empty_map); | 243 TimeUntilSend(clock_.Now(), |
| 244 0, |
| 245 HAS_RETRANSMITTABLE_DATA)). |
| 246 WillOnce(Return(zero_time_)); |
| 247 EXPECT_EQ(zero_time_, |
| 248 pacing_sender_->TimeUntilSend(clock_.Now(), |
| 249 0, |
| 250 HAS_RETRANSMITTABLE_DATA)); |
244 for (int i = 0 ; i < 10; ++i) { | 251 for (int i = 0 ; i < 10; ++i) { |
245 CheckPacketIsSentImmediately(); | 252 CheckPacketIsSentImmediately(); |
246 } | 253 } |
247 | 254 |
248 CheckPacketIsSentImmediately(); | 255 CheckPacketIsSentImmediately(); |
249 CheckPacketIsSentImmediately(); | 256 CheckPacketIsSentImmediately(); |
250 CheckPacketIsSentImmediately(); | 257 CheckPacketIsSentImmediately(); |
251 | 258 |
252 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2)); | 259 CheckPacketIsDelayed(QuicTime::Delta::FromMilliseconds(2)); |
253 } | 260 } |
254 | 261 |
255 } // namespace test | 262 } // namespace test |
256 } // namespace net | 263 } // namespace net |
OLD | NEW |