| Index: net/quic/quic_sent_packet_manager_test.cc
|
| diff --git a/net/quic/quic_sent_packet_manager_test.cc b/net/quic/quic_sent_packet_manager_test.cc
|
| index 5eabf86a5a617883cc574e68515fc41d70e77eec..bf8c99cb1c8198d7ed3f51f77cca7c1863690e56 100644
|
| --- a/net/quic/quic_sent_packet_manager_test.cc
|
| +++ b/net/quic/quic_sent_packet_manager_test.cc
|
| @@ -15,6 +15,7 @@
|
| using std::vector;
|
| using testing::AnyNumber;
|
| using testing::ElementsAre;
|
| +using testing::IsEmpty;
|
| using testing::Pair;
|
| using testing::Pointwise;
|
| using testing::Return;
|
| @@ -99,18 +100,14 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
|
|
| void ExpectAck(QuicPacketSequenceNumber largest_observed) {
|
| EXPECT_CALL(*send_algorithm_, OnCongestionEvent(
|
| - true, _, ElementsAre(Pair(largest_observed, _)), _));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| + true, _, ElementsAre(Pair(largest_observed, _)), IsEmpty()));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| }
|
|
|
| void ExpectUpdatedRtt(QuicPacketSequenceNumber largest_observed) {
|
| EXPECT_CALL(*send_algorithm_,
|
| - OnCongestionEvent(true, _, _, _));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| + OnCongestionEvent(true, _, IsEmpty(), IsEmpty()));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| }
|
|
|
| void ExpectAckAndLoss(bool rtt_updated,
|
| @@ -119,9 +116,7 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| EXPECT_CALL(*send_algorithm_, OnCongestionEvent(
|
| rtt_updated, _, ElementsAre(Pair(largest_observed, _)),
|
| ElementsAre(Pair(lost_packet, _))));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| }
|
|
|
| // |packets_acked| and |packets_lost| should be in sequence number order.
|
| @@ -142,9 +137,7 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
|
| OnCongestionEvent(rtt_updated, _,
|
| Pointwise(KeyEq(), ack_vector),
|
| Pointwise(KeyEq(), lost_vector)));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillRepeatedly(Return(100 * kDefaultTCPMSS));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_)).
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange()).
|
| Times(AnyNumber());
|
| }
|
|
|
| @@ -395,9 +388,7 @@ TEST_F(QuicSentPacketManagerTest, RetransmitTwiceThenAckPreviousBeforeSend) {
|
|
|
| // Fire the RTO, which will mark 2 for retransmission (but will not send it).
|
| EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(2 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| manager_.OnRetransmissionTimeout();
|
| EXPECT_TRUE(manager_.HasPendingRetransmissions());
|
|
|
| @@ -839,9 +830,7 @@ TEST_F(QuicSentPacketManagerTest, TailLossProbeThenRTO) {
|
|
|
| // The final RTO abandons all of them.
|
| EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(2 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| manager_.OnRetransmissionTimeout();
|
| EXPECT_TRUE(manager_.HasPendingRetransmissions());
|
| EXPECT_EQ(2u, stats_.tlp_count);
|
| @@ -1077,9 +1066,7 @@ TEST_F(QuicSentPacketManagerTest, RetransmissionTimeout) {
|
| }
|
|
|
| EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(2 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_FALSE(manager_.MaybeRetransmitTailLossProbe());
|
| manager_.OnRetransmissionTimeout();
|
| }
|
| @@ -1171,9 +1158,7 @@ TEST_F(QuicSentPacketManagerTest, GetTransmissionTimeRTO) {
|
| EXPECT_EQ(expected_time, manager_.GetRetransmissionTime());
|
|
|
| // Retransmit the packet by invoking the retransmission timeout.
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(2 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| clock_.AdvanceTime(expected_rto_delay);
|
| manager_.OnRetransmissionTimeout();
|
| @@ -1219,9 +1204,7 @@ TEST_F(QuicSentPacketManagerTest, GetTransmissionDelayMin) {
|
| EXPECT_EQ(delay,
|
| QuicSentPacketManagerPeer::GetRetransmissionDelay(&manager_));
|
| delay = delay.Add(delay);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(2 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| manager_.OnRetransmissionTimeout();
|
| RetransmitNextPacket(i + 2);
|
| @@ -1247,9 +1230,7 @@ TEST_F(QuicSentPacketManagerTest, GetTransmissionDelay) {
|
| EXPECT_EQ(delay,
|
| QuicSentPacketManagerPeer::GetRetransmissionDelay(&manager_));
|
| delay = delay.Add(delay);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(2 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
|
| manager_.OnRetransmissionTimeout();
|
| RetransmitNextPacket(i + 2);
|
| @@ -1297,9 +1278,7 @@ TEST_F(QuicSentPacketManagerTest, NegotiateTimeLossDetectionFromOptions) {
|
| options.push_back(kTIME);
|
| QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
|
| EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| manager_.SetFromConfig(config);
|
|
|
| EXPECT_EQ(kTime,
|
| @@ -1314,7 +1293,7 @@ TEST_F(QuicSentPacketManagerTest, NegotiateCongestionControlFromOptions) {
|
|
|
| options.push_back(kRENO);
|
| QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| manager_.SetFromConfig(config);
|
| EXPECT_EQ(kReno, QuicSentPacketManagerPeer::GetSendAlgorithm(
|
| manager_)->GetCongestionControlType());
|
| @@ -1324,7 +1303,7 @@ TEST_F(QuicSentPacketManagerTest, NegotiateCongestionControlFromOptions) {
|
| options.clear();
|
| options.push_back(kTBBR);
|
| QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| manager_.SetFromConfig(config);
|
| EXPECT_EQ(kBBR, QuicSentPacketManagerPeer::GetSendAlgorithm(
|
| manager_)->GetCongestionControlType());
|
| @@ -1337,33 +1316,44 @@ TEST_F(QuicSentPacketManagerTest, NegotiateNumConnectionsFromOptions) {
|
|
|
| options.push_back(k1CON);
|
| QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_CALL(*send_algorithm_, SetNumEmulatedConnections(1));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| manager_.SetFromConfig(config);
|
|
|
| QuicSentPacketManagerPeer::SetIsServer(&manager_, false);
|
| QuicConfig client_config;
|
| client_config.SetConnectionOptionsToSend(options);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_CALL(*send_algorithm_, SetNumEmulatedConnections(1));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| manager_.SetFromConfig(client_config);
|
| }
|
|
|
| +TEST_F(QuicSentPacketManagerTest, NegotiateNConnectionFromOptions) {
|
| + // By default, changing the number of open streams does nothing.
|
| + manager_.SetNumOpenStreams(5);
|
| +
|
| + QuicConfig config;
|
| + QuicTagVector options;
|
| +
|
| + options.push_back(kNCON);
|
| + QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| + EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| + manager_.SetFromConfig(config);
|
| +
|
| + EXPECT_CALL(*send_algorithm_, SetNumEmulatedConnections(5));
|
| + manager_.SetNumOpenStreams(5);
|
| +}
|
| +
|
| TEST_F(QuicSentPacketManagerTest, NegotiateNoTLPFromOptionsAtServer) {
|
| QuicConfig config;
|
| QuicTagVector options;
|
|
|
| options.push_back(kNTLP);
|
| QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| manager_.SetFromConfig(config);
|
| EXPECT_EQ(0u, QuicSentPacketManagerPeer::GetMaxTailLossProbes(&manager_));
|
| @@ -1376,9 +1366,7 @@ TEST_F(QuicSentPacketManagerTest, NegotiateNoTLPFromOptionsAtClient) {
|
| options.push_back(kNTLP);
|
| QuicSentPacketManagerPeer::SetIsServer(&manager_, false);
|
| client_config.SetConnectionOptionsToSend(options);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| manager_.SetFromConfig(client_config);
|
| EXPECT_EQ(0u, QuicSentPacketManagerPeer::GetMaxTailLossProbes(&manager_));
|
| @@ -1391,9 +1379,7 @@ TEST_F(QuicSentPacketManagerTest, NegotiatePacingFromOptions) {
|
| QuicTagVector options;
|
| options.push_back(kPACE);
|
| QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| manager_.SetFromConfig(config);
|
|
|
| @@ -1408,9 +1394,7 @@ TEST_F(QuicSentPacketManagerTest, NegotiateReceiveWindowFromOptions) {
|
| QuicConfig client_config;
|
| QuicConfigPeer::SetReceivedSocketReceiveBuffer(&client_config, 1024);
|
| EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| manager_.SetFromConfig(client_config);
|
|
|
| EXPECT_EQ(kMinSocketReceiveBuffer,
|
| @@ -1441,9 +1425,7 @@ TEST_F(QuicSentPacketManagerTest, UseInitialRoundTripTimeToSend) {
|
| QuicConfig config;
|
| config.SetInitialRoundTripTimeUsToSend(initial_rtt_us);
|
| EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| - EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange(_));
|
| - EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
|
| - .WillOnce(Return(100 * kDefaultTCPMSS));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
|
| manager_.SetFromConfig(config);
|
|
|
| EXPECT_EQ(initial_rtt_us,
|
|
|