| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_packet_creator.h" | 5 #include "net/quic/quic_packet_creator.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "net/quic/crypto/null_encrypter.h" | 10 #include "net/quic/crypto/null_encrypter.h" |
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 // Should return false since we do not have enough packets in the FEC group to | 492 // Should return false since we do not have enough packets in the FEC group to |
| 493 // trigger an FEC packet. | 493 // trigger an FEC packet. |
| 494 ASSERT_FALSE(creator_.ShouldSendFec(/*force_close=*/false)); | 494 ASSERT_FALSE(creator_.ShouldSendFec(/*force_close=*/false)); |
| 495 // Should return true since there are packets in the FEC group. | 495 // Should return true since there are packets in the FEC group. |
| 496 ASSERT_TRUE(creator_.ShouldSendFec(/*force_close=*/true)); | 496 ASSERT_TRUE(creator_.ShouldSendFec(/*force_close=*/true)); |
| 497 | 497 |
| 498 // Force generation of FEC packet. | 498 // Force generation of FEC packet. |
| 499 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 499 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 500 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 500 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 501 // Turn off FEC protection. | 501 // Turn off FEC protection. |
| 502 creator_.set_should_fec_protect_next_packet(false); | |
| 503 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, | 502 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, |
| 504 /*is_fec_timeout=*/false); | 503 /*is_fec_timeout=*/false); |
| 505 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 504 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 506 serialized_packet_.packet_number_length); | 505 serialized_packet_.packet_number_length); |
| 507 ASSERT_EQ(3u, serialized_packet_.packet_number); | 506 ASSERT_EQ(3u, serialized_packet_.packet_number); |
| 508 | 507 |
| 509 { | 508 { |
| 510 InSequence s; | 509 InSequence s; |
| 511 EXPECT_CALL(framer_visitor_, OnPacket()); | 510 EXPECT_CALL(framer_visitor_, OnPacket()); |
| 512 EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_)); | 511 EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_)); |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 // FEC packet under construction. | 696 // FEC packet under construction. |
| 698 EXPECT_DFATAL(QuicPacketCreatorPeer::StopFecProtectingPackets(&creator_), | 697 EXPECT_DFATAL(QuicPacketCreatorPeer::StopFecProtectingPackets(&creator_), |
| 699 "Cannot stop FEC protection with open FEC group."); | 698 "Cannot stop FEC protection with open FEC group."); |
| 700 EXPECT_TRUE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); | 699 EXPECT_TRUE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); |
| 701 // Confirm that FEC packet is still under construction. | 700 // Confirm that FEC packet is still under construction. |
| 702 EXPECT_TRUE(creator_.ShouldSendFec(/*force_close=*/true)); | 701 EXPECT_TRUE(creator_.ShouldSendFec(/*force_close=*/true)); |
| 703 | 702 |
| 704 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 703 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 705 .WillOnce(Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); | 704 .WillOnce(Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); |
| 706 // Turn off FEC protection. | 705 // Turn off FEC protection. |
| 707 creator_.set_should_fec_protect_next_packet(false); | |
| 708 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, | 706 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, |
| 709 /*is_fec_timeout=*/false); | 707 /*is_fec_timeout=*/false); |
| 710 EXPECT_FALSE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); | 708 EXPECT_FALSE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); |
| 711 } | 709 } |
| 712 | 710 |
| 713 TEST_P(QuicPacketCreatorTest, SwitchFecOnWithStreamFrameQueued) { | 711 TEST_P(QuicPacketCreatorTest, SwitchFecOnWithStreamFrameQueued) { |
| 714 // Add a stream frame to the creator. | 712 // Add a stream frame to the creator. |
| 715 QuicFrame frame; | 713 QuicFrame frame; |
| 716 QuicIOVector io_vector(MakeIOVector("test")); | 714 QuicIOVector io_vector(MakeIOVector("test")); |
| 717 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame, | 715 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame, |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 823 const size_t overhead = GetPacketHeaderOverhead(NOT_IN_FEC_GROUP) + | 821 const size_t overhead = GetPacketHeaderOverhead(NOT_IN_FEC_GROUP) + |
| 824 GetEncryptionOverhead() + | 822 GetEncryptionOverhead() + |
| 825 GetStreamFrameOverhead(NOT_IN_FEC_GROUP); | 823 GetStreamFrameOverhead(NOT_IN_FEC_GROUP); |
| 826 size_t capacity = kDefaultMaxPacketSize - overhead; | 824 size_t capacity = kDefaultMaxPacketSize - overhead; |
| 827 // Now, test various sizes around this size. | 825 // Now, test various sizes around this size. |
| 828 for (int delta = -5; delta <= 5; ++delta) { | 826 for (int delta = -5; delta <= 5; ++delta) { |
| 829 string data(capacity + delta, 'A'); | 827 string data(capacity + delta, 'A'); |
| 830 size_t bytes_free = delta > 0 ? 0 : 0 - delta; | 828 size_t bytes_free = delta > 0 ? 0 : 0 - delta; |
| 831 QuicFrame frame; | 829 QuicFrame frame; |
| 832 QuicIOVector io_vector(MakeIOVector(data)); | 830 QuicIOVector io_vector(MakeIOVector(data)); |
| 833 size_t bytes_consumed = QuicPacketCreatorPeer::CreateStreamFrame( | 831 ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u, |
| 834 &creator_, kClientDataStreamId1, io_vector, 0u, kOffset, false, &frame); | 832 kOffset, false, false, &frame, |
| 835 EXPECT_EQ(capacity - bytes_free, bytes_consumed); | 833 MAY_FEC_PROTECT)); |
| 834 ASSERT_TRUE(frame.stream_frame); |
| 836 | 835 |
| 837 ASSERT_TRUE(creator_.AddSavedFrame(frame)); | |
| 838 // BytesFree() returns bytes available for the next frame, which will | 836 // BytesFree() returns bytes available for the next frame, which will |
| 839 // be two bytes smaller since the stream frame would need to be grown. | 837 // be two bytes smaller since the stream frame would need to be grown. |
| 840 EXPECT_EQ(2u, creator_.ExpansionOnNewFrame()); | 838 EXPECT_EQ(2u, creator_.ExpansionOnNewFrame()); |
| 841 size_t expected_bytes_free = bytes_free < 3 ? 0 : bytes_free - 2; | 839 size_t expected_bytes_free = bytes_free < 3 ? 0 : bytes_free - 2; |
| 842 EXPECT_EQ(expected_bytes_free, creator_.BytesFree()) << "delta: " << delta; | 840 EXPECT_EQ(expected_bytes_free, creator_.BytesFree()) << "delta: " << delta; |
| 843 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 841 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 844 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 842 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 845 creator_.Flush(); | 843 creator_.Flush(); |
| 846 ASSERT_TRUE(serialized_packet_.packet); | 844 ASSERT_TRUE(serialized_packet_.packet); |
| 847 ClearSerializedPacket(&serialized_packet_); | 845 ClearSerializedPacket(&serialized_packet_); |
| 848 } | 846 } |
| 849 } | 847 } |
| 850 | 848 |
| 851 TEST_P(QuicPacketCreatorTest, StreamFrameConsumptionWithFec) { | 849 TEST_P(QuicPacketCreatorTest, StreamFrameConsumptionWithFec) { |
| 852 // Send FEC packet every 6 packets. | 850 // Send FEC packet every 6 packets. |
| 853 creator_.set_max_packets_per_fec_group(6); | 851 creator_.set_max_packets_per_fec_group(6); |
| 854 // Turn on FEC protection. | 852 // Turn on FEC protection. |
| 855 QuicFrame frame; | 853 QuicFrame frame; |
| 856 QuicIOVector io_vector(MakeIOVector("test")); | 854 QuicIOVector io_vector(MakeIOVector("test")); |
| 857 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame, | 855 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame, |
| 858 MUST_FEC_PROTECT)); | 856 MUST_FEC_PROTECT)); |
| 859 EXPECT_TRUE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); | 857 EXPECT_TRUE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); |
| 858 |
| 860 // Serialize the packet. | 859 // Serialize the packet. |
| 861 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 860 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 862 .WillOnce(Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); | 861 .WillOnce(Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); |
| 863 creator_.Flush(); | 862 creator_.Flush(); |
| 864 // Compute the total overhead for a single frame in packet. | 863 // Compute the total overhead for a single frame in packet. |
| 865 const size_t overhead = GetPacketHeaderOverhead(IN_FEC_GROUP) + | 864 const size_t overhead = GetPacketHeaderOverhead(IN_FEC_GROUP) + |
| 866 GetEncryptionOverhead() + | 865 GetEncryptionOverhead() + |
| 867 GetStreamFrameOverhead(IN_FEC_GROUP); | 866 GetStreamFrameOverhead(IN_FEC_GROUP); |
| 868 size_t capacity = kDefaultMaxPacketSize - overhead; | 867 size_t capacity = kDefaultMaxPacketSize - overhead; |
| 869 // Now, test various sizes around this size. | 868 // Now, test various sizes around this size. |
| 870 for (int delta = -5; delta <= 5; ++delta) { | 869 for (int delta = -5; delta <= 5; ++delta) { |
| 871 string data(capacity + delta, 'A'); | 870 string data(capacity + delta, 'A'); |
| 872 size_t bytes_free = delta > 0 ? 0 : 0 - delta; | 871 size_t bytes_free = delta > 0 ? 0 : 0 - delta; |
| 873 QuicFrame frame; | 872 QuicFrame frame; |
| 874 QuicIOVector io_vector(MakeIOVector(data)); | 873 QuicIOVector io_vector(MakeIOVector(data)); |
| 875 size_t bytes_consumed = QuicPacketCreatorPeer::CreateStreamFrame( | 874 ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u, |
| 876 &creator_, kClientDataStreamId1, io_vector, 0u, kOffset, false, &frame); | 875 kOffset, false, false, &frame, |
| 877 EXPECT_EQ(capacity - bytes_free, bytes_consumed); | 876 MUST_FEC_PROTECT)); |
| 878 | 877 ASSERT_TRUE(frame.stream_frame); |
| 879 ASSERT_TRUE(creator_.AddSavedFrame(frame)); | |
| 880 // BytesFree() returns bytes available for the next frame. Since stream | 878 // BytesFree() returns bytes available for the next frame. Since stream |
| 881 // frame does not grow for FEC protected packets, this should be the same | 879 // frame does not grow for FEC protected packets, this should be the same |
| 882 // as bytes_free (bound by 0). | 880 // as bytes_free (bound by 0). |
| 883 EXPECT_EQ(0u, creator_.ExpansionOnNewFrame()); | 881 EXPECT_EQ(0u, creator_.ExpansionOnNewFrame()); |
| 884 size_t expected_bytes_free = bytes_free > 0 ? bytes_free : 0; | 882 size_t expected_bytes_free = bytes_free > 0 ? bytes_free : 0; |
| 885 EXPECT_EQ(expected_bytes_free, creator_.BytesFree()) << "delta: " << delta; | 883 EXPECT_EQ(expected_bytes_free, creator_.BytesFree()) << "delta: " << delta; |
| 886 { | 884 { |
| 887 InSequence s; | 885 InSequence s; |
| 888 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 886 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 889 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 887 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1278 EXPECT_TRUE(creator_.IsFecGroupOpen()); | 1276 EXPECT_TRUE(creator_.IsFecGroupOpen()); |
| 1279 // We do not have enough packets in the FEC group to trigger an FEC packet. | 1277 // We do not have enough packets in the FEC group to trigger an FEC packet. |
| 1280 EXPECT_FALSE(creator_.ShouldSendFec(/*force_close=*/false)); | 1278 EXPECT_FALSE(creator_.ShouldSendFec(/*force_close=*/false)); |
| 1281 // Should return true since there are packets in the FEC group. | 1279 // Should return true since there are packets in the FEC group. |
| 1282 EXPECT_TRUE(creator_.ShouldSendFec(/*force_close=*/true)); | 1280 EXPECT_TRUE(creator_.ShouldSendFec(/*force_close=*/true)); |
| 1283 | 1281 |
| 1284 // FEC group will be reset if FEC police is alarm trigger but FEC alarm does | 1282 // FEC group will be reset if FEC police is alarm trigger but FEC alarm does |
| 1285 // not fire. | 1283 // not fire. |
| 1286 EXPECT_CALL(delegate_, OnResetFecGroup()).Times(1); | 1284 EXPECT_CALL(delegate_, OnResetFecGroup()).Times(1); |
| 1287 creator_.set_fec_send_policy(FEC_ALARM_TRIGGER); | 1285 creator_.set_fec_send_policy(FEC_ALARM_TRIGGER); |
| 1288 creator_.set_should_fec_protect_next_packet(true); | |
| 1289 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, | 1286 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, |
| 1290 /*is_fec_timeout=*/false); | 1287 /*is_fec_timeout=*/false); |
| 1291 EXPECT_TRUE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); | 1288 EXPECT_FALSE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); |
| 1292 EXPECT_FALSE(creator_.IsFecGroupOpen()); | 1289 EXPECT_FALSE(creator_.IsFecGroupOpen()); |
| 1293 // We do not have enough packets in the FEC group to trigger an FEC packet. | 1290 // We do not have enough packets in the FEC group to trigger an FEC packet. |
| 1294 EXPECT_FALSE(creator_.ShouldSendFec(/*force_close=*/false)); | 1291 EXPECT_FALSE(creator_.ShouldSendFec(/*force_close=*/false)); |
| 1295 // Confirm that there is no FEC packet under construction. | 1292 // Confirm that there is no FEC packet under construction. |
| 1296 EXPECT_FALSE(creator_.ShouldSendFec(/*force_close=*/true)); | 1293 EXPECT_FALSE(creator_.ShouldSendFec(/*force_close=*/true)); |
| 1297 | 1294 |
| 1298 char buffer[kMaxPacketSize]; | 1295 char buffer[kMaxPacketSize]; |
| 1299 EXPECT_DFATAL( | 1296 EXPECT_DFATAL( |
| 1300 QuicPacketCreatorPeer::SerializeFec(&creator_, buffer, kMaxPacketSize), | 1297 QuicPacketCreatorPeer::SerializeFec(&creator_, buffer, kMaxPacketSize), |
| 1301 "SerializeFEC called but no group or zero packets in group."); | 1298 "SerializeFEC called but no group or zero packets in group."); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1317 // Should return false since we do not have enough packets in the FEC group to | 1314 // Should return false since we do not have enough packets in the FEC group to |
| 1318 // trigger an FEC packet. | 1315 // trigger an FEC packet. |
| 1319 ASSERT_FALSE(creator_.ShouldSendFec(/*force_close=*/false)); | 1316 ASSERT_FALSE(creator_.ShouldSendFec(/*force_close=*/false)); |
| 1320 // Should return true since there are packets in the FEC group. | 1317 // Should return true since there are packets in the FEC group. |
| 1321 ASSERT_TRUE(creator_.ShouldSendFec(/*force_close=*/true)); | 1318 ASSERT_TRUE(creator_.ShouldSendFec(/*force_close=*/true)); |
| 1322 | 1319 |
| 1323 // Change FEC policy, send FEC packet and close FEC group. | 1320 // Change FEC policy, send FEC packet and close FEC group. |
| 1324 creator_.set_fec_send_policy(FEC_ANY_TRIGGER); | 1321 creator_.set_fec_send_policy(FEC_ANY_TRIGGER); |
| 1325 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 1322 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 1326 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); | 1323 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
| 1327 creator_.set_should_fec_protect_next_packet(false); | |
| 1328 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, | 1324 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, |
| 1329 /*is_fec_timeout=*/false); | 1325 /*is_fec_timeout=*/false); |
| 1330 ASSERT_EQ(3u, serialized_packet_.packet_number); | 1326 ASSERT_EQ(3u, serialized_packet_.packet_number); |
| 1331 ClearSerializedPacket(&serialized_packet_); | 1327 ClearSerializedPacket(&serialized_packet_); |
| 1332 } | 1328 } |
| 1333 | 1329 |
| 1334 TEST_P(QuicPacketCreatorTest, ResetFecGroupWithQueuedFrames) { | 1330 TEST_P(QuicPacketCreatorTest, ResetFecGroupWithQueuedFrames) { |
| 1335 // Send FEC packet every 6 packets. | 1331 // Send FEC packet every 6 packets. |
| 1336 creator_.set_max_packets_per_fec_group(6); | 1332 creator_.set_max_packets_per_fec_group(6); |
| 1337 // Add a stream frame to the creator and turn on FEC protection. | 1333 // Add a stream frame to the creator and turn on FEC protection. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1348 | 1344 |
| 1349 EXPECT_CALL(delegate_, OnSerializedPacket(_)) | 1345 EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
| 1350 .WillOnce(Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); | 1346 .WillOnce(Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); |
| 1351 creator_.Flush(); | 1347 creator_.Flush(); |
| 1352 EXPECT_FALSE(creator_.HasPendingFrames()); | 1348 EXPECT_FALSE(creator_.HasPendingFrames()); |
| 1353 | 1349 |
| 1354 // FEC group will be reset if FEC police is alarm trigger but FEC alarm does | 1350 // FEC group will be reset if FEC police is alarm trigger but FEC alarm does |
| 1355 // not fire. | 1351 // not fire. |
| 1356 EXPECT_CALL(delegate_, OnResetFecGroup()).Times(1); | 1352 EXPECT_CALL(delegate_, OnResetFecGroup()).Times(1); |
| 1357 creator_.set_fec_send_policy(FEC_ALARM_TRIGGER); | 1353 creator_.set_fec_send_policy(FEC_ALARM_TRIGGER); |
| 1358 creator_.set_should_fec_protect_next_packet(true); | |
| 1359 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, | 1354 creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true, |
| 1360 /*is_fec_timeout=*/false); | 1355 /*is_fec_timeout=*/false); |
| 1361 EXPECT_FALSE(creator_.IsFecGroupOpen()); | 1356 EXPECT_FALSE(creator_.IsFecGroupOpen()); |
| 1362 } | 1357 } |
| 1363 | 1358 |
| 1364 TEST_P(QuicPacketCreatorTest, SetCurrentPath) { | 1359 TEST_P(QuicPacketCreatorTest, SetCurrentPath) { |
| 1365 // Current path is the default path. | 1360 // Current path is the default path. |
| 1366 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1361 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1367 EXPECT_EQ(0u, creator_.packet_number()); | 1362 EXPECT_EQ(0u, creator_.packet_number()); |
| 1368 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1363 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1450 .WillRepeatedly( | 1445 .WillRepeatedly( |
| 1451 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); | 1446 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); |
| 1452 creator_.Flush(); | 1447 creator_.Flush(); |
| 1453 EXPECT_FALSE(creator_.HasPendingFrames()); | 1448 EXPECT_FALSE(creator_.HasPendingFrames()); |
| 1454 creator_.SetCurrentPath(kPathId1, 1, 0); | 1449 creator_.SetCurrentPath(kPathId1, 1, 0); |
| 1455 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1450 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1456 EXPECT_FALSE(creator_.HasPendingFrames()); | 1451 EXPECT_FALSE(creator_.HasPendingFrames()); |
| 1457 EXPECT_EQ(0u, creator_.packet_number()); | 1452 EXPECT_EQ(0u, creator_.packet_number()); |
| 1458 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1453 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1459 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1454 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); |
| 1460 EXPECT_TRUE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); | 1455 EXPECT_FALSE(QuicPacketCreatorPeer::IsFecProtected(&creator_)); |
| 1461 | 1456 |
| 1462 // Change current path back. | 1457 // Change current path back. |
| 1463 creator_.SetCurrentPath(kDefaultPathId, 3, 2); | 1458 creator_.SetCurrentPath(kDefaultPathId, 3, 2); |
| 1464 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); | 1459 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); |
| 1465 // FEC packet consumes a packet number. | 1460 // FEC packet consumes a packet number. |
| 1466 EXPECT_EQ(2u, creator_.packet_number()); | 1461 EXPECT_EQ(2u, creator_.packet_number()); |
| 1467 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, | 1462 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
| 1468 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1463 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); |
| 1469 // Add a stream frame to the creator. | 1464 // Add a stream frame to the creator. |
| 1470 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame, | 1465 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame, |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1522 creator_.SetCurrentPath(kDefaultPathId, 2, 10000 / kDefaultMaxPacketSize); | 1517 creator_.SetCurrentPath(kDefaultPathId, 2, 10000 / kDefaultMaxPacketSize); |
| 1523 // FEC packet consumes a packet number. | 1518 // FEC packet consumes a packet number. |
| 1524 EXPECT_EQ(64 * 256 - max_packets_per_fec_group, creator_.packet_number()); | 1519 EXPECT_EQ(64 * 256 - max_packets_per_fec_group, creator_.packet_number()); |
| 1525 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, | 1520 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, |
| 1526 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); | 1521 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); |
| 1527 } | 1522 } |
| 1528 | 1523 |
| 1529 } // namespace | 1524 } // namespace |
| 1530 } // namespace test | 1525 } // namespace test |
| 1531 } // namespace net | 1526 } // namespace net |
| OLD | NEW |