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

Unified Diff: net/quic/congestion_control/tcp_cubic_sender_test.cc

Issue 734063004: Update from https://crrev.com/304418 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/congestion_control/tcp_cubic_sender.cc ('k') | net/quic/crypto/cached_network_parameters.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/congestion_control/tcp_cubic_sender_test.cc
diff --git a/net/quic/congestion_control/tcp_cubic_sender_test.cc b/net/quic/congestion_control/tcp_cubic_sender_test.cc
index 48a1300ce1a9fc118191460d43dfead4e2221836..427dd8c2ba891cdfaf5cc2dc85a73d2b2eb224ac 100644
--- a/net/quic/congestion_control/tcp_cubic_sender_test.cc
+++ b/net/quic/congestion_control/tcp_cubic_sender_test.cc
@@ -21,19 +21,22 @@ using std::min;
namespace net {
namespace test {
-const uint32 kDefaultWindowTCP = kDefaultInitialWindow * kDefaultTCPMSS;
+// TODO(ianswett): A number of theses tests were written with the assumption of
+// an initial CWND of 10. They have carefully calculated values which should be
+// updated to be based on kInitialCongestionWindowInsecure.
+const uint32 kInitialCongestionWindowPackets = 10;
+const uint32 kDefaultWindowTCP =
+ kInitialCongestionWindowPackets * kDefaultTCPMSS;
const float kRenoBeta = 0.7f; // Reno backoff factor.
-// TODO(ianswett): Remove 10000 once b/10075719 is fixed.
-const QuicPacketCount kDefaultMaxCongestionWindowTCP = 10000;
-
class TcpCubicSenderPeer : public TcpCubicSender {
public:
TcpCubicSenderPeer(const QuicClock* clock,
bool reno,
QuicPacketCount max_tcp_congestion_window)
: TcpCubicSender(
- clock, &rtt_stats_, reno, max_tcp_congestion_window, &stats_) {
+ clock, &rtt_stats_, reno, kInitialCongestionWindowPackets,
+ max_tcp_congestion_window, &stats_) {
}
QuicPacketCount congestion_window() {
@@ -61,7 +64,7 @@ class TcpCubicSenderTest : public ::testing::Test {
TcpCubicSenderTest()
: one_ms_(QuicTime::Delta::FromMilliseconds(1)),
sender_(new TcpCubicSenderPeer(&clock_, true,
- kDefaultMaxCongestionWindowTCP)),
+ kMaxTcpCongestionWindow)),
receiver_(new TcpReceiver()),
sequence_number_(1),
acked_sequence_number_(0),
@@ -209,7 +212,7 @@ TEST_F(TcpCubicSenderTest, ExponentialSlowStart) {
TEST_F(TcpCubicSenderTest, SlowStartAckTrain) {
sender_->SetNumEmulatedConnections(1);
- EXPECT_EQ(kDefaultMaxCongestionWindowTCP * kDefaultTCPMSS,
+ EXPECT_EQ(kMaxTcpCongestionWindow * kDefaultTCPMSS,
sender_->GetSlowStartThreshold());
// Make sure that we fall out of slow start when we send ACK train longer
@@ -305,7 +308,7 @@ TEST_F(TcpCubicSenderTest, SlowStartPacketLoss) {
TEST_F(TcpCubicSenderTest, NoPRRWhenLessThanOnePacketInFlight) {
SendAvailableSendWindow();
- LoseNPackets(kDefaultInitialWindow - 1);
+ LoseNPackets(kInitialCongestionWindowPackets - 1);
AckNPackets(1);
// PRR will allow 2 packets for every ack during recovery.
EXPECT_EQ(2, SendAvailableSendWindow());
@@ -424,7 +427,7 @@ TEST_F(TcpCubicSenderTest, SlowStartBurstPacketLossPRR) {
TEST_F(TcpCubicSenderTest, RTOCongestionWindowAndRevert) {
EXPECT_EQ(kDefaultWindowTCP, sender_->GetCongestionWindow());
- EXPECT_EQ(10000u, sender_->slowstart_threshold());
+ EXPECT_EQ(kMaxTcpCongestionWindow, sender_->slowstart_threshold());
// Expect the window to decrease to the minimum once the RTO fires
// and slow start threshold to be set to 1/2 of the CWND.
@@ -435,7 +438,7 @@ TEST_F(TcpCubicSenderTest, RTOCongestionWindowAndRevert) {
// Now repair the RTO and ensure the slowstart threshold reverts.
sender_->RevertRetransmissionTimeout();
EXPECT_EQ(kDefaultWindowTCP, sender_->GetCongestionWindow());
- EXPECT_EQ(10000u, sender_->slowstart_threshold());
+ EXPECT_EQ(kMaxTcpCongestionWindow, sender_->slowstart_threshold());
}
TEST_F(TcpCubicSenderTest, RTOCongestionWindowNoRetransmission) {
@@ -574,20 +577,26 @@ TEST_F(TcpCubicSenderTest, DontTrackAckPackets) {
}
TEST_F(TcpCubicSenderTest, ConfigureMaxInitialWindow) {
- QuicPacketCount congestion_window = sender_->congestion_window();
QuicConfig config;
- QuicConfigPeer::SetReceivedInitialWindow(&config, 2 * congestion_window);
-
- sender_->SetFromConfig(config, true);
- EXPECT_EQ(2 * congestion_window, sender_->congestion_window());
- // Verify that kCOPT: kIW10 forces the congestion window to the
- // default of 10 regardless of ReceivedInitialWindow.
+ // Verify that kCOPT: kIW10 forces the congestion window to the default of 10.
QuicTagVector options;
options.push_back(kIW10);
QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
- sender_->SetFromConfig(config, true);
- EXPECT_EQ(congestion_window, sender_->congestion_window());
+ sender_->SetFromConfig(config,
+ /* is_server= */ true,
+ /* using_pacing= */ false);
+ EXPECT_EQ(10u, sender_->congestion_window());
+}
+
+TEST_F(TcpCubicSenderTest, DisableAckTrainDetectionWithPacing) {
+ EXPECT_TRUE(sender_->hybrid_slow_start().ack_train_detection());
+
+ QuicConfig config;
+ sender_->SetFromConfig(config,
+ /* is_server= */ true,
+ /* using_pacing= */ true);
+ EXPECT_FALSE(sender_->hybrid_slow_start().ack_train_detection());
}
TEST_F(TcpCubicSenderTest, 2ConnectionCongestionAvoidanceAtEndOfRecovery) {
« no previous file with comments | « net/quic/congestion_control/tcp_cubic_sender.cc ('k') | net/quic/crypto/cached_network_parameters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698