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

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

Issue 851503003: Update from https://crrev.com/311076 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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.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 781 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 } 792 }
793 793
794 TEST_F(QuicSentPacketManagerTest, TailLossProbeThenRTO) { 794 TEST_F(QuicSentPacketManagerTest, TailLossProbeThenRTO) {
795 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2); 795 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2);
796 796
797 // Send 100 packets. 797 // Send 100 packets.
798 const size_t kNumSentPackets = 100; 798 const size_t kNumSentPackets = 100;
799 for (size_t i = 1; i <= kNumSentPackets; ++i) { 799 for (size_t i = 1; i <= kNumSentPackets; ++i) {
800 SendDataPacket(i); 800 SendDataPacket(i);
801 } 801 }
802 QuicTime rto_packet_time = clock_.Now();
803 // Advance the time.
804 clock_.AdvanceTime(manager_.GetRetransmissionTime().Subtract(clock_.Now()));
802 805
803 // The first tail loss probe retransmits 1 packet. 806 // The first tail loss probe retransmits 1 packet.
804 manager_.OnRetransmissionTimeout(); 807 manager_.OnRetransmissionTimeout();
805 EXPECT_EQ(QuicTime::Delta::Zero(), 808 EXPECT_EQ(QuicTime::Delta::Zero(),
806 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 809 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
807 EXPECT_FALSE(manager_.HasPendingRetransmissions()); 810 EXPECT_FALSE(manager_.HasPendingRetransmissions());
808 manager_.MaybeRetransmitTailLossProbe(); 811 manager_.MaybeRetransmitTailLossProbe();
809 EXPECT_TRUE(manager_.HasPendingRetransmissions()); 812 EXPECT_TRUE(manager_.HasPendingRetransmissions());
810 RetransmitNextPacket(101); 813 RetransmitNextPacket(101);
811 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return( 814 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return(
812 QuicTime::Delta::Infinite())); 815 QuicTime::Delta::Infinite()));
813 EXPECT_EQ(QuicTime::Delta::Infinite(), 816 EXPECT_EQ(QuicTime::Delta::Infinite(),
814 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 817 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
815 EXPECT_FALSE(manager_.HasPendingRetransmissions()); 818 EXPECT_FALSE(manager_.HasPendingRetransmissions());
819 clock_.AdvanceTime(manager_.GetRetransmissionTime().Subtract(clock_.Now()));
816 820
817 // The second tail loss probe retransmits 1 packet. 821 // The second tail loss probe retransmits 1 packet.
818 manager_.OnRetransmissionTimeout(); 822 manager_.OnRetransmissionTimeout();
819 EXPECT_EQ(QuicTime::Delta::Zero(), 823 EXPECT_EQ(QuicTime::Delta::Zero(),
820 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 824 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
821 EXPECT_FALSE(manager_.HasPendingRetransmissions()); 825 EXPECT_FALSE(manager_.HasPendingRetransmissions());
822 EXPECT_TRUE(manager_.MaybeRetransmitTailLossProbe()); 826 EXPECT_TRUE(manager_.MaybeRetransmitTailLossProbe());
823 EXPECT_TRUE(manager_.HasPendingRetransmissions()); 827 EXPECT_TRUE(manager_.HasPendingRetransmissions());
824 RetransmitNextPacket(102); 828 RetransmitNextPacket(102);
825 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return( 829 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).WillOnce(Return(
826 QuicTime::Delta::Infinite())); 830 QuicTime::Delta::Infinite()));
827 EXPECT_EQ(QuicTime::Delta::Infinite(), 831 EXPECT_EQ(QuicTime::Delta::Infinite(),
828 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); 832 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA));
829 833
834 // Ensure the RTO is set based on the correct packet.
835 if (FLAGS_quic_rto_uses_last_sent) {
836 rto_packet_time = clock_.Now();
837 }
838 EXPECT_CALL(*send_algorithm_, RetransmissionDelay())
839 .WillOnce(Return(QuicTime::Delta::FromSeconds(1)));
840 EXPECT_EQ(rto_packet_time.Add(QuicTime::Delta::FromSeconds(1)),
841 manager_.GetRetransmissionTime());
842
830 // Advance the time enough to ensure all packets are RTO'd. 843 // Advance the time enough to ensure all packets are RTO'd.
831 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1000)); 844 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1000));
832 845
833 // The final RTO abandons all of them. 846 // The final RTO abandons all of them.
834 EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true)); 847 EXPECT_CALL(*send_algorithm_, OnRetransmissionTimeout(true));
835 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange()); 848 EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
836 manager_.OnRetransmissionTimeout(); 849 manager_.OnRetransmissionTimeout();
837 EXPECT_TRUE(manager_.HasPendingRetransmissions()); 850 EXPECT_TRUE(manager_.HasPendingRetransmissions());
838 EXPECT_EQ(2u, stats_.tlp_count); 851 EXPECT_EQ(2u, stats_.tlp_count);
839 EXPECT_EQ(1u, stats_.rto_count); 852 EXPECT_EQ(1u, stats_.rto_count);
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
1490 1503
1491 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_)); 1504 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_));
1492 manager_.ResumeConnectionState(cached_network_params); 1505 manager_.ResumeConnectionState(cached_network_params);
1493 EXPECT_EQ(kRttMs * kNumMicrosPerMilli, 1506 EXPECT_EQ(kRttMs * kNumMicrosPerMilli,
1494 static_cast<uint64>(manager_.GetRttStats()->initial_rtt_us())); 1507 static_cast<uint64>(manager_.GetRttStats()->initial_rtt_us()));
1495 } 1508 }
1496 1509
1497 } // namespace 1510 } // namespace
1498 } // namespace test 1511 } // namespace test
1499 } // namespace net 1512 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698