OLD | NEW |
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_received_packet_manager.h" | 5 #include "net/quic/quic_received_packet_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "net/quic/quic_connection_stats.h" | 10 #include "net/quic/quic_connection_stats.h" |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 EXPECT_FALSE(received_manager_.IsAwaitingPacket(3u)); | 300 EXPECT_FALSE(received_manager_.IsAwaitingPacket(3u)); |
301 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); | 301 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); |
302 } | 302 } |
303 | 303 |
304 TEST_F(QuicReceivedPacketManagerTest, UpdateReceivedPacketInfo) { | 304 TEST_F(QuicReceivedPacketManagerTest, UpdateReceivedPacketInfo) { |
305 QuicPacketHeader header; | 305 QuicPacketHeader header; |
306 header.packet_sequence_number = 2u; | 306 header.packet_sequence_number = 2u; |
307 QuicTime two_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(2)); | 307 QuicTime two_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(2)); |
308 received_manager_.RecordPacketReceived(0u, header, two_ms); | 308 received_manager_.RecordPacketReceived(0u, header, two_ms); |
309 | 309 |
310 ReceivedPacketInfo info; | 310 QuicAckFrame ack; |
311 received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero()); | 311 received_manager_.UpdateReceivedPacketInfo(&ack, QuicTime::Zero()); |
312 // When UpdateReceivedPacketInfo with a time earlier than the time of the | 312 // When UpdateReceivedPacketInfo with a time earlier than the time of the |
313 // largest observed packet, make sure that the delta is 0, not negative. | 313 // largest observed packet, make sure that the delta is 0, not negative. |
314 EXPECT_EQ(QuicTime::Delta::Zero(), info.delta_time_largest_observed); | 314 EXPECT_EQ(QuicTime::Delta::Zero(), ack.delta_time_largest_observed); |
315 | 315 |
316 QuicTime four_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(4)); | 316 QuicTime four_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(4)); |
317 received_manager_.UpdateReceivedPacketInfo(&info, four_ms); | 317 received_manager_.UpdateReceivedPacketInfo(&ack, four_ms); |
318 // When UpdateReceivedPacketInfo after not having received a new packet, | 318 // When UpdateReceivedPacketInfo after not having received a new packet, |
319 // the delta should still be accurate. | 319 // the delta should still be accurate. |
320 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(2), | 320 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(2), |
321 info.delta_time_largest_observed); | 321 ack.delta_time_largest_observed); |
322 } | 322 } |
323 | 323 |
324 TEST_F(QuicReceivedPacketManagerTest, UpdateReceivedConnectionStats) { | 324 TEST_F(QuicReceivedPacketManagerTest, UpdateReceivedConnectionStats) { |
325 RecordPacketReceipt(1, 0); | 325 RecordPacketReceipt(1, 0); |
326 RecordPacketReceipt(6, 0); | 326 RecordPacketReceipt(6, 0); |
327 RecordPacketReceipt( | 327 RecordPacketReceipt( |
328 2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1))); | 328 2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1))); |
329 | 329 |
330 EXPECT_EQ(4u, stats_.max_sequence_reordering); | 330 EXPECT_EQ(4u, stats_.max_sequence_reordering); |
331 EXPECT_EQ(1000u, stats_.max_time_reordering_us); | 331 EXPECT_EQ(1000u, stats_.max_time_reordering_us); |
332 EXPECT_EQ(1u, stats_.packets_reordered); | 332 EXPECT_EQ(1u, stats_.packets_reordered); |
333 } | 333 } |
334 | 334 |
335 TEST_F(QuicReceivedPacketManagerTest, RevivedPacket) { | 335 TEST_F(QuicReceivedPacketManagerTest, RevivedPacket) { |
336 RecordPacketReceipt(1, 0); | 336 RecordPacketReceipt(1, 0); |
337 RecordPacketReceipt(3, 0); | 337 RecordPacketReceipt(3, 0); |
338 RecordPacketRevived(2); | 338 RecordPacketRevived(2); |
339 | 339 |
340 ReceivedPacketInfo info; | 340 QuicAckFrame ack; |
341 received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero()); | 341 received_manager_.UpdateReceivedPacketInfo(&ack, QuicTime::Zero()); |
342 EXPECT_EQ(1u, info.missing_packets.size()); | 342 EXPECT_EQ(1u, ack.missing_packets.size()); |
343 EXPECT_EQ(2u, *info.missing_packets.begin()); | 343 EXPECT_EQ(2u, *ack.missing_packets.begin()); |
344 EXPECT_EQ(1u, info.revived_packets.size()); | 344 EXPECT_EQ(1u, ack.revived_packets.size()); |
345 EXPECT_EQ(2u, *info.missing_packets.begin()); | 345 EXPECT_EQ(2u, *ack.missing_packets.begin()); |
346 } | 346 } |
347 | 347 |
348 TEST_F(QuicReceivedPacketManagerTest, PacketRevivedThenReceived) { | 348 TEST_F(QuicReceivedPacketManagerTest, PacketRevivedThenReceived) { |
349 RecordPacketReceipt(1, 0); | 349 RecordPacketReceipt(1, 0); |
350 RecordPacketReceipt(3, 0); | 350 RecordPacketReceipt(3, 0); |
351 RecordPacketRevived(2); | 351 RecordPacketRevived(2); |
352 RecordPacketReceipt(2, 0); | 352 RecordPacketReceipt(2, 0); |
353 | 353 |
354 ReceivedPacketInfo info; | 354 QuicAckFrame ack; |
355 received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero()); | 355 received_manager_.UpdateReceivedPacketInfo(&ack, QuicTime::Zero()); |
356 EXPECT_TRUE(info.missing_packets.empty()); | 356 EXPECT_TRUE(ack.missing_packets.empty()); |
357 EXPECT_TRUE(info.revived_packets.empty()); | 357 EXPECT_TRUE(ack.revived_packets.empty()); |
358 } | 358 } |
359 | 359 |
360 | 360 |
361 } // namespace | 361 } // namespace |
362 } // namespace test | 362 } // namespace test |
363 } // namespace net | 363 } // namespace net |
OLD | NEW |