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

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

Issue 185053006: Refactor of QUIC's rtt storage and calculation to have a single RttStats (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
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/inter_arrival_sender.h" 5 #include "net/quic/congestion_control/inter_arrival_sender.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "net/quic/congestion_control/rtt_stats.h"
9 #include "net/quic/test_tools/mock_clock.h" 10 #include "net/quic/test_tools/mock_clock.h"
10 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
11 12
12 using std::pair; 13 using std::pair;
13 14
14 namespace net { 15 namespace net {
15 namespace test { 16 namespace test {
16 17
17 class InterArrivalSenderTest : public ::testing::Test { 18 class InterArrivalSenderTest : public ::testing::Test {
18 protected: 19 protected:
19 InterArrivalSenderTest() 20 InterArrivalSenderTest()
20 : one_ms_(QuicTime::Delta::FromMilliseconds(1)), 21 : one_ms_(QuicTime::Delta::FromMilliseconds(1)),
21 one_s_(QuicTime::Delta::FromMilliseconds(1000)), 22 one_s_(QuicTime::Delta::FromMilliseconds(1000)),
22 nine_ms_(QuicTime::Delta::FromMilliseconds(9)), 23 nine_ms_(QuicTime::Delta::FromMilliseconds(9)),
23 send_start_time_(send_clock_.Now()), 24 send_start_time_(send_clock_.Now()),
24 sender_(&send_clock_), 25 sender_(&send_clock_, &rtt_stats_),
25 sequence_number_(1), 26 sequence_number_(1),
26 acked_sequence_number_(1), 27 acked_sequence_number_(1),
27 feedback_sequence_number_(1) { 28 feedback_sequence_number_(1) {
28 send_clock_.AdvanceTime(one_ms_); 29 send_clock_.AdvanceTime(one_ms_);
29 receive_clock_.AdvanceTime(one_ms_); 30 receive_clock_.AdvanceTime(one_ms_);
31 rtt_stats_.set_initial_rtt_us(60 * base::Time::kMicrosecondsPerMillisecond);
30 } 32 }
31 33
32 virtual ~InterArrivalSenderTest() { 34 virtual ~InterArrivalSenderTest() {
33 } 35 }
34 36
35 void SendAvailableCongestionWindow() { 37 void SendAvailableCongestionWindow() {
36 while (sender_.TimeUntilSend(send_clock_.Now(), 38 while (sender_.TimeUntilSend(send_clock_.Now(),
37 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE).IsZero()) { 39 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE).IsZero()) {
38 QuicByteCount bytes_in_packet = kDefaultMaxPacketSize; 40 QuicByteCount bytes_in_packet = kDefaultMaxPacketSize;
39 sender_.OnPacketSent(send_clock_.Now(), sequence_number_, bytes_in_packet, 41 sender_.OnPacketSent(send_clock_.Now(), sequence_number_, bytes_in_packet,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 QuicTime::Delta SenderDeltaSinceStart() { 96 QuicTime::Delta SenderDeltaSinceStart() {
95 return send_clock_.ApproximateNow().Subtract(send_start_time_); 97 return send_clock_.ApproximateNow().Subtract(send_start_time_);
96 } 98 }
97 99
98 const QuicTime::Delta one_ms_; 100 const QuicTime::Delta one_ms_;
99 const QuicTime::Delta one_s_; 101 const QuicTime::Delta one_s_;
100 const QuicTime::Delta nine_ms_; 102 const QuicTime::Delta nine_ms_;
101 MockClock send_clock_; 103 MockClock send_clock_;
102 MockClock receive_clock_; 104 MockClock receive_clock_;
103 const QuicTime send_start_time_; 105 const QuicTime send_start_time_;
106 RttStats rtt_stats_;
104 InterArrivalSender sender_; 107 InterArrivalSender sender_;
105 QuicPacketSequenceNumber sequence_number_; 108 QuicPacketSequenceNumber sequence_number_;
106 QuicPacketSequenceNumber acked_sequence_number_; 109 QuicPacketSequenceNumber acked_sequence_number_;
107 QuicPacketSequenceNumber feedback_sequence_number_; 110 QuicPacketSequenceNumber feedback_sequence_number_;
108 }; 111 };
109 112
110 TEST_F(InterArrivalSenderTest, ProbeFollowedByFullRampUpCycle) { 113 TEST_F(InterArrivalSenderTest, ProbeFollowedByFullRampUpCycle) {
111 QuicCongestionFeedbackFrame feedback; 114 QuicCongestionFeedbackFrame feedback;
112 // At startup make sure we can send. 115 // At startup make sure we can send.
113 EXPECT_TRUE(sender_.TimeUntilSend(send_clock_.Now(), 116 EXPECT_TRUE(sender_.TimeUntilSend(send_clock_.Now(),
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 acked_sequence_number_ += 2; // Create a loss by not acking both packets. 551 acked_sequence_number_ += 2; // Create a loss by not acking both packets.
549 SendFeedbackMessageNPackets(2, nine_ms_, nine_ms_); 552 SendFeedbackMessageNPackets(2, nine_ms_, nine_ms_);
550 553
551 // Make sure our bitrate is fixed at the expected_min_bitrate. 554 // Make sure our bitrate is fixed at the expected_min_bitrate.
552 EXPECT_EQ(expected_min_bitrate, sender_.BandwidthEstimate()); 555 EXPECT_EQ(expected_min_bitrate, sender_.BandwidthEstimate());
553 } 556 }
554 } 557 }
555 558
556 } // namespace test 559 } // namespace test
557 } // namespace net 560 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/congestion_control/inter_arrival_sender.cc ('k') | net/quic/congestion_control/loss_detection_interface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698