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

Unified Diff: net/quic/quic_sent_packet_manager_test.cc

Issue 1013583002: Make the SentPacketManager remove pending retransmissions for reset (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Replace_CID_with_connection_id_88463135
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_unacked_packet_map.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_sent_packet_manager_test.cc
diff --git a/net/quic/quic_sent_packet_manager_test.cc b/net/quic/quic_sent_packet_manager_test.cc
index 5f977e0817ad7fcb74cf25ef30b9811c7eca0398..dad154b60ead8d49e753b4604a5ce0806708b0a5 100644
--- a/net/quic/quic_sent_packet_manager_test.cc
+++ b/net/quic/quic_sent_packet_manager_test.cc
@@ -30,6 +30,9 @@ namespace {
// Default packet length.
const uint32 kDefaultLength = 1000;
+// Stream ID for data sent in CreatePacket().
+const QuicStreamId kStreamId = 7;
+
// Matcher to check the key of the key-value pair it receives as first argument
// equals its second argument.
MATCHER(KeyEq, "") {
@@ -177,9 +180,14 @@ class QuicSentPacketManagerTest : public ::testing::TestWithParam<bool> {
SerializedPacket CreatePacket(QuicPacketSequenceNumber sequence_number,
bool retransmittable) {
packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength));
- return SerializedPacket(
- sequence_number, PACKET_6BYTE_SEQUENCE_NUMBER, packets_.back(), 0u,
- retransmittable ? new RetransmittableFrames(ENCRYPTION_NONE) : nullptr);
+ RetransmittableFrames* frames = nullptr;
+ if (retransmittable) {
+ frames = new RetransmittableFrames(ENCRYPTION_NONE);
+ frames->AddStreamFrame(
+ new QuicStreamFrame(kStreamId, false, 0, IOVector()));
+ }
+ return SerializedPacket(sequence_number, PACKET_6BYTE_SEQUENCE_NUMBER,
+ packets_.back(), 0u, frames);
}
SerializedPacket CreateFecPacket(QuicPacketSequenceNumber sequence_number) {
@@ -320,6 +328,23 @@ TEST_F(QuicSentPacketManagerTest, RetransmitThenAckBeforeSend) {
EXPECT_EQ(0u, stats_.packets_spuriously_retransmitted);
}
+TEST_F(QuicSentPacketManagerTest, RetransmitThenStopRetransmittingBeforeSend) {
+ SendDataPacket(1);
+ QuicSentPacketManagerPeer::MarkForRetransmission(&manager_, 1,
+ TLP_RETRANSMISSION);
+ EXPECT_TRUE(manager_.HasPendingRetransmissions());
+
+ manager_.CancelRetransmissionsForStream(kStreamId);
+
+ // There should no longer be a pending retransmission.
+ EXPECT_FALSE(manager_.HasPendingRetransmissions());
+
+ QuicPacketSequenceNumber unacked[] = {1};
+ VerifyUnackedPackets(unacked, arraysize(unacked));
+ VerifyRetransmittablePackets(nullptr, 0);
+ EXPECT_EQ(0u, stats_.packets_spuriously_retransmitted);
+}
+
TEST_F(QuicSentPacketManagerTest, RetransmitThenAckPrevious) {
SendDataPacket(1);
RetransmitAndSendPacket(1, 2);
« no previous file with comments | « net/quic/quic_sent_packet_manager.cc ('k') | net/quic/quic_unacked_packet_map.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698