summaryrefslogtreecommitdiffstats
path: root/net/quic/quic_received_packet_manager_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/quic/quic_received_packet_manager_test.cc')
-rw-r--r--net/quic/quic_received_packet_manager_test.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/net/quic/quic_received_packet_manager_test.cc b/net/quic/quic_received_packet_manager_test.cc
index b579309..b2a52c8 100644
--- a/net/quic/quic_received_packet_manager_test.cc
+++ b/net/quic/quic_received_packet_manager_test.cc
@@ -202,6 +202,10 @@ class QuicReceivedPacketManagerTest : public ::testing::Test {
received_manager_.RecordPacketReceived(0u, header, receipt_time);
}
+ void RecordPacketRevived(QuicPacketSequenceNumber sequence_number) {
+ received_manager_.RecordPacketRevived(sequence_number);
+ }
+
QuicConnectionStats stats_;
QuicReceivedPacketManager received_manager_;
};
@@ -328,6 +332,32 @@ TEST_F(QuicReceivedPacketManagerTest, UpdateReceivedConnectionStats) {
EXPECT_EQ(1u, stats_.packets_reordered);
}
+TEST_F(QuicReceivedPacketManagerTest, RevivedPacket) {
+ RecordPacketReceipt(1, 0);
+ RecordPacketReceipt(3, 0);
+ RecordPacketRevived(2);
+
+ ReceivedPacketInfo info;
+ received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero());
+ EXPECT_EQ(1u, info.missing_packets.size());
+ EXPECT_EQ(2u, *info.missing_packets.begin());
+ EXPECT_EQ(1u, info.revived_packets.size());
+ EXPECT_EQ(2u, *info.missing_packets.begin());
+}
+
+TEST_F(QuicReceivedPacketManagerTest, PacketRevivedThenReceived) {
+ RecordPacketReceipt(1, 0);
+ RecordPacketReceipt(3, 0);
+ RecordPacketRevived(2);
+ RecordPacketReceipt(2, 0);
+
+ ReceivedPacketInfo info;
+ received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero());
+ EXPECT_TRUE(info.missing_packets.empty());
+ EXPECT_TRUE(info.revived_packets.empty());
+}
+
+
} // namespace
} // namespace test
} // namespace net