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

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

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Test for FixRate sender and receiver. 5 // Test for FixRate sender and receiver.
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/congestion_control/fix_rate_receiver.h" 9 #include "net/quic/congestion_control/fix_rate_receiver.h"
10 #include "net/quic/congestion_control/fix_rate_sender.h" 10 #include "net/quic/congestion_control/fix_rate_sender.h"
11 #include "net/quic/congestion_control/rtt_stats.h" 11 #include "net/quic/congestion_control/rtt_stats.h"
12 #include "net/quic/quic_protocol.h" 12 #include "net/quic/quic_protocol.h"
13 #include "net/quic/test_tools/mock_clock.h" 13 #include "net/quic/test_tools/mock_clock.h"
14 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace net { 17 namespace net {
18 namespace test { 18 namespace test {
19 19
20 class FixRateReceiverPeer : public FixRateReceiver { 20 class FixRateReceiverPeer : public FixRateReceiver {
21 public: 21 public:
22 FixRateReceiverPeer() 22 FixRateReceiverPeer() : FixRateReceiver() {}
23 : FixRateReceiver() {
24 }
25 void SetBitrate(QuicBandwidth fix_rate) { 23 void SetBitrate(QuicBandwidth fix_rate) {
26 FixRateReceiver::configured_rate_ = fix_rate; 24 FixRateReceiver::configured_rate_ = fix_rate;
27 } 25 }
28 }; 26 };
29 27
30 class FixRateTest : public ::testing::Test { 28 class FixRateTest : public ::testing::Test {
31 protected: 29 protected:
32 FixRateTest() 30 FixRateTest()
33 : sender_(new FixRateSender(&rtt_stats_)), 31 : sender_(new FixRateSender(&rtt_stats_)),
34 receiver_(new FixRateReceiverPeer()), 32 receiver_(new FixRateReceiverPeer()),
(...skipping 15 matching lines...) Expand all
50 receiver_->RecordIncomingPacket(1, 1, timestamp); 48 receiver_->RecordIncomingPacket(1, 1, timestamp);
51 ASSERT_TRUE(receiver_->GenerateCongestionFeedback(&feedback)); 49 ASSERT_TRUE(receiver_->GenerateCongestionFeedback(&feedback));
52 EXPECT_EQ(kFixRate, feedback.type); 50 EXPECT_EQ(kFixRate, feedback.type);
53 EXPECT_EQ(300000u, feedback.fix_rate.bitrate.ToBytesPerSecond()); 51 EXPECT_EQ(300000u, feedback.fix_rate.bitrate.ToBytesPerSecond());
54 } 52 }
55 53
56 TEST_F(FixRateTest, SenderAPI) { 54 TEST_F(FixRateTest, SenderAPI) {
57 QuicCongestionFeedbackFrame feedback; 55 QuicCongestionFeedbackFrame feedback;
58 feedback.type = kFixRate; 56 feedback.type = kFixRate;
59 feedback.fix_rate.bitrate = QuicBandwidth::FromKBytesPerSecond(300); 57 feedback.fix_rate.bitrate = QuicBandwidth::FromKBytesPerSecond(300);
60 sender_->OnIncomingQuicCongestionFeedbackFrame(feedback, clock_.Now()); 58 sender_->OnIncomingQuicCongestionFeedbackFrame(feedback, clock_.Now());
61 EXPECT_EQ(300000, sender_->BandwidthEstimate().ToBytesPerSecond()); 59 EXPECT_EQ(300000, sender_->BandwidthEstimate().ToBytesPerSecond());
62 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 60 EXPECT_TRUE(
63 HAS_RETRANSMITTABLE_DATA).IsZero()); 61 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA).IsZero());
64 62
65 sender_->OnPacketSent(clock_.Now(), 1, kDefaultMaxPacketSize, 63 sender_->OnPacketSent(
66 HAS_RETRANSMITTABLE_DATA); 64 clock_.Now(), 1, kDefaultMaxPacketSize, HAS_RETRANSMITTABLE_DATA);
67 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 65 EXPECT_TRUE(
68 HAS_RETRANSMITTABLE_DATA).IsZero()); 66 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA).IsZero());
69 sender_->OnPacketSent(clock_.Now(), 2, kDefaultMaxPacketSize, 67 sender_->OnPacketSent(
70 HAS_RETRANSMITTABLE_DATA); 68 clock_.Now(), 2, kDefaultMaxPacketSize, HAS_RETRANSMITTABLE_DATA);
71 sender_->OnPacketSent(clock_.Now(), 3, 600, 69 sender_->OnPacketSent(clock_.Now(), 3, 600, HAS_RETRANSMITTABLE_DATA);
72 HAS_RETRANSMITTABLE_DATA);
73 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), 70 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10),
74 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 71 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
75 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(2)); 72 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(2));
76 EXPECT_EQ(QuicTime::Delta::Infinite(), 73 EXPECT_EQ(QuicTime::Delta::Infinite(),
77 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 74 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
78 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(8)); 75 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(8));
79 sender_->OnPacketAcked(1, kDefaultMaxPacketSize); 76 sender_->OnPacketAcked(1, kDefaultMaxPacketSize);
80 sender_->OnPacketAcked(2, kDefaultMaxPacketSize); 77 sender_->OnPacketAcked(2, kDefaultMaxPacketSize);
81 sender_->OnPacketAcked(3, 600); 78 sender_->OnPacketAcked(3, 600);
82 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 79 EXPECT_TRUE(
83 HAS_RETRANSMITTABLE_DATA).IsZero()); 80 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA).IsZero());
84 } 81 }
85 82
86 TEST_F(FixRateTest, FixRatePacing) { 83 TEST_F(FixRateTest, FixRatePacing) {
87 const QuicByteCount packet_size = 1200; 84 const QuicByteCount packet_size = 1200;
88 const QuicBandwidth bitrate = QuicBandwidth::FromKBytesPerSecond(240); 85 const QuicBandwidth bitrate = QuicBandwidth::FromKBytesPerSecond(240);
89 const int64 num_packets = 200; 86 const int64 num_packets = 200;
90 QuicCongestionFeedbackFrame feedback; 87 QuicCongestionFeedbackFrame feedback;
91 receiver_->SetBitrate(QuicBandwidth::FromKBytesPerSecond(240)); 88 receiver_->SetBitrate(QuicBandwidth::FromKBytesPerSecond(240));
92 ASSERT_TRUE(receiver_->GenerateCongestionFeedback(&feedback)); 89 ASSERT_TRUE(receiver_->GenerateCongestionFeedback(&feedback));
93 sender_->OnIncomingQuicCongestionFeedbackFrame(feedback, clock_.Now()); 90 sender_->OnIncomingQuicCongestionFeedbackFrame(feedback, clock_.Now());
94 QuicTime acc_advance_time(QuicTime::Zero()); 91 QuicTime acc_advance_time(QuicTime::Zero());
95 QuicPacketSequenceNumber sequence_number = 0; 92 QuicPacketSequenceNumber sequence_number = 0;
96 for (int i = 0; i < num_packets; i += 2) { 93 for (int i = 0; i < num_packets; i += 2) {
97 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 94 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)
98 HAS_RETRANSMITTABLE_DATA).IsZero()); 95 .IsZero());
99 sender_->OnPacketSent(clock_.Now(), sequence_number++, packet_size, 96 sender_->OnPacketSent(
100 HAS_RETRANSMITTABLE_DATA); 97 clock_.Now(), sequence_number++, packet_size, HAS_RETRANSMITTABLE_DATA);
101 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 98 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)
102 HAS_RETRANSMITTABLE_DATA).IsZero()); 99 .IsZero());
103 sender_->OnPacketSent(clock_.Now(), sequence_number++, packet_size, 100 sender_->OnPacketSent(
104 HAS_RETRANSMITTABLE_DATA); 101 clock_.Now(), sequence_number++, packet_size, HAS_RETRANSMITTABLE_DATA);
105 QuicTime::Delta advance_time = 102 QuicTime::Delta advance_time =
106 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA); 103 sender_->TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA);
107 clock_.AdvanceTime(advance_time); 104 clock_.AdvanceTime(advance_time);
108 sender_->OnPacketAcked(sequence_number - 1, packet_size); 105 sender_->OnPacketAcked(sequence_number - 1, packet_size);
109 sender_->OnPacketAcked(sequence_number - 2, packet_size); 106 sender_->OnPacketAcked(sequence_number - 2, packet_size);
110 acc_advance_time = acc_advance_time.Add(advance_time); 107 acc_advance_time = acc_advance_time.Add(advance_time);
111 } 108 }
112 EXPECT_EQ(num_packets * packet_size * 1000000 / bitrate.ToBytesPerSecond(), 109 EXPECT_EQ(
113 static_cast<uint64>(acc_advance_time.Subtract(start_) 110 num_packets * packet_size * 1000000 / bitrate.ToBytesPerSecond(),
114 .ToMicroseconds())); 111 static_cast<uint64>(acc_advance_time.Subtract(start_).ToMicroseconds()));
115 } 112 }
116 113
117 } // namespace test 114 } // namespace test
118 } // namespace net 115 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698