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

Unified Diff: net/quic/quic_sent_packet_manager_test.cc

Issue 1008323002: Land Recent QUIC Changes until 03/15/2015. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Final_0315
Patch Set: Add quic_packet_reader to BUILD.gn to fix compiler errors 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 76fb1b52e836fed5d66a458b38453e6bf5ada189..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);
@@ -1472,6 +1497,25 @@ TEST_F(QuicSentPacketManagerTest, NegotiateCongestionControlFromOptions) {
EXPECT_EQ(kBBR, QuicSentPacketManagerPeer::GetSendAlgorithm(
manager_)->GetCongestionControlType());
#endif
+
+ options.clear();
+ options.push_back(kBYTE);
+ QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
+ EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
+ EXPECT_CALL(*network_change_visitor_, OnRttChange());
+ manager_.SetFromConfig(config);
+ EXPECT_EQ(kCubicBytes, QuicSentPacketManagerPeer::GetSendAlgorithm(manager_)
+ ->GetCongestionControlType());
+
+ options.clear();
+ options.push_back(kRENO);
+ options.push_back(kBYTE);
+ QuicConfigPeer::SetReceivedConnectionOptions(&config, options);
+ EXPECT_CALL(*network_change_visitor_, OnCongestionWindowChange());
+ EXPECT_CALL(*network_change_visitor_, OnRttChange());
+ manager_.SetFromConfig(config);
+ EXPECT_EQ(kRenoBytes, QuicSentPacketManagerPeer::GetSendAlgorithm(manager_)
+ ->GetCongestionControlType());
}
TEST_F(QuicSentPacketManagerTest, NegotiateNumConnectionsFromOptions) {
« 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