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

Unified Diff: net/quic/core/congestion_control/bbr_sender_test.cc

Issue 2850573002: Landing Recent QUIC changes until 3:35 PM, Apr 26, 2017 UTC-4 (Closed)
Patch Set: Remove Disconnect from ~QuicTestClient Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/core/congestion_control/bbr_sender.cc ('k') | net/quic/core/crypto/crypto_framer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/core/congestion_control/bbr_sender_test.cc
diff --git a/net/quic/core/congestion_control/bbr_sender_test.cc b/net/quic/core/congestion_control/bbr_sender_test.cc
index 872b863460548ab1f64fc2589ca14a3460bb4ec3..d5f18394536eab8c74b1fe6e109517a5715e97da 100644
--- a/net/quic/core/congestion_control/bbr_sender_test.cc
+++ b/net/quic/core/congestion_control/bbr_sender_test.cc
@@ -90,9 +90,14 @@ class BbrSenderTest : public ::testing::Test {
/*connection_id=*/GetPeerInMemoryConnectionId(43)),
receiver_multiplexer_("Receiver multiplexer",
{&receiver_, &competing_receiver_}) {
+ // These will be changed by the appropriate tests as necessary.
+ FLAGS_quic_reloadable_flag_quic_bbr_keep_sending_at_recent_rate = false;
+ FLAGS_quic_reloadable_flag_quic_bbr_slow_recent_delivery = false;
+ FLAGS_quic_reloadable_flag_quic_bbr_add_tso_cwnd = false;
// TODO(ianswett): Determine why tests become flaky with CWND based on SRTT.
FLAGS_quic_reloadable_flag_quic_bbr_base_cwnd_on_srtt = false;
FLAGS_quic_reloadable_flag_quic_bbr_extra_conservation = true;
+ FLAGS_quic_reloadable_flag_quic_bbr_fix_conservation = true;
rtt_stats_ = bbr_sender_.connection()->sent_packet_manager().GetRttStats();
sender_ = SetupBbrSender(&bbr_sender_);
@@ -315,7 +320,7 @@ TEST_F(BbrSenderTest, SimpleTransfer2RTTAggregationBytes) {
// The margin here is high, because the aggregation greatly increases
// smoothed rtt.
EXPECT_GE(kTestRtt * 4, rtt_stats_->smoothed_rtt());
- ExpectApproxEq(kTestRtt, rtt_stats_->min_rtt(), 0.1f);
+ ExpectApproxEq(kTestRtt, rtt_stats_->min_rtt(), 0.12f);
}
TEST_F(BbrSenderTest, SimpleTransfer2RTTAggregationKeepSending) {
@@ -447,8 +452,8 @@ TEST_F(BbrSenderTest,
EXPECT_FALSE(sender_->ExportDebugState().last_sample_is_app_limited);
// The margin here is high, because the aggregation greatly increases
// smoothed rtt.
- EXPECT_GE(kTestRtt * 4, rtt_stats_->smoothed_rtt());
- ExpectApproxEq(kTestRtt, rtt_stats_->min_rtt(), 0.1f);
+ EXPECT_GE(kTestRtt * 5, rtt_stats_->smoothed_rtt());
+ ExpectApproxEq(kTestRtt, rtt_stats_->min_rtt(), 0.25f);
}
// Test the number of losses incurred by the startup phase in a situation when
@@ -460,7 +465,7 @@ TEST_F(BbrSenderTest, PacketLossOnSmallBufferStartup) {
float loss_rate =
static_cast<float>(bbr_sender_.connection()->GetStats().packets_lost) /
bbr_sender_.connection()->GetStats().packets_sent;
- EXPECT_LE(loss_rate, 0.27);
+ EXPECT_LE(loss_rate, 0.31);
}
// Ensures the code transitions loss recovery states correctly (NOT_IN_RECOVERY
@@ -490,12 +495,18 @@ TEST_F(BbrSenderTest, RecoveryStates) {
ASSERT_EQ(BbrSender::CONSERVATION,
sender_->ExportDebugState().recovery_state);
+ const QuicByteCount cwnd_at_recovery_start = sender_->GetCongestionWindow();
simulator_result = simulator_.RunUntilOrTimeout(
- [this]() {
+ [this, cwnd_at_recovery_start]() {
+ // Ensure that the CWND never drops due to conservation.
+ if (sender_->GetCongestionWindow() < cwnd_at_recovery_start) {
+ return true;
+ }
return sender_->ExportDebugState().recovery_state !=
BbrSender::CONSERVATION;
},
timeout);
+ ASSERT_GE(sender_->GetCongestionWindow(), cwnd_at_recovery_start);
ASSERT_TRUE(simulator_result);
ASSERT_EQ(BbrSender::GROWTH, sender_->ExportDebugState().recovery_state);
« no previous file with comments | « net/quic/core/congestion_control/bbr_sender.cc ('k') | net/quic/core/crypto/crypto_framer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698