| OLD | NEW |
| 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 void VerifyUnackedPackets(QuicPacketSequenceNumber* packets, | 73 void VerifyUnackedPackets(QuicPacketSequenceNumber* packets, |
| 74 size_t num_packets) { | 74 size_t num_packets) { |
| 75 if (num_packets == 0) { | 75 if (num_packets == 0) { |
| 76 EXPECT_FALSE(manager_.HasUnackedPackets()); | 76 EXPECT_FALSE(manager_.HasUnackedPackets()); |
| 77 EXPECT_EQ(0u, QuicSentPacketManagerPeer::GetNumRetransmittablePackets( | 77 EXPECT_EQ(0u, QuicSentPacketManagerPeer::GetNumRetransmittablePackets( |
| 78 &manager_)); | 78 &manager_)); |
| 79 return; | 79 return; |
| 80 } | 80 } |
| 81 | 81 |
| 82 EXPECT_TRUE(manager_.HasUnackedPackets()); | 82 EXPECT_TRUE(manager_.HasUnackedPackets()); |
| 83 EXPECT_EQ(packets[0], manager_.GetLeastUnackedSentPacket()); | 83 EXPECT_EQ(packets[0], manager_.GetLeastUnacked()); |
| 84 for (size_t i = 0; i < num_packets; ++i) { | 84 for (size_t i = 0; i < num_packets; ++i) { |
| 85 EXPECT_TRUE(manager_.IsUnacked(packets[i])) << packets[i]; | 85 EXPECT_TRUE(manager_.IsUnacked(packets[i])) << packets[i]; |
| 86 } | 86 } |
| 87 } | 87 } |
| 88 | 88 |
| 89 void VerifyRetransmittablePackets(QuicPacketSequenceNumber* packets, | 89 void VerifyRetransmittablePackets(QuicPacketSequenceNumber* packets, |
| 90 size_t num_packets) { | 90 size_t num_packets) { |
| 91 EXPECT_EQ(num_packets, | 91 EXPECT_EQ(num_packets, |
| 92 QuicSentPacketManagerPeer::GetNumRetransmittablePackets( | 92 QuicSentPacketManagerPeer::GetNumRetransmittablePackets( |
| 93 &manager_)); | 93 &manager_)); |
| (...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 manager_.OnIncomingAck(ack_frame, clock_.Now()); | 636 manager_.OnIncomingAck(ack_frame, clock_.Now()); |
| 637 } | 637 } |
| 638 | 638 |
| 639 // High water mark will be raised. | 639 // High water mark will be raised. |
| 640 QuicPacketSequenceNumber unacked[] = { 4, 5, 6, 7, 8, 9 }; | 640 QuicPacketSequenceNumber unacked[] = { 4, 5, 6, 7, 8, 9 }; |
| 641 VerifyUnackedPackets(unacked, arraysize(unacked)); | 641 VerifyUnackedPackets(unacked, arraysize(unacked)); |
| 642 QuicPacketSequenceNumber retransmittable[] = { 5, 6, 7, 8, 9 }; | 642 QuicPacketSequenceNumber retransmittable[] = { 5, 6, 7, 8, 9 }; |
| 643 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable)); | 643 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable)); |
| 644 } | 644 } |
| 645 | 645 |
| 646 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacket) { | 646 TEST_F(QuicSentPacketManagerTest, GetLeastUnacked) { |
| 647 EXPECT_EQ(0u, manager_.GetLeastUnackedSentPacket()); | 647 EXPECT_EQ(1u, manager_.GetLeastUnacked()); |
| 648 } | 648 } |
| 649 | 649 |
| 650 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacketUnacked) { | 650 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedUnacked) { |
| 651 SerializedPacket serialized_packet(CreateDataPacket(1)); | 651 SerializedPacket serialized_packet(CreateDataPacket(1)); |
| 652 | 652 |
| 653 manager_.OnSerializedPacket(serialized_packet); | 653 manager_.OnSerializedPacket(serialized_packet); |
| 654 EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket()); | 654 EXPECT_EQ(1u, manager_.GetLeastUnacked()); |
| 655 } | 655 } |
| 656 | 656 |
| 657 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacketUnackedFec) { | 657 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedUnackedFec) { |
| 658 SerializedPacket serialized_packet(CreateFecPacket(1)); | 658 SerializedPacket serialized_packet(CreateFecPacket(1)); |
| 659 | 659 |
| 660 manager_.OnSerializedPacket(serialized_packet); | 660 manager_.OnSerializedPacket(serialized_packet); |
| 661 EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket()); | 661 EXPECT_EQ(1u, manager_.GetLeastUnacked()); |
| 662 } | 662 } |
| 663 | 663 |
| 664 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedPacketAndDiscard) { | 664 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedAndDiscard) { |
| 665 VerifyUnackedPackets(NULL, 0); | 665 VerifyUnackedPackets(NULL, 0); |
| 666 | 666 |
| 667 SerializedPacket serialized_packet(CreateFecPacket(1)); | 667 SerializedPacket serialized_packet(CreateFecPacket(1)); |
| 668 manager_.OnSerializedPacket(serialized_packet); | 668 manager_.OnSerializedPacket(serialized_packet); |
| 669 EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket()); | 669 EXPECT_EQ(1u, manager_.GetLeastUnacked()); |
| 670 | 670 |
| 671 SerializedPacket serialized_packet2(CreateFecPacket(2)); | 671 SerializedPacket serialized_packet2(CreateFecPacket(2)); |
| 672 manager_.OnSerializedPacket(serialized_packet2); | 672 manager_.OnSerializedPacket(serialized_packet2); |
| 673 EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket()); | 673 EXPECT_EQ(1u, manager_.GetLeastUnacked()); |
| 674 | 674 |
| 675 SerializedPacket serialized_packet3(CreateFecPacket(3)); | 675 SerializedPacket serialized_packet3(CreateFecPacket(3)); |
| 676 manager_.OnSerializedPacket(serialized_packet3); | 676 manager_.OnSerializedPacket(serialized_packet3); |
| 677 EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket()); | 677 EXPECT_EQ(1u, manager_.GetLeastUnacked()); |
| 678 | 678 |
| 679 QuicPacketSequenceNumber unacked[] = { 1, 2, 3 }; | 679 QuicPacketSequenceNumber unacked[] = { 1, 2, 3 }; |
| 680 VerifyUnackedPackets(unacked, arraysize(unacked)); | 680 VerifyUnackedPackets(unacked, arraysize(unacked)); |
| 681 VerifyRetransmittablePackets(NULL, 0); | 681 VerifyRetransmittablePackets(NULL, 0); |
| 682 | 682 |
| 683 // Ack 2, which has never been sent, so there's no rtt update. | 683 // Ack 2, which has never been sent, so there's no rtt update. |
| 684 QuicAckFrame ack_frame; | 684 QuicAckFrame ack_frame; |
| 685 ack_frame.largest_observed = 2; | 685 ack_frame.largest_observed = 2; |
| 686 manager_.OnIncomingAck(ack_frame, clock_.Now()); | 686 manager_.OnIncomingAck(ack_frame, clock_.Now()); |
| 687 | 687 |
| 688 EXPECT_EQ(3u, manager_.GetLeastUnackedSentPacket()); | 688 EXPECT_EQ(3u, manager_.GetLeastUnacked()); |
| 689 } | 689 } |
| 690 | 690 |
| 691 TEST_F(QuicSentPacketManagerTest, GetSentTime) { | 691 TEST_F(QuicSentPacketManagerTest, GetSentTime) { |
| 692 VerifyUnackedPackets(NULL, 0); | 692 VerifyUnackedPackets(NULL, 0); |
| 693 | 693 |
| 694 SerializedPacket serialized_packet(CreateFecPacket(1)); | 694 SerializedPacket serialized_packet(CreateFecPacket(1)); |
| 695 manager_.OnSerializedPacket(serialized_packet); | 695 manager_.OnSerializedPacket(serialized_packet); |
| 696 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 1, _, _)) | 696 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 1, _, _)) |
| 697 .Times(1).WillOnce(Return(true)); | 697 .Times(1).WillOnce(Return(true)); |
| 698 manager_.OnPacketSent(1, QuicTime::Zero(), kDefaultLength, NOT_RETRANSMISSION, | 698 manager_.OnPacketSent(1, QuicTime::Zero(), kDefaultLength, NOT_RETRANSMISSION, |
| (...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1439 .WillOnce(Return(100 * kDefaultTCPMSS)); | 1439 .WillOnce(Return(100 * kDefaultTCPMSS)); |
| 1440 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _)); | 1440 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _)); |
| 1441 manager_.SetFromConfig(config); | 1441 manager_.SetFromConfig(config); |
| 1442 | 1442 |
| 1443 EXPECT_TRUE(manager_.using_pacing()); | 1443 EXPECT_TRUE(manager_.using_pacing()); |
| 1444 } | 1444 } |
| 1445 | 1445 |
| 1446 } // namespace | 1446 } // namespace |
| 1447 } // namespace test | 1447 } // namespace test |
| 1448 } // namespace net | 1448 } // namespace net |
| OLD | NEW |