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 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); | 335 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); |
336 EXPECT_TRUE(QuicReceivedPacketManagerPeer::DontWaitForPacketsBefore( | 336 EXPECT_TRUE(QuicReceivedPacketManagerPeer::DontWaitForPacketsBefore( |
337 &received_manager_, 4)); | 337 &received_manager_, 4)); |
338 EXPECT_FALSE(received_manager_.IsAwaitingPacket(3u)); | 338 EXPECT_FALSE(received_manager_.IsAwaitingPacket(3u)); |
339 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); | 339 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); |
340 } | 340 } |
341 | 341 |
342 TEST_P(QuicReceivedPacketManagerTest, GetUpdatedAckFrame) { | 342 TEST_P(QuicReceivedPacketManagerTest, GetUpdatedAckFrame) { |
343 QuicPacketHeader header; | 343 QuicPacketHeader header; |
344 header.packet_number = 2u; | 344 header.packet_number = 2u; |
345 QuicTime two_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(2)); | 345 QuicTime two_ms = QuicTime::Zero() + QuicTime::Delta::FromMilliseconds(2); |
346 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 346 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
347 received_manager_.RecordPacketReceived(0u, header, two_ms); | 347 received_manager_.RecordPacketReceived(0u, header, two_ms); |
348 EXPECT_TRUE(received_manager_.ack_frame_updated()); | 348 EXPECT_TRUE(received_manager_.ack_frame_updated()); |
349 | 349 |
350 QuicFrame ack = received_manager_.GetUpdatedAckFrame(QuicTime::Zero()); | 350 QuicFrame ack = received_manager_.GetUpdatedAckFrame(QuicTime::Zero()); |
351 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 351 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
352 // When UpdateReceivedPacketInfo with a time earlier than the time of the | 352 // When UpdateReceivedPacketInfo with a time earlier than the time of the |
353 // largest observed packet, make sure that the delta is 0, not negative. | 353 // largest observed packet, make sure that the delta is 0, not negative. |
354 EXPECT_EQ(QuicTime::Delta::Zero(), ack.ack_frame->ack_delay_time); | 354 EXPECT_EQ(QuicTime::Delta::Zero(), ack.ack_frame->ack_delay_time); |
355 EXPECT_EQ(1u, ack.ack_frame->received_packet_times.size()); | 355 EXPECT_EQ(1u, ack.ack_frame->received_packet_times.size()); |
356 | 356 |
357 QuicTime four_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(4)); | 357 QuicTime four_ms = QuicTime::Zero() + QuicTime::Delta::FromMilliseconds(4); |
358 ack = received_manager_.GetUpdatedAckFrame(four_ms); | 358 ack = received_manager_.GetUpdatedAckFrame(four_ms); |
359 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 359 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
360 // When UpdateReceivedPacketInfo after not having received a new packet, | 360 // When UpdateReceivedPacketInfo after not having received a new packet, |
361 // the delta should still be accurate. | 361 // the delta should still be accurate. |
362 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(2), | 362 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(2), |
363 ack.ack_frame->ack_delay_time); | 363 ack.ack_frame->ack_delay_time); |
364 // And received packet times won't have change. | 364 // And received packet times won't have change. |
365 EXPECT_EQ(1u, ack.ack_frame->received_packet_times.size()); | 365 EXPECT_EQ(1u, ack.ack_frame->received_packet_times.size()); |
366 | 366 |
367 header.packet_number = 999u; | 367 header.packet_number = 999u; |
368 received_manager_.RecordPacketReceived(0u, header, two_ms); | 368 received_manager_.RecordPacketReceived(0u, header, two_ms); |
369 header.packet_number = 4u; | 369 header.packet_number = 4u; |
370 received_manager_.RecordPacketReceived(0u, header, two_ms); | 370 received_manager_.RecordPacketReceived(0u, header, two_ms); |
371 header.packet_number = 1000u; | 371 header.packet_number = 1000u; |
372 received_manager_.RecordPacketReceived(0u, header, two_ms); | 372 received_manager_.RecordPacketReceived(0u, header, two_ms); |
373 EXPECT_TRUE(received_manager_.ack_frame_updated()); | 373 EXPECT_TRUE(received_manager_.ack_frame_updated()); |
374 ack = received_manager_.GetUpdatedAckFrame(two_ms); | 374 ack = received_manager_.GetUpdatedAckFrame(two_ms); |
375 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 375 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
376 // UpdateReceivedPacketInfo should discard any times which can't be | 376 // UpdateReceivedPacketInfo should discard any times which can't be |
377 // expressed on the wire. | 377 // expressed on the wire. |
378 EXPECT_EQ(2u, ack.ack_frame->received_packet_times.size()); | 378 EXPECT_EQ(2u, ack.ack_frame->received_packet_times.size()); |
379 } | 379 } |
380 | 380 |
381 TEST_P(QuicReceivedPacketManagerTest, UpdateReceivedConnectionStats) { | 381 TEST_P(QuicReceivedPacketManagerTest, UpdateReceivedConnectionStats) { |
382 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 382 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
383 RecordPacketReceipt(1, 0); | 383 RecordPacketReceipt(1, 0); |
384 EXPECT_TRUE(received_manager_.ack_frame_updated()); | 384 EXPECT_TRUE(received_manager_.ack_frame_updated()); |
385 RecordPacketReceipt(6, 0); | 385 RecordPacketReceipt(6, 0); |
386 RecordPacketReceipt( | 386 RecordPacketReceipt(2, 0, |
387 2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1))); | 387 QuicTime::Zero() + QuicTime::Delta::FromMilliseconds(1)); |
388 | 388 |
389 EXPECT_EQ(4u, stats_.max_sequence_reordering); | 389 EXPECT_EQ(4u, stats_.max_sequence_reordering); |
390 EXPECT_EQ(1000, stats_.max_time_reordering_us); | 390 EXPECT_EQ(1000, stats_.max_time_reordering_us); |
391 EXPECT_EQ(1u, stats_.packets_reordered); | 391 EXPECT_EQ(1u, stats_.packets_reordered); |
392 } | 392 } |
393 | 393 |
394 } // namespace | 394 } // namespace |
395 } // namespace test | 395 } // namespace test |
396 } // namespace net | 396 } // namespace net |
OLD | NEW |