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

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

Issue 754433003: Update from https://crrev.com/305340 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « net/quic/quic_unacked_packet_map.cc ('k') | net/quic/test_tools/crypto_test_utils.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_unacked_packet_map.h" 5 #include "net/quic/quic_unacked_packet_map.h"
6 6
7 #include "net/quic/test_tools/quic_test_utils.h" 7 #include "net/quic/test_tools/quic_test_utils.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 using std::min; 10 using std::min;
11 using std::vector;
11 12
12 namespace net { 13 namespace net {
13 namespace test { 14 namespace test {
14 namespace { 15 namespace {
15 16
16 // Default packet length. 17 // Default packet length.
17 const uint32 kDefaultAckLength = 50; 18 const uint32 kDefaultAckLength = 50;
18 const uint32 kDefaultLength = 1000; 19 const uint32 kDefaultLength = 1000;
19 20
20 class QuicUnackedPacketMapTest : public ::testing::Test { 21 class QuicUnackedPacketMapTest : public ::testing::Test {
21 protected: 22 protected:
22 QuicUnackedPacketMapTest() 23 QuicUnackedPacketMapTest()
23 : now_(QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1000))) { 24 : now_(QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1000))) {
24 } 25 }
25 26
27 ~QuicUnackedPacketMapTest() override {
28 STLDeleteElements(&packets_);
29 }
30
26 SerializedPacket CreateRetransmittablePacket( 31 SerializedPacket CreateRetransmittablePacket(
27 QuicPacketSequenceNumber sequence_number) { 32 QuicPacketSequenceNumber sequence_number) {
33 packets_.push_back(QuicPacket::NewDataPacket(
34 nullptr, kDefaultLength, false, PACKET_8BYTE_CONNECTION_ID, false,
35 PACKET_1BYTE_SEQUENCE_NUMBER));
28 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, 36 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER,
29 nullptr, 0, new RetransmittableFrames()); 37 packets_.back(), 0, new RetransmittableFrames());
30 } 38 }
31 39
32 SerializedPacket CreateNonRetransmittablePacket( 40 SerializedPacket CreateNonRetransmittablePacket(
33 QuicPacketSequenceNumber sequence_number) { 41 QuicPacketSequenceNumber sequence_number) {
42 packets_.push_back(QuicPacket::NewDataPacket(
43 nullptr, kDefaultLength, false, PACKET_8BYTE_CONNECTION_ID, false,
44 PACKET_1BYTE_SEQUENCE_NUMBER));
34 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, 45 return SerializedPacket(sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER,
35 nullptr, 0, nullptr); 46 packets_.back(), 0, nullptr);
36 } 47 }
37 48
38 void VerifyInFlightPackets(QuicPacketSequenceNumber* packets, 49 void VerifyInFlightPackets(QuicPacketSequenceNumber* packets,
39 size_t num_packets) { 50 size_t num_packets) {
40 unacked_packets_.RemoveObsoletePackets(); 51 unacked_packets_.RemoveObsoletePackets();
41 if (num_packets == 0) { 52 if (num_packets == 0) {
42 EXPECT_FALSE(unacked_packets_.HasInFlightPackets()); 53 EXPECT_FALSE(unacked_packets_.HasInFlightPackets());
43 EXPECT_FALSE(unacked_packets_.HasMultipleInFlightPackets()); 54 EXPECT_FALSE(unacked_packets_.HasMultipleInFlightPackets());
44 return; 55 return;
45 } 56 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 if (it->retransmittable_frames != nullptr) { 98 if (it->retransmittable_frames != nullptr) {
88 ++num_retransmittable_packets; 99 ++num_retransmittable_packets;
89 } 100 }
90 } 101 }
91 EXPECT_EQ(num_packets, num_retransmittable_packets); 102 EXPECT_EQ(num_packets, num_retransmittable_packets);
92 for (size_t i = 0; i < num_packets; ++i) { 103 for (size_t i = 0; i < num_packets; ++i) {
93 EXPECT_TRUE(unacked_packets_.HasRetransmittableFrames(packets[i])) 104 EXPECT_TRUE(unacked_packets_.HasRetransmittableFrames(packets[i]))
94 << " packets[" << i << "]:" << packets[i]; 105 << " packets[" << i << "]:" << packets[i];
95 } 106 }
96 } 107 }
97 108 vector<QuicPacket*> packets_;
98 QuicUnackedPacketMap unacked_packets_; 109 QuicUnackedPacketMap unacked_packets_;
99 QuicTime now_; 110 QuicTime now_;
100 }; 111 };
101 112
102 TEST_F(QuicUnackedPacketMapTest, RttOnly) { 113 TEST_F(QuicUnackedPacketMapTest, RttOnly) {
103 // Acks are only tracked for RTT measurement purposes. 114 // Acks are only tracked for RTT measurement purposes.
104 unacked_packets_.AddSentPacket(CreateNonRetransmittablePacket(1), 0, 115 unacked_packets_.AddSentPacket(CreateNonRetransmittablePacket(1), 0,
105 NOT_RETRANSMISSION, now_, kDefaultAckLength, 116 NOT_RETRANSMISSION, now_, kDefaultAckLength,
106 false); 117 false);
107 118
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 VerifyInFlightPackets(unacked, arraysize(unacked)); 189 VerifyInFlightPackets(unacked, arraysize(unacked));
179 VerifyRetransmittablePackets(nullptr, 0); 190 VerifyRetransmittablePackets(nullptr, 0);
180 191
181 unacked_packets_.IncreaseLargestObserved(2); 192 unacked_packets_.IncreaseLargestObserved(2);
182 VerifyUnackedPackets(unacked, arraysize(unacked)); 193 VerifyUnackedPackets(unacked, arraysize(unacked));
183 VerifyInFlightPackets(unacked, arraysize(unacked)); 194 VerifyInFlightPackets(unacked, arraysize(unacked));
184 VerifyRetransmittablePackets(nullptr, 0); 195 VerifyRetransmittablePackets(nullptr, 0);
185 196
186 unacked_packets_.RemoveFromInFlight(2); 197 unacked_packets_.RemoveFromInFlight(2);
187 QuicPacketSequenceNumber unacked2[] = { 1 }; 198 QuicPacketSequenceNumber unacked2[] = { 1 };
188 VerifyUnackedPackets(unacked, arraysize(unacked2)); 199 VerifyUnackedPackets(unacked2, arraysize(unacked2));
189 VerifyInFlightPackets(unacked, arraysize(unacked2)); 200 VerifyInFlightPackets(unacked2, arraysize(unacked2));
190 VerifyRetransmittablePackets(nullptr, 0); 201 VerifyRetransmittablePackets(nullptr, 0);
191 202
192 unacked_packets_.RemoveFromInFlight(1); 203 unacked_packets_.RemoveFromInFlight(1);
193 VerifyUnackedPackets(nullptr, 0); 204 VerifyUnackedPackets(nullptr, 0);
194 VerifyInFlightPackets(nullptr, 0); 205 VerifyInFlightPackets(nullptr, 0);
195 VerifyRetransmittablePackets(nullptr, 0); 206 VerifyRetransmittablePackets(nullptr, 0);
196 } 207 }
197 208
198 TEST_F(QuicUnackedPacketMapTest, RetransmitThreeTimes) { 209 TEST_F(QuicUnackedPacketMapTest, RetransmitThreeTimes) {
199 // Simulate a retransmittable packet being sent and retransmitted twice. 210 // Simulate a retransmittable packet being sent and retransmitted twice.
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 EXPECT_TRUE(unacked_packets_.IsUnacked(3)); 396 EXPECT_TRUE(unacked_packets_.IsUnacked(3));
386 EXPECT_FALSE(unacked_packets_.IsUnacked(4)); 397 EXPECT_FALSE(unacked_packets_.IsUnacked(4));
387 EXPECT_TRUE(unacked_packets_.IsUnacked(5)); 398 EXPECT_TRUE(unacked_packets_.IsUnacked(5));
388 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet()); 399 EXPECT_EQ(5u, unacked_packets_.largest_sent_packet());
389 } 400 }
390 401
391 402
392 } // namespace 403 } // namespace
393 } // namespace test 404 } // namespace test
394 } // namespace net 405 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_unacked_packet_map.cc ('k') | net/quic/test_tools/crypto_test_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698