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

Side by Side Diff: net/quic/quic_sent_packet_manager_test.cc

Issue 1037643002: Land Recent QUIC Changes until 03/22/2015. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: deleted duplicated using statements in net/tools/quic/test_tools/quic_test_utils.cc Created 5 years, 9 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
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_server_session.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "net/quic/quic_sent_packet_manager.h" 5 #include "net/quic/quic_sent_packet_manager.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/quic_flags.h" 8 #include "net/quic/quic_flags.h"
9 #include "net/quic/test_tools/quic_config_peer.h" 9 #include "net/quic/test_tools/quic_config_peer.h"
10 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h" 10 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h"
(...skipping 1619 matching lines...) Expand 10 before | Expand all | Expand 10 after
1630 } 1630 }
1631 1631
1632 TEST_F(QuicSentPacketManagerTest, NegotiateReceiveWindowFromOptions) { 1632 TEST_F(QuicSentPacketManagerTest, NegotiateReceiveWindowFromOptions) {
1633 EXPECT_EQ(kDefaultSocketReceiveBuffer, 1633 EXPECT_EQ(kDefaultSocketReceiveBuffer,
1634 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_)); 1634 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_));
1635 1635
1636 // Try to set a size below the minimum and ensure it gets set to the min. 1636 // Try to set a size below the minimum and ensure it gets set to the min.
1637 QuicConfig client_config; 1637 QuicConfig client_config;
1638 QuicConfigPeer::SetReceivedSocketReceiveBuffer(&client_config, 1024); 1638 QuicConfigPeer::SetReceivedSocketReceiveBuffer(&client_config, 1024);
1639 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _)); 1639 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _));
1640 if (FLAGS_quic_limit_max_cwnd_to_receive_buffer) {
1641 EXPECT_CALL(*send_algorithm_,
1642 SetMaxCongestionWindow(kMinSocketReceiveBuffer * 0.95));
1643 }
1640 EXPECT_CALL(*send_algorithm_, PacingRate()) 1644 EXPECT_CALL(*send_algorithm_, PacingRate())
1641 .WillRepeatedly(Return(QuicBandwidth::Zero())); 1645 .WillRepeatedly(Return(QuicBandwidth::Zero()));
1642 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange()); 1646 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
1643 EXPECT_CALL(*network_change_visitor_, OnRttChange()); 1647 EXPECT_CALL(*network_change_visitor_, OnRttChange());
1644 manager_.SetFromConfig(client_config); 1648 manager_.SetFromConfig(client_config);
1645 1649
1646 EXPECT_EQ(kMinSocketReceiveBuffer, 1650 EXPECT_EQ(kMinSocketReceiveBuffer,
1647 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_)); 1651 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_));
1648 1652
1649 // Ensure the smaller send window only allows 16 packets to be sent. 1653 // Ensure the smaller send window only allows 16 packets to be sent.
1650 for (QuicPacketSequenceNumber i = 1; i <= 16; ++i) { 1654 for (QuicPacketSequenceNumber i = 1; i <= 16; ++i) {
1651 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return( 1655 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return(
1652 QuicTime::Delta::Zero())); 1656 QuicTime::Delta::Zero()));
1653 EXPECT_EQ(QuicTime::Delta::Zero(), 1657 EXPECT_EQ(QuicTime::Delta::Zero(),
1654 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 1658 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1655 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, BytesInFlight(), i, 1659 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, BytesInFlight(), i,
1656 1024, HAS_RETRANSMITTABLE_DATA)) 1660 1024, HAS_RETRANSMITTABLE_DATA))
1657 .WillOnce(Return(true)); 1661 .WillOnce(Return(true));
1658 SerializedPacket packet(CreatePacket(i, true)); 1662 SerializedPacket packet(CreatePacket(i, true));
1659 manager_.OnPacketSent(&packet, 0, clock_.Now(), 1024, 1663 manager_.OnPacketSent(&packet, 0, clock_.Now(), 1024,
1660 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA); 1664 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
1661 } 1665 }
1666 if (FLAGS_quic_limit_max_cwnd_to_receive_buffer) {
1667 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _))
1668 .WillOnce(Return(QuicTime::Delta::Infinite()));
1669 }
1662 EXPECT_EQ(QuicTime::Delta::Infinite(), 1670 EXPECT_EQ(QuicTime::Delta::Infinite(),
1663 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 1671 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1664 } 1672 }
1665 1673
1666 TEST_F(QuicSentPacketManagerTest, ReceiveWindowLimited) { 1674 TEST_F(QuicSentPacketManagerTest, ReceiveWindowLimited) {
1667 EXPECT_EQ(kDefaultSocketReceiveBuffer, 1675 EXPECT_EQ(kDefaultSocketReceiveBuffer,
1668 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_)); 1676 QuicSentPacketManagerPeer::GetReceiveWindow(&manager_));
1669 1677
1670 // Ensure the smaller send window only allows 256 * 0.95 packets to be sent. 1678 // Ensure the smaller send window only allows 256 * 0.95 packets to be sent.
1671 for (QuicPacketSequenceNumber i = 1; i <= 244; ++i) { 1679 for (QuicPacketSequenceNumber i = 1; i <= 244; ++i) {
1672 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return( 1680 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return(
1673 QuicTime::Delta::Zero())); 1681 QuicTime::Delta::Zero()));
1674 EXPECT_EQ(QuicTime::Delta::Zero(), 1682 EXPECT_EQ(QuicTime::Delta::Zero(),
1675 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 1683 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1676 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, BytesInFlight(), i, 1684 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, BytesInFlight(), i,
1677 1024, HAS_RETRANSMITTABLE_DATA)) 1685 1024, HAS_RETRANSMITTABLE_DATA))
1678 .WillOnce(Return(true)); 1686 .WillOnce(Return(true));
1679 SerializedPacket packet(CreatePacket(i, true)); 1687 SerializedPacket packet(CreatePacket(i, true));
1680 manager_.OnPacketSent(&packet, 0, clock_.Now(), 1024, 1688 manager_.OnPacketSent(&packet, 0, clock_.Now(), 1024,
1681 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA); 1689 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA);
1682 } 1690 }
1691 if (FLAGS_quic_limit_max_cwnd_to_receive_buffer) {
1692 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _))
1693 .WillOnce(Return(QuicTime::Delta::Infinite()));
1694 }
1683 EXPECT_EQ(QuicTime::Delta::Infinite(), 1695 EXPECT_EQ(QuicTime::Delta::Infinite(),
1684 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 1696 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
1685 } 1697 }
1686 1698
1687 TEST_F(QuicSentPacketManagerTest, UseInitialRoundTripTimeToSend) { 1699 TEST_F(QuicSentPacketManagerTest, UseInitialRoundTripTimeToSend) {
1688 uint32 initial_rtt_us = 325000; 1700 uint32 initial_rtt_us = 325000;
1689 EXPECT_NE(initial_rtt_us, 1701 EXPECT_NE(initial_rtt_us,
1690 manager_.GetRttStats()->smoothed_rtt().ToMicroseconds()); 1702 manager_.GetRttStats()->smoothed_rtt().ToMicroseconds());
1691 1703
1692 QuicConfig config; 1704 QuicConfig config;
1693 config.SetInitialRoundTripTimeUsToSend(initial_rtt_us); 1705 config.SetInitialRoundTripTimeUsToSend(initial_rtt_us);
1694 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _)); 1706 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _));
1695 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange()); 1707 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
1696 EXPECT_CALL(*network_change_visitor_, OnRttChange()); 1708 EXPECT_CALL(*network_change_visitor_, OnRttChange());
1697 manager_.SetFromConfig(config); 1709 manager_.SetFromConfig(config);
1698 1710
1699 EXPECT_EQ(0, manager_.GetRttStats()->smoothed_rtt().ToMicroseconds()); 1711 EXPECT_EQ(0, manager_.GetRttStats()->smoothed_rtt().ToMicroseconds());
1700 EXPECT_EQ(initial_rtt_us, manager_.GetRttStats()->initial_rtt_us()); 1712 EXPECT_EQ(initial_rtt_us, manager_.GetRttStats()->initial_rtt_us());
1701 } 1713 }
1702 1714
1703 TEST_F(QuicSentPacketManagerTest, ResumeConnectionState) { 1715 TEST_F(QuicSentPacketManagerTest, ResumeConnectionState) {
1704 // The sent packet manager should use the RTT from CachedNetworkParameters if 1716 // The sent packet manager should use the RTT from CachedNetworkParameters if
1705 // it is provided. 1717 // it is provided.
1706 const int kRttMs = 1234; 1718 const int kRttMs = 1234;
1707 CachedNetworkParameters cached_network_params; 1719 CachedNetworkParameters cached_network_params;
1708 cached_network_params.set_min_rtt_ms(kRttMs); 1720 cached_network_params.set_min_rtt_ms(kRttMs);
1709 1721
1710 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_)); 1722 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_, false));
1711 manager_.ResumeConnectionState(cached_network_params); 1723 manager_.ResumeConnectionState(cached_network_params, false);
1712 EXPECT_EQ(kRttMs * kNumMicrosPerMilli, 1724 EXPECT_EQ(kRttMs * kNumMicrosPerMilli,
1713 static_cast<uint64>(manager_.GetRttStats()->initial_rtt_us())); 1725 static_cast<uint64>(manager_.GetRttStats()->initial_rtt_us()));
1714 } 1726 }
1715 1727
1716 } // namespace 1728 } // namespace
1717 } // namespace test 1729 } // namespace test
1718 } // namespace net 1730 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_server_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698