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

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

Issue 23597045: Land Recent QUIC changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merged QuicPriority to RequestPriority changes Created 7 years, 3 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"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 56
57 TEST_F(FixRateTest, SenderAPI) { 57 TEST_F(FixRateTest, SenderAPI) {
58 QuicCongestionFeedbackFrame feedback; 58 QuicCongestionFeedbackFrame feedback;
59 feedback.type = kFixRate; 59 feedback.type = kFixRate;
60 feedback.fix_rate.bitrate = QuicBandwidth::FromKBytesPerSecond(300); 60 feedback.fix_rate.bitrate = QuicBandwidth::FromKBytesPerSecond(300);
61 sender_->OnIncomingQuicCongestionFeedbackFrame(feedback, clock_.Now(), 61 sender_->OnIncomingQuicCongestionFeedbackFrame(feedback, clock_.Now(),
62 unused_packet_map_); 62 unused_packet_map_);
63 EXPECT_EQ(300000, sender_->BandwidthEstimate().ToBytesPerSecond()); 63 EXPECT_EQ(300000, sender_->BandwidthEstimate().ToBytesPerSecond());
64 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 64 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(),
65 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE).IsZero()); 65 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE).IsZero());
66 sender_->SentPacket(clock_.Now(), 1, kMaxPacketSize, NOT_RETRANSMISSION); 66 sender_->SentPacket(clock_.Now(), 1, kMaxPacketSize, NOT_RETRANSMISSION,
67 HAS_RETRANSMITTABLE_DATA);
67 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 68 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(),
68 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE).IsZero()); 69 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE).IsZero());
69 sender_->SentPacket(clock_.Now(), 2, kMaxPacketSize, NOT_RETRANSMISSION); 70 sender_->SentPacket(clock_.Now(), 2, kMaxPacketSize, NOT_RETRANSMISSION,
70 sender_->SentPacket(clock_.Now(), 3, 600, NOT_RETRANSMISSION); 71 HAS_RETRANSMITTABLE_DATA);
72 sender_->SentPacket(clock_.Now(), 3, 600, NOT_RETRANSMISSION,
73 HAS_RETRANSMITTABLE_DATA);
71 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10), 74 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(10),
72 sender_->TimeUntilSend(clock_.Now(), 75 sender_->TimeUntilSend(clock_.Now(),
73 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE)); 76 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE));
74 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(2)); 77 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(2));
75 EXPECT_EQ(QuicTime::Delta::Infinite(), sender_->TimeUntilSend(clock_.Now(), 78 EXPECT_EQ(QuicTime::Delta::Infinite(), sender_->TimeUntilSend(clock_.Now(),
76 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE)); 79 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE));
77 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(8)); 80 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(8));
78 sender_->OnIncomingAck(1, kMaxPacketSize, rtt_); 81 sender_->OnIncomingAck(1, kMaxPacketSize, rtt_);
79 sender_->OnIncomingAck(2, kMaxPacketSize, rtt_); 82 sender_->OnIncomingAck(2, kMaxPacketSize, rtt_);
80 sender_->OnIncomingAck(3, 600, rtt_); 83 sender_->OnIncomingAck(3, 600, rtt_);
(...skipping 10 matching lines...) Expand all
91 ASSERT_TRUE(receiver_->GenerateCongestionFeedback(&feedback)); 94 ASSERT_TRUE(receiver_->GenerateCongestionFeedback(&feedback));
92 sender_->OnIncomingQuicCongestionFeedbackFrame(feedback, clock_.Now(), 95 sender_->OnIncomingQuicCongestionFeedbackFrame(feedback, clock_.Now(),
93 unused_packet_map_); 96 unused_packet_map_);
94 QuicTime acc_advance_time(QuicTime::Zero()); 97 QuicTime acc_advance_time(QuicTime::Zero());
95 QuicPacketSequenceNumber sequence_number = 0; 98 QuicPacketSequenceNumber sequence_number = 0;
96 for (int i = 0; i < num_packets; i += 2) { 99 for (int i = 0; i < num_packets; i += 2) {
97 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 100 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(),
98 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, 101 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA,
99 NOT_HANDSHAKE).IsZero()); 102 NOT_HANDSHAKE).IsZero());
100 sender_->SentPacket(clock_.Now(), sequence_number++, packet_size, 103 sender_->SentPacket(clock_.Now(), sequence_number++, packet_size,
101 NOT_RETRANSMISSION); 104 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
102 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(), 105 EXPECT_TRUE(sender_->TimeUntilSend(clock_.Now(),
103 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, 106 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA,
104 NOT_HANDSHAKE).IsZero()); 107 NOT_HANDSHAKE).IsZero());
105 sender_->SentPacket(clock_.Now(), sequence_number++, packet_size, 108 sender_->SentPacket(clock_.Now(), sequence_number++, packet_size,
106 NOT_RETRANSMISSION); 109 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
107 QuicTime::Delta advance_time = sender_->TimeUntilSend(clock_.Now(), 110 QuicTime::Delta advance_time = sender_->TimeUntilSend(clock_.Now(),
108 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE); 111 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA, NOT_HANDSHAKE);
109 clock_.AdvanceTime(advance_time); 112 clock_.AdvanceTime(advance_time);
110 sender_->OnIncomingAck(sequence_number - 1, packet_size, rtt_); 113 sender_->OnIncomingAck(sequence_number - 1, packet_size, rtt_);
111 sender_->OnIncomingAck(sequence_number - 2, packet_size, rtt_); 114 sender_->OnIncomingAck(sequence_number - 2, packet_size, rtt_);
112 acc_advance_time = acc_advance_time.Add(advance_time); 115 acc_advance_time = acc_advance_time.Add(advance_time);
113 } 116 }
114 EXPECT_EQ(num_packets * packet_size * 1000000 / bitrate.ToBytesPerSecond(), 117 EXPECT_EQ(num_packets * packet_size * 1000000 / bitrate.ToBytesPerSecond(),
115 static_cast<uint64>(acc_advance_time.Subtract(start_) 118 static_cast<uint64>(acc_advance_time.Subtract(start_)
116 .ToMicroseconds())); 119 .ToMicroseconds()));
117 } 120 }
118 121
119 } // namespace test 122 } // namespace test
120 } // namespace net 123 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/congestion_control/fix_rate_sender.cc ('k') | net/quic/congestion_control/inter_arrival_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698