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

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

Issue 575573003: Add a LOG(DFATAL) to a case where packets are acked before being sent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Allow_number_of_open_streams_to_grow_75393293
Patch Set: Created 6 years, 3 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
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 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 VerifyUnackedPackets(unacked, arraysize(unacked)); 600 VerifyUnackedPackets(unacked, arraysize(unacked));
601 QuicPacketSequenceNumber retransmittable[] = { 5 }; 601 QuicPacketSequenceNumber retransmittable[] = { 5 };
602 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable)); 602 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable));
603 } 603 }
604 604
605 TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) { 605 TEST_F(QuicSentPacketManagerTest, AckPreviousTransmissionThenTruncatedAck) {
606 SendDataPacket(1); 606 SendDataPacket(1);
607 RetransmitAndSendPacket(1, 2); 607 RetransmitAndSendPacket(1, 2);
608 RetransmitAndSendPacket(2, 3); 608 RetransmitAndSendPacket(2, 3);
609 RetransmitAndSendPacket(3, 4); 609 RetransmitAndSendPacket(3, 4);
610 manager_.OnSerializedPacket(CreateDataPacket(5)); 610 SendDataPacket(5);
611 manager_.OnSerializedPacket(CreateDataPacket(6)); 611 SendDataPacket(6);
612 manager_.OnSerializedPacket(CreateDataPacket(7)); 612 SendDataPacket(7);
613 manager_.OnSerializedPacket(CreateDataPacket(8)); 613 SendDataPacket(8);
614 manager_.OnSerializedPacket(CreateDataPacket(9)); 614 SendDataPacket(9);
615 615
616 // Ack previous transmission 616 // Ack previous transmission
617 { 617 {
618 QuicAckFrame ack_frame; 618 QuicAckFrame ack_frame;
619 ack_frame.largest_observed = 2; 619 ack_frame.largest_observed = 2;
620 ack_frame.missing_packets.insert(1); 620 ack_frame.missing_packets.insert(1);
621 ExpectAck(2); 621 ExpectAck(2);
622 manager_.OnIncomingAck(ack_frame, clock_.Now()); 622 manager_.OnIncomingAck(ack_frame, clock_.Now());
623 EXPECT_TRUE(manager_.IsUnacked(4)); 623 EXPECT_TRUE(manager_.IsUnacked(4));
624 } 624 }
625 625
626 // Truncated ack with 4 NACKs 626 // Truncated ack with 4 NACKs
627 { 627 {
628 QuicAckFrame ack_frame; 628 QuicAckFrame ack_frame;
629 ack_frame.largest_observed = 6; 629 ack_frame.largest_observed = 6;
630 ack_frame.missing_packets.insert(3); 630 ack_frame.missing_packets.insert(3);
631 ack_frame.missing_packets.insert(4); 631 ack_frame.missing_packets.insert(4);
632 ack_frame.missing_packets.insert(5); 632 ack_frame.missing_packets.insert(5);
633 ack_frame.missing_packets.insert(6); 633 ack_frame.missing_packets.insert(6);
634 ack_frame.is_truncated = true; 634 ack_frame.is_truncated = true;
635 ExpectAckAndLoss(false, 1, 3); 635 ExpectAckAndLoss(true, 1, 3);
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
(...skipping 11 matching lines...) Expand all
657 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedUnackedFec) { 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_.GetLeastUnacked()); 661 EXPECT_EQ(1u, manager_.GetLeastUnacked());
662 } 662 }
663 663
664 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedAndDiscard) { 664 TEST_F(QuicSentPacketManagerTest, GetLeastUnackedAndDiscard) {
665 VerifyUnackedPackets(NULL, 0); 665 VerifyUnackedPackets(NULL, 0);
666 666
667 SerializedPacket serialized_packet(CreateFecPacket(1)); 667 SendFecPacket(1);
668 manager_.OnSerializedPacket(serialized_packet);
669 EXPECT_EQ(1u, manager_.GetLeastUnacked()); 668 EXPECT_EQ(1u, manager_.GetLeastUnacked());
670 669
671 SerializedPacket serialized_packet2(CreateFecPacket(2)); 670 SendFecPacket(2);
672 manager_.OnSerializedPacket(serialized_packet2);
673 EXPECT_EQ(1u, manager_.GetLeastUnacked()); 671 EXPECT_EQ(1u, manager_.GetLeastUnacked());
674 672
675 SerializedPacket serialized_packet3(CreateFecPacket(3)); 673 SendFecPacket(3);
676 manager_.OnSerializedPacket(serialized_packet3);
677 EXPECT_EQ(1u, manager_.GetLeastUnacked()); 674 EXPECT_EQ(1u, manager_.GetLeastUnacked());
678 675
679 QuicPacketSequenceNumber unacked[] = { 1, 2, 3 }; 676 QuicPacketSequenceNumber unacked[] = { 1, 2, 3 };
680 VerifyUnackedPackets(unacked, arraysize(unacked)); 677 VerifyUnackedPackets(unacked, arraysize(unacked));
681 VerifyRetransmittablePackets(NULL, 0); 678 VerifyRetransmittablePackets(NULL, 0);
682 679
683 // Ack 2, which has never been sent, so there's no rtt update. 680 // Ack 2, so there's an rtt update.
681 ExpectAck(2);
684 QuicAckFrame ack_frame; 682 QuicAckFrame ack_frame;
685 ack_frame.largest_observed = 2; 683 ack_frame.largest_observed = 2;
684 ack_frame.missing_packets.insert(1);
686 manager_.OnIncomingAck(ack_frame, clock_.Now()); 685 manager_.OnIncomingAck(ack_frame, clock_.Now());
687 686
688 EXPECT_EQ(3u, manager_.GetLeastUnacked()); 687 EXPECT_EQ(1u, manager_.GetLeastUnacked());
689 } 688 }
690 689
691 TEST_F(QuicSentPacketManagerTest, GetSentTime) { 690 TEST_F(QuicSentPacketManagerTest, GetSentTime) {
692 VerifyUnackedPackets(NULL, 0); 691 VerifyUnackedPackets(NULL, 0);
693 692
694 SerializedPacket serialized_packet(CreateFecPacket(1)); 693 SerializedPacket serialized_packet(CreateFecPacket(1));
695 manager_.OnSerializedPacket(serialized_packet); 694 manager_.OnSerializedPacket(serialized_packet);
696 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 1, _, _)) 695 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, 1, _, _))
697 .Times(1).WillOnce(Return(true)); 696 .Times(1).WillOnce(Return(true));
698 manager_.OnPacketSent(1, QuicTime::Zero(), kDefaultLength, NOT_RETRANSMISSION, 697 manager_.OnPacketSent(1, QuicTime::Zero(), kDefaultLength, NOT_RETRANSMISSION,
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after
1463 .WillOnce(Return(100 * kDefaultTCPMSS)); 1462 .WillOnce(Return(100 * kDefaultTCPMSS));
1464 manager_.SetFromConfig(config); 1463 manager_.SetFromConfig(config);
1465 1464
1466 EXPECT_EQ(initial_rtt_us, 1465 EXPECT_EQ(initial_rtt_us,
1467 manager_.GetRttStats()->SmoothedRtt().ToMicroseconds()); 1466 manager_.GetRttStats()->SmoothedRtt().ToMicroseconds());
1468 } 1467 }
1469 1468
1470 } // namespace 1469 } // namespace
1471 } // namespace test 1470 } // namespace test
1472 } // namespace net 1471 } // namespace net
OLDNEW
« net/quic/quic_sent_packet_manager.cc ('K') | « net/quic/quic_sent_packet_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698