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

Side by Side Diff: net/quic/core/quic_framer_test.cc

Issue 2403183002: relnote: Remove remaining now unused FEC code from QUIC. Merge internal change: 135007563 (Closed)
Patch Set: Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « net/quic/core/quic_framer.cc ('k') | net/quic/core/quic_protocol.h » ('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 (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/core/quic_framer.h" 5 #include "net/quic/core/quic_framer.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 return accept_public_header_; 236 return accept_public_header_;
237 } 237 }
238 238
239 bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override { 239 bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override {
240 return true; 240 return true;
241 } 241 }
242 242
243 void OnDecryptedPacket(EncryptionLevel level) override {} 243 void OnDecryptedPacket(EncryptionLevel level) override {}
244 244
245 bool OnPacketHeader(const QuicPacketHeader& header) override { 245 bool OnPacketHeader(const QuicPacketHeader& header) override {
246 if (header.fec_flag) {
247 // Drop any FEC packet.
248 return false;
249 }
250 ++packet_count_; 246 ++packet_count_;
251 header_.reset(new QuicPacketHeader(header)); 247 header_.reset(new QuicPacketHeader(header));
252 return accept_packet_; 248 return accept_packet_;
253 } 249 }
254 250
255 bool OnStreamFrame(const QuicStreamFrame& frame) override { 251 bool OnStreamFrame(const QuicStreamFrame& frame) override {
256 ++frame_count_; 252 ++frame_count_;
257 // Save a copy of the data so it is valid after the packet is processed. 253 // Save a copy of the data so it is valid after the packet is processed.
258 string* string_data = new string(); 254 string* string_data = new string();
259 StringPiece(frame.data_buffer, frame.data_length) 255 StringPiece(frame.data_buffer, frame.data_length)
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 675 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
680 : arraysize(packet_34), 676 : arraysize(packet_34),
681 false); 677 false);
682 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); 678 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
683 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error()); 679 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error());
684 ASSERT_TRUE(visitor_.header_.get()); 680 ASSERT_TRUE(visitor_.header_.get());
685 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id); 681 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
686 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag); 682 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
687 EXPECT_FALSE(visitor_.header_->public_header.reset_flag); 683 EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
688 EXPECT_FALSE(visitor_.header_->public_header.version_flag); 684 EXPECT_FALSE(visitor_.header_->public_header.version_flag);
689 EXPECT_FALSE(visitor_.header_->fec_flag);
690 EXPECT_FALSE(visitor_.header_->entropy_flag); 685 EXPECT_FALSE(visitor_.header_->entropy_flag);
691 EXPECT_EQ(0, visitor_.header_->entropy_hash); 686 EXPECT_EQ(0, visitor_.header_->entropy_hash);
692 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number); 687 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
693 688
694 // Now test framing boundaries. 689 // Now test framing boundaries.
695 for (size_t i = 0; 690 for (size_t i = 0;
696 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID, 691 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
697 !kIncludeVersion, !kIncludePathId, 692 !kIncludeVersion, !kIncludePathId,
698 !kIncludeDiversificationNonce, 693 !kIncludeDiversificationNonce,
699 PACKET_6BYTE_PACKET_NUMBER); 694 PACKET_6BYTE_PACKET_NUMBER);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 744 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
750 : arraysize(packet_34), 745 : arraysize(packet_34),
751 false); 746 false);
752 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); 747 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
753 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error()); 748 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error());
754 ASSERT_TRUE(visitor_.header_.get()); 749 ASSERT_TRUE(visitor_.header_.get());
755 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id); 750 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
756 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag); 751 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
757 EXPECT_FALSE(visitor_.header_->public_header.reset_flag); 752 EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
758 EXPECT_FALSE(visitor_.header_->public_header.version_flag); 753 EXPECT_FALSE(visitor_.header_->public_header.version_flag);
759 EXPECT_FALSE(visitor_.header_->fec_flag);
760 EXPECT_FALSE(visitor_.header_->entropy_flag); 754 EXPECT_FALSE(visitor_.header_->entropy_flag);
761 EXPECT_EQ(0, visitor_.header_->entropy_hash); 755 EXPECT_EQ(0, visitor_.header_->entropy_hash);
762 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number); 756 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
763 757
764 // Now test framing boundaries. 758 // Now test framing boundaries.
765 for (size_t i = 0; 759 for (size_t i = 0;
766 i < GetPacketHeaderSize(framer_.version(), PACKET_0BYTE_CONNECTION_ID, 760 i < GetPacketHeaderSize(framer_.version(), PACKET_0BYTE_CONNECTION_ID,
767 !kIncludeVersion, !kIncludePathId, 761 !kIncludeVersion, !kIncludePathId,
768 !kIncludeDiversificationNonce, 762 !kIncludeDiversificationNonce,
769 PACKET_6BYTE_PACKET_NUMBER); 763 PACKET_6BYTE_PACKET_NUMBER);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 : arraysize(packet_34), 818 : arraysize(packet_34),
825 false); 819 false);
826 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); 820 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
827 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error()); 821 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error());
828 ASSERT_TRUE(visitor_.header_.get()); 822 ASSERT_TRUE(visitor_.header_.get());
829 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id); 823 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
830 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag); 824 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
831 EXPECT_FALSE(visitor_.header_->public_header.reset_flag); 825 EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
832 EXPECT_TRUE(visitor_.header_->public_header.version_flag); 826 EXPECT_TRUE(visitor_.header_->public_header.version_flag);
833 EXPECT_EQ(GetParam(), visitor_.header_->public_header.versions[0]); 827 EXPECT_EQ(GetParam(), visitor_.header_->public_header.versions[0]);
834 EXPECT_FALSE(visitor_.header_->fec_flag);
835 EXPECT_FALSE(visitor_.header_->entropy_flag); 828 EXPECT_FALSE(visitor_.header_->entropy_flag);
836 EXPECT_EQ(0, visitor_.header_->entropy_hash); 829 EXPECT_EQ(0, visitor_.header_->entropy_hash);
837 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number); 830 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
838 831
839 // Now test framing boundaries. 832 // Now test framing boundaries.
840 for (size_t i = 0; 833 for (size_t i = 0;
841 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID, 834 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
842 kIncludeVersion, !kIncludePathId, 835 kIncludeVersion, !kIncludePathId,
843 !kIncludeDiversificationNonce, 836 !kIncludeDiversificationNonce,
844 PACKET_6BYTE_PACKET_NUMBER); 837 PACKET_6BYTE_PACKET_NUMBER);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 false); 893 false);
901 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); 894 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
902 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error()); 895 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error());
903 ASSERT_TRUE(visitor_.header_.get()); 896 ASSERT_TRUE(visitor_.header_.get());
904 EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, kIncludePathId, 897 EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion, kIncludePathId,
905 !kIncludeDiversificationNonce)); 898 !kIncludeDiversificationNonce));
906 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id); 899 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
907 EXPECT_TRUE(visitor_.header_->public_header.multipath_flag); 900 EXPECT_TRUE(visitor_.header_->public_header.multipath_flag);
908 EXPECT_FALSE(visitor_.header_->public_header.reset_flag); 901 EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
909 EXPECT_FALSE(visitor_.header_->public_header.version_flag); 902 EXPECT_FALSE(visitor_.header_->public_header.version_flag);
910 EXPECT_FALSE(visitor_.header_->fec_flag);
911 EXPECT_FALSE(visitor_.header_->entropy_flag); 903 EXPECT_FALSE(visitor_.header_->entropy_flag);
912 EXPECT_EQ(0, visitor_.header_->entropy_hash); 904 EXPECT_EQ(0, visitor_.header_->entropy_hash);
913 EXPECT_EQ(kPathId, visitor_.header_->path_id); 905 EXPECT_EQ(kPathId, visitor_.header_->path_id);
914 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number); 906 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
915 907
916 // Now test framing boundaries. 908 // Now test framing boundaries.
917 for (size_t i = 0; 909 for (size_t i = 0;
918 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID, 910 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
919 !kIncludeVersion, kIncludePathId, 911 !kIncludeVersion, kIncludePathId,
920 !kIncludeDiversificationNonce, 912 !kIncludeDiversificationNonce,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
983 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); 975 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
984 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error()); 976 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error());
985 ASSERT_TRUE(visitor_.header_.get()); 977 ASSERT_TRUE(visitor_.header_.get());
986 EXPECT_TRUE(CheckDecryption(encrypted, kIncludeVersion, kIncludePathId, 978 EXPECT_TRUE(CheckDecryption(encrypted, kIncludeVersion, kIncludePathId,
987 !kIncludeDiversificationNonce)); 979 !kIncludeDiversificationNonce));
988 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id); 980 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
989 EXPECT_TRUE(visitor_.header_->public_header.multipath_flag); 981 EXPECT_TRUE(visitor_.header_->public_header.multipath_flag);
990 EXPECT_FALSE(visitor_.header_->public_header.reset_flag); 982 EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
991 EXPECT_TRUE(visitor_.header_->public_header.version_flag); 983 EXPECT_TRUE(visitor_.header_->public_header.version_flag);
992 EXPECT_EQ(GetParam(), visitor_.header_->public_header.versions[0]); 984 EXPECT_EQ(GetParam(), visitor_.header_->public_header.versions[0]);
993 EXPECT_FALSE(visitor_.header_->fec_flag);
994 EXPECT_FALSE(visitor_.header_->entropy_flag); 985 EXPECT_FALSE(visitor_.header_->entropy_flag);
995 EXPECT_EQ(0, visitor_.header_->entropy_hash); 986 EXPECT_EQ(0, visitor_.header_->entropy_hash);
996 EXPECT_EQ(kPathId, visitor_.header_->path_id); 987 EXPECT_EQ(kPathId, visitor_.header_->path_id);
997 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number); 988 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
998 989
999 // Now test framing boundaries. 990 // Now test framing boundaries.
1000 for (size_t i = 0; 991 for (size_t i = 0;
1001 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID, 992 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
1002 !kIncludeVersion, kIncludePathId, 993 !kIncludeVersion, kIncludePathId,
1003 !kIncludeDiversificationNonce, 994 !kIncludeDiversificationNonce,
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1228 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 1219 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
1229 : arraysize(packet_34), 1220 : arraysize(packet_34),
1230 false); 1221 false);
1231 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); 1222 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
1232 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error()); 1223 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error());
1233 ASSERT_TRUE(visitor_.header_.get()); 1224 ASSERT_TRUE(visitor_.header_.get());
1234 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id); 1225 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
1235 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag); 1226 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
1236 EXPECT_FALSE(visitor_.header_->public_header.reset_flag); 1227 EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
1237 EXPECT_FALSE(visitor_.header_->public_header.version_flag); 1228 EXPECT_FALSE(visitor_.header_->public_header.version_flag);
1238 EXPECT_FALSE(visitor_.header_->fec_flag);
1239 EXPECT_FALSE(visitor_.header_->entropy_flag); 1229 EXPECT_FALSE(visitor_.header_->entropy_flag);
1240 EXPECT_EQ(0, visitor_.header_->entropy_hash); 1230 EXPECT_EQ(0, visitor_.header_->entropy_hash);
1241 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number); 1231 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
1242 1232
1243 // Now test framing boundaries. 1233 // Now test framing boundaries.
1244 for (size_t i = 0; 1234 for (size_t i = 0;
1245 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID, 1235 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
1246 !kIncludeVersion, !kIncludePathId, 1236 !kIncludeVersion, !kIncludePathId,
1247 !kIncludeDiversificationNonce, 1237 !kIncludeDiversificationNonce,
1248 PACKET_4BYTE_PACKET_NUMBER); 1238 PACKET_4BYTE_PACKET_NUMBER);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1305 false); 1295 false);
1306 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); 1296 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
1307 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error()); 1297 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error());
1308 ASSERT_TRUE(visitor_.header_.get()); 1298 ASSERT_TRUE(visitor_.header_.get());
1309 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id); 1299 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
1310 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag); 1300 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
1311 EXPECT_FALSE(visitor_.header_->public_header.reset_flag); 1301 EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
1312 EXPECT_FALSE(visitor_.header_->public_header.version_flag); 1302 EXPECT_FALSE(visitor_.header_->public_header.version_flag);
1313 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, 1303 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER,
1314 visitor_.header_->public_header.packet_number_length); 1304 visitor_.header_->public_header.packet_number_length);
1315 EXPECT_FALSE(visitor_.header_->fec_flag);
1316 EXPECT_FALSE(visitor_.header_->entropy_flag); 1305 EXPECT_FALSE(visitor_.header_->entropy_flag);
1317 EXPECT_EQ(0, visitor_.header_->entropy_hash); 1306 EXPECT_EQ(0, visitor_.header_->entropy_hash);
1318 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number); 1307 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
1319 1308
1320 // Now test framing boundaries. 1309 // Now test framing boundaries.
1321 for (size_t i = 0; 1310 for (size_t i = 0;
1322 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID, 1311 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
1323 !kIncludeVersion, !kIncludePathId, 1312 !kIncludeVersion, !kIncludePathId,
1324 !kIncludeDiversificationNonce, 1313 !kIncludeDiversificationNonce,
1325 PACKET_2BYTE_PACKET_NUMBER); 1314 PACKET_2BYTE_PACKET_NUMBER);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 false); 1371 false);
1383 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); 1372 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
1384 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error()); 1373 EXPECT_EQ(QUIC_MISSING_PAYLOAD, framer_.error());
1385 ASSERT_TRUE(visitor_.header_.get()); 1374 ASSERT_TRUE(visitor_.header_.get());
1386 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id); 1375 EXPECT_EQ(kConnectionId, visitor_.header_->public_header.connection_id);
1387 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag); 1376 EXPECT_FALSE(visitor_.header_->public_header.multipath_flag);
1388 EXPECT_FALSE(visitor_.header_->public_header.reset_flag); 1377 EXPECT_FALSE(visitor_.header_->public_header.reset_flag);
1389 EXPECT_FALSE(visitor_.header_->public_header.version_flag); 1378 EXPECT_FALSE(visitor_.header_->public_header.version_flag);
1390 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1379 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1391 visitor_.header_->public_header.packet_number_length); 1380 visitor_.header_->public_header.packet_number_length);
1392 EXPECT_FALSE(visitor_.header_->fec_flag);
1393 EXPECT_FALSE(visitor_.header_->entropy_flag); 1381 EXPECT_FALSE(visitor_.header_->entropy_flag);
1394 EXPECT_EQ(0, visitor_.header_->entropy_hash); 1382 EXPECT_EQ(0, visitor_.header_->entropy_hash);
1395 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number); 1383 EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
1396 1384
1397 // Now test framing boundaries. 1385 // Now test framing boundaries.
1398 for (size_t i = 0; 1386 for (size_t i = 0;
1399 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID, 1387 i < GetPacketHeaderSize(framer_.version(), PACKET_8BYTE_CONNECTION_ID,
1400 !kIncludeVersion, !kIncludePathId, 1388 !kIncludeVersion, !kIncludePathId,
1401 !kIncludeDiversificationNonce, 1389 !kIncludeDiversificationNonce,
1402 PACKET_1BYTE_PACKET_NUMBER); 1390 PACKET_1BYTE_PACKET_NUMBER);
(...skipping 22 matching lines...) Expand all
1425 } 1413 }
1426 1414
1427 TEST_P(QuicFramerTest, PacketNumberDecreasesThenIncreases) { 1415 TEST_P(QuicFramerTest, PacketNumberDecreasesThenIncreases) {
1428 FLAGS_quic_packet_numbers_largest_received = true; 1416 FLAGS_quic_packet_numbers_largest_received = true;
1429 // Test the case when a packet is received from the past and future packet 1417 // Test the case when a packet is received from the past and future packet
1430 // numbers are still calculated relative to the largest received packet. 1418 // numbers are still calculated relative to the largest received packet.
1431 QuicPacketHeader header; 1419 QuicPacketHeader header;
1432 header.public_header.connection_id = kConnectionId; 1420 header.public_header.connection_id = kConnectionId;
1433 header.public_header.reset_flag = false; 1421 header.public_header.reset_flag = false;
1434 header.public_header.version_flag = false; 1422 header.public_header.version_flag = false;
1435 header.fec_flag = false;
1436 header.entropy_flag = false; 1423 header.entropy_flag = false;
1437 header.packet_number = kPacketNumber - 2; 1424 header.packet_number = kPacketNumber - 2;
1438 1425
1439 QuicPaddingFrame padding_frame; 1426 QuicPaddingFrame padding_frame;
1440 QuicFrames frames; 1427 QuicFrames frames;
1441 frames.push_back(QuicFrame(padding_frame)); 1428 frames.push_back(QuicFrame(padding_frame));
1442 std::unique_ptr<QuicPacket> data(BuildDataPacket(header, frames)); 1429 std::unique_ptr<QuicPacket> data(BuildDataPacket(header, frames));
1443 ASSERT_TRUE(data != nullptr); 1430 ASSERT_TRUE(data != nullptr);
1444 1431
1445 QuicEncryptedPacket encrypted(data->data(), data->length(), false); 1432 QuicEncryptedPacket encrypted(data->data(), data->length(), false);
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
1677 // frame type (padding) 1664 // frame type (padding)
1678 0x00, 1665 0x00,
1679 0x00, 0x00, 0x00, 0x00 1666 0x00, 0x00, 0x00, 0x00
1680 }; 1667 };
1681 // clang-format on 1668 // clang-format on
1682 CheckProcessingFails(packet, arraysize(packet), 1669 CheckProcessingFails(packet, arraysize(packet),
1683 "Illegal private flags value.", 1670 "Illegal private flags value.",
1684 QUIC_INVALID_PACKET_HEADER); 1671 QUIC_INVALID_PACKET_HEADER);
1685 }; 1672 };
1686 1673
1687 TEST_P(QuicFramerTest, InvalidFECGroupOffset) {
1688 if (framer_.version() > QUIC_VERSION_33) {
1689 return;
1690 }
1691 // clang-format off
1692 unsigned char packet[] = {
1693 // public flags (8 byte connection_id)
1694 0x38,
1695 // connection_id
1696 0x10, 0x32, 0x54, 0x76,
1697 0x98, 0xBA, 0xDC, 0xFE,
1698 // packet number
1699 0x01, 0x00, 0x00, 0x00,
1700 0x00, 0x00,
1701 // private flags (fec group)
1702 0x02,
1703 // first fec protected packet offset
1704 0x10
1705 };
1706 // clang-format on
1707 CheckProcessingFails(packet, arraysize(packet),
1708 "Illegal private flags value.",
1709 QUIC_INVALID_PACKET_HEADER);
1710
1711 };
1712
1713 TEST_P(QuicFramerTest, PaddingFrame) { 1674 TEST_P(QuicFramerTest, PaddingFrame) {
1714 // clang-format off 1675 // clang-format off
1715 unsigned char packet[] = { 1676 unsigned char packet[] = {
1716 // public flags (8 byte connection_id) 1677 // public flags (8 byte connection_id)
1717 0x38, 1678 0x38,
1718 // connection_id 1679 // connection_id
1719 0x10, 0x32, 0x54, 0x76, 1680 0x10, 0x32, 0x54, 0x76,
1720 0x98, 0xBA, 0xDC, 0xFE, 1681 0x98, 0xBA, 0xDC, 0xFE,
1721 // packet number 1682 // packet number
1722 0xBC, 0x9A, 0x78, 0x56, 1683 0xBC, 0x9A, 0x78, 0x56,
(...skipping 2192 matching lines...) Expand 10 before | Expand all | Expand 10 after
3915 } else if (i < kVersionOffset) { 3876 } else if (i < kVersionOffset) {
3916 expected_error = "Unable to read ConnectionId."; 3877 expected_error = "Unable to read ConnectionId.";
3917 } else { 3878 } else {
3918 expected_error = "Unable to read supported version in negotiation."; 3879 expected_error = "Unable to read supported version in negotiation.";
3919 error_code = QUIC_INVALID_VERSION_NEGOTIATION_PACKET; 3880 error_code = QUIC_INVALID_VERSION_NEGOTIATION_PACKET;
3920 } 3881 }
3921 CheckProcessingFails(packet, i, expected_error, error_code); 3882 CheckProcessingFails(packet, i, expected_error, error_code);
3922 } 3883 }
3923 } 3884 }
3924 3885
3925 TEST_P(QuicFramerTest, DropFecPacket) {
3926 // clang-format off
3927 unsigned char packet[] = {
3928 // public flags (8 byte connection_id)
3929 0x38,
3930 // connection_id
3931 0x10, 0x32, 0x54, 0x76,
3932 0x98, 0xBA, 0xDC, 0xFE,
3933 // packet number
3934 0xBC, 0x9A, 0x78, 0x56,
3935 0x34, 0x12,
3936 // private flags (fec group & FEC)
3937 0x06,
3938 // first fec protected packet offset
3939 0x01,
3940
3941 // redundancy
3942 'a', 'b', 'c', 'd',
3943 'e', 'f', 'g', 'h',
3944 'i', 'j', 'k', 'l',
3945 'm', 'n', 'o', 'p',
3946 };
3947 if (framer_.version() > QUIC_VERSION_33) {
3948 return;
3949 }
3950 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
3951 EXPECT_FALSE(framer_.ProcessPacket(encrypted));
3952 EXPECT_EQ(QUIC_INVALID_PACKET_HEADER, framer_.error());
3953 EXPECT_FALSE(visitor_.header_.get());
3954 }
3955
3956 TEST_P(QuicFramerTest, BuildPaddingFramePacket) { 3886 TEST_P(QuicFramerTest, BuildPaddingFramePacket) {
3957 QuicPacketHeader header; 3887 QuicPacketHeader header;
3958 header.public_header.connection_id = kConnectionId; 3888 header.public_header.connection_id = kConnectionId;
3959 header.public_header.reset_flag = false; 3889 header.public_header.reset_flag = false;
3960 header.public_header.version_flag = false; 3890 header.public_header.version_flag = false;
3961 header.fec_flag = false;
3962 header.entropy_flag = false; 3891 header.entropy_flag = false;
3963 header.packet_number = kPacketNumber; 3892 header.packet_number = kPacketNumber;
3964 3893
3965 QuicPaddingFrame padding_frame; 3894 QuicPaddingFrame padding_frame;
3966 3895
3967 QuicFrames frames; 3896 QuicFrames frames;
3968 frames.push_back(QuicFrame(padding_frame)); 3897 frames.push_back(QuicFrame(padding_frame));
3969 3898
3970 // clang-format off 3899 // clang-format off
3971 unsigned char packet[kMaxPacketSize] = { 3900 unsigned char packet[kMaxPacketSize] = {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
4017 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 3946 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
4018 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 3947 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
4019 : arraysize(packet_34)); 3948 : arraysize(packet_34));
4020 } 3949 }
4021 3950
4022 TEST_P(QuicFramerTest, Build4ByteSequenceNumberPaddingFramePacket) { 3951 TEST_P(QuicFramerTest, Build4ByteSequenceNumberPaddingFramePacket) {
4023 QuicPacketHeader header; 3952 QuicPacketHeader header;
4024 header.public_header.connection_id = kConnectionId; 3953 header.public_header.connection_id = kConnectionId;
4025 header.public_header.reset_flag = false; 3954 header.public_header.reset_flag = false;
4026 header.public_header.version_flag = false; 3955 header.public_header.version_flag = false;
4027 header.fec_flag = false;
4028 header.entropy_flag = false; 3956 header.entropy_flag = false;
4029 header.public_header.packet_number_length = PACKET_4BYTE_PACKET_NUMBER; 3957 header.public_header.packet_number_length = PACKET_4BYTE_PACKET_NUMBER;
4030 header.packet_number = kPacketNumber; 3958 header.packet_number = kPacketNumber;
4031 3959
4032 QuicPaddingFrame padding_frame; 3960 QuicPaddingFrame padding_frame;
4033 3961
4034 QuicFrames frames; 3962 QuicFrames frames;
4035 frames.push_back(QuicFrame(padding_frame)); 3963 frames.push_back(QuicFrame(padding_frame));
4036 3964
4037 // clang-format off 3965 // clang-format off
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
4082 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 4010 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
4083 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 4011 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
4084 : arraysize(packet_34)); 4012 : arraysize(packet_34));
4085 } 4013 }
4086 4014
4087 TEST_P(QuicFramerTest, Build2ByteSequenceNumberPaddingFramePacket) { 4015 TEST_P(QuicFramerTest, Build2ByteSequenceNumberPaddingFramePacket) {
4088 QuicPacketHeader header; 4016 QuicPacketHeader header;
4089 header.public_header.connection_id = kConnectionId; 4017 header.public_header.connection_id = kConnectionId;
4090 header.public_header.reset_flag = false; 4018 header.public_header.reset_flag = false;
4091 header.public_header.version_flag = false; 4019 header.public_header.version_flag = false;
4092 header.fec_flag = false;
4093 header.entropy_flag = false; 4020 header.entropy_flag = false;
4094 header.public_header.packet_number_length = PACKET_2BYTE_PACKET_NUMBER; 4021 header.public_header.packet_number_length = PACKET_2BYTE_PACKET_NUMBER;
4095 header.packet_number = kPacketNumber; 4022 header.packet_number = kPacketNumber;
4096 4023
4097 QuicPaddingFrame padding_frame; 4024 QuicPaddingFrame padding_frame;
4098 4025
4099 QuicFrames frames; 4026 QuicFrames frames;
4100 frames.push_back(QuicFrame(padding_frame)); 4027 frames.push_back(QuicFrame(padding_frame));
4101 4028
4102 // clang-format off 4029 // clang-format off
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
4147 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 4074 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
4148 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 4075 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
4149 : arraysize(packet_34)); 4076 : arraysize(packet_34));
4150 } 4077 }
4151 4078
4152 TEST_P(QuicFramerTest, Build1ByteSequenceNumberPaddingFramePacket) { 4079 TEST_P(QuicFramerTest, Build1ByteSequenceNumberPaddingFramePacket) {
4153 QuicPacketHeader header; 4080 QuicPacketHeader header;
4154 header.public_header.connection_id = kConnectionId; 4081 header.public_header.connection_id = kConnectionId;
4155 header.public_header.reset_flag = false; 4082 header.public_header.reset_flag = false;
4156 header.public_header.version_flag = false; 4083 header.public_header.version_flag = false;
4157 header.fec_flag = false;
4158 header.entropy_flag = false; 4084 header.entropy_flag = false;
4159 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; 4085 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER;
4160 header.packet_number = kPacketNumber; 4086 header.packet_number = kPacketNumber;
4161 4087
4162 QuicPaddingFrame padding_frame; 4088 QuicPaddingFrame padding_frame;
4163 4089
4164 QuicFrames frames; 4090 QuicFrames frames;
4165 frames.push_back(QuicFrame(padding_frame)); 4091 frames.push_back(QuicFrame(padding_frame));
4166 4092
4167 // clang-format off 4093 // clang-format off
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
4212 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 4138 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
4213 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 4139 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
4214 : arraysize(packet_34)); 4140 : arraysize(packet_34));
4215 } 4141 }
4216 4142
4217 TEST_P(QuicFramerTest, BuildStreamFramePacket) { 4143 TEST_P(QuicFramerTest, BuildStreamFramePacket) {
4218 QuicPacketHeader header; 4144 QuicPacketHeader header;
4219 header.public_header.connection_id = kConnectionId; 4145 header.public_header.connection_id = kConnectionId;
4220 header.public_header.reset_flag = false; 4146 header.public_header.reset_flag = false;
4221 header.public_header.version_flag = false; 4147 header.public_header.version_flag = false;
4222 header.fec_flag = false;
4223 header.entropy_flag = true; 4148 header.entropy_flag = true;
4224 header.packet_number = kPacketNumber; 4149 header.packet_number = kPacketNumber;
4225 4150
4226 QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset, 4151 QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset,
4227 StringPiece("hello world!")); 4152 StringPiece("hello world!"));
4228 4153
4229 QuicFrames frames; 4154 QuicFrames frames;
4230 frames.push_back(QuicFrame(&stream_frame)); 4155 frames.push_back(QuicFrame(&stream_frame));
4231 4156
4232 // clang-format off 4157 // clang-format off
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
4287 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 4212 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
4288 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 4213 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
4289 : arraysize(packet_34)); 4214 : arraysize(packet_34));
4290 } 4215 }
4291 4216
4292 TEST_P(QuicFramerTest, BuildStreamFramePacketWithVersionFlag) { 4217 TEST_P(QuicFramerTest, BuildStreamFramePacketWithVersionFlag) {
4293 QuicPacketHeader header; 4218 QuicPacketHeader header;
4294 header.public_header.connection_id = kConnectionId; 4219 header.public_header.connection_id = kConnectionId;
4295 header.public_header.reset_flag = false; 4220 header.public_header.reset_flag = false;
4296 header.public_header.version_flag = true; 4221 header.public_header.version_flag = true;
4297 header.fec_flag = false;
4298 header.entropy_flag = true; 4222 header.entropy_flag = true;
4299 header.packet_number = kPacketNumber; 4223 header.packet_number = kPacketNumber;
4300 4224
4301 QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset, 4225 QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset,
4302 StringPiece("hello world!")); 4226 StringPiece("hello world!"));
4303 4227
4304 QuicFrames frames; 4228 QuicFrames frames;
4305 frames.push_back(QuicFrame(&stream_frame)); 4229 frames.push_back(QuicFrame(&stream_frame));
4306 4230
4307 // clang-format off 4231 // clang-format off
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
4358 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 4282 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
4359 : arraysize(packet_34)); 4283 : arraysize(packet_34));
4360 } 4284 }
4361 4285
4362 TEST_P(QuicFramerTest, BuildStreamFramePacketWithMultipathFlag) { 4286 TEST_P(QuicFramerTest, BuildStreamFramePacketWithMultipathFlag) {
4363 QuicPacketHeader header; 4287 QuicPacketHeader header;
4364 header.public_header.connection_id = kConnectionId; 4288 header.public_header.connection_id = kConnectionId;
4365 header.public_header.multipath_flag = true; 4289 header.public_header.multipath_flag = true;
4366 header.public_header.reset_flag = false; 4290 header.public_header.reset_flag = false;
4367 header.public_header.version_flag = false; 4291 header.public_header.version_flag = false;
4368 header.fec_flag = false;
4369 header.entropy_flag = true; 4292 header.entropy_flag = true;
4370 header.path_id = kPathId; 4293 header.path_id = kPathId;
4371 header.packet_number = kPacketNumber; 4294 header.packet_number = kPacketNumber;
4372 4295
4373 QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset, 4296 QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset,
4374 StringPiece("hello world!")); 4297 StringPiece("hello world!"));
4375 4298
4376 QuicFrames frames; 4299 QuicFrames frames;
4377 frames.push_back(QuicFrame(&stream_frame)); 4300 frames.push_back(QuicFrame(&stream_frame));
4378 4301
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
4439 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 4362 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
4440 : arraysize(packet_34)); 4363 : arraysize(packet_34));
4441 } 4364 }
4442 4365
4443 TEST_P(QuicFramerTest, BuildStreamFramePacketWithBothVersionAndMultipathFlag) { 4366 TEST_P(QuicFramerTest, BuildStreamFramePacketWithBothVersionAndMultipathFlag) {
4444 QuicPacketHeader header; 4367 QuicPacketHeader header;
4445 header.public_header.connection_id = kConnectionId; 4368 header.public_header.connection_id = kConnectionId;
4446 header.public_header.multipath_flag = true; 4369 header.public_header.multipath_flag = true;
4447 header.public_header.reset_flag = false; 4370 header.public_header.reset_flag = false;
4448 header.public_header.version_flag = true; 4371 header.public_header.version_flag = true;
4449 header.fec_flag = false;
4450 header.entropy_flag = true; 4372 header.entropy_flag = true;
4451 header.path_id = kPathId; 4373 header.path_id = kPathId;
4452 header.packet_number = kPacketNumber; 4374 header.packet_number = kPacketNumber;
4453 4375
4454 QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset, 4376 QuicStreamFrame stream_frame(kStreamId, true, kStreamOffset,
4455 StringPiece("hello world!")); 4377 StringPiece("hello world!"));
4456 4378
4457 QuicFrames frames; 4379 QuicFrames frames;
4458 frames.push_back(QuicFrame(&stream_frame)); 4380 frames.push_back(QuicFrame(&stream_frame));
4459 4381
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
4549 4471
4550 TEST_P(QuicFramerTest, BuildAckFramePacket) { 4472 TEST_P(QuicFramerTest, BuildAckFramePacket) {
4551 if (framer_.version() > QUIC_VERSION_33) { 4473 if (framer_.version() > QUIC_VERSION_33) {
4552 return; 4474 return;
4553 } 4475 }
4554 4476
4555 QuicPacketHeader header; 4477 QuicPacketHeader header;
4556 header.public_header.connection_id = kConnectionId; 4478 header.public_header.connection_id = kConnectionId;
4557 header.public_header.reset_flag = false; 4479 header.public_header.reset_flag = false;
4558 header.public_header.version_flag = false; 4480 header.public_header.version_flag = false;
4559 header.fec_flag = false;
4560 header.entropy_flag = true; 4481 header.entropy_flag = true;
4561 header.packet_number = kPacketNumber; 4482 header.packet_number = kPacketNumber;
4562 4483
4563 QuicAckFrame ack_frame; 4484 QuicAckFrame ack_frame;
4564 ack_frame.entropy_hash = 0x43; 4485 ack_frame.entropy_hash = 0x43;
4565 ack_frame.largest_observed = kLargestObserved; 4486 ack_frame.largest_observed = kLargestObserved;
4566 ack_frame.ack_delay_time = QuicTime::Delta::Zero(); 4487 ack_frame.ack_delay_time = QuicTime::Delta::Zero();
4567 ack_frame.packets.Add(kMissingPacket); 4488 ack_frame.packets.Add(kMissingPacket);
4568 4489
4569 QuicFrames frames; 4490 QuicFrames frames;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
4614 4535
4615 TEST_P(QuicFramerTest, BuildTruncatedAckFrameLargePacket) { 4536 TEST_P(QuicFramerTest, BuildTruncatedAckFrameLargePacket) {
4616 if (framer_.version() > QUIC_VERSION_33) { 4537 if (framer_.version() > QUIC_VERSION_33) {
4617 return; 4538 return;
4618 } 4539 }
4619 4540
4620 QuicPacketHeader header; 4541 QuicPacketHeader header;
4621 header.public_header.connection_id = kConnectionId; 4542 header.public_header.connection_id = kConnectionId;
4622 header.public_header.reset_flag = false; 4543 header.public_header.reset_flag = false;
4623 header.public_header.version_flag = false; 4544 header.public_header.version_flag = false;
4624 header.fec_flag = false;
4625 header.entropy_flag = true; 4545 header.entropy_flag = true;
4626 header.packet_number = kPacketNumber; 4546 header.packet_number = kPacketNumber;
4627 4547
4628 QuicAckFrame ack_frame; 4548 QuicAckFrame ack_frame;
4629 // This entropy hash is different from what shows up in the packet below, 4549 // This entropy hash is different from what shows up in the packet below,
4630 // since entropy is recomputed by the framer on ack truncation (by 4550 // since entropy is recomputed by the framer on ack truncation (by
4631 // TestEntropyCalculator for this test.) 4551 // TestEntropyCalculator for this test.)
4632 ack_frame.entropy_hash = 0x43; 4552 ack_frame.entropy_hash = 0x43;
4633 ack_frame.largest_observed = 2 * 300; 4553 ack_frame.largest_observed = 2 * 300;
4634 ack_frame.ack_delay_time = QuicTime::Delta::Zero(); 4554 ack_frame.ack_delay_time = QuicTime::Delta::Zero();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
4726 4646
4727 TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) { 4647 TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) {
4728 if (framer_.version() > QUIC_VERSION_33) { 4648 if (framer_.version() > QUIC_VERSION_33) {
4729 return; 4649 return;
4730 } 4650 }
4731 4651
4732 QuicPacketHeader header; 4652 QuicPacketHeader header;
4733 header.public_header.connection_id = kConnectionId; 4653 header.public_header.connection_id = kConnectionId;
4734 header.public_header.reset_flag = false; 4654 header.public_header.reset_flag = false;
4735 header.public_header.version_flag = false; 4655 header.public_header.version_flag = false;
4736 header.fec_flag = false;
4737 header.entropy_flag = true; 4656 header.entropy_flag = true;
4738 header.packet_number = kPacketNumber; 4657 header.packet_number = kPacketNumber;
4739 4658
4740 QuicAckFrame ack_frame; 4659 QuicAckFrame ack_frame;
4741 // This entropy hash is different from what shows up in the packet below, 4660 // This entropy hash is different from what shows up in the packet below,
4742 // since entropy is recomputed by the framer on ack truncation (by 4661 // since entropy is recomputed by the framer on ack truncation (by
4743 // TestEntropyCalculator for this test.) 4662 // TestEntropyCalculator for this test.)
4744 ack_frame.entropy_hash = 0x43; 4663 ack_frame.entropy_hash = 0x43;
4745 ack_frame.largest_observed = 2 * 300; 4664 ack_frame.largest_observed = 2 * 300;
4746 ack_frame.ack_delay_time = QuicTime::Delta::Zero(); 4665 ack_frame.ack_delay_time = QuicTime::Delta::Zero();
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
5044 } 4963 }
5045 4964
5046 TEST_P(QuicFramerTest, BuildStopWaitingPacket) { 4965 TEST_P(QuicFramerTest, BuildStopWaitingPacket) {
5047 if (framer_.version() > QUIC_VERSION_33) { 4966 if (framer_.version() > QUIC_VERSION_33) {
5048 return; 4967 return;
5049 } 4968 }
5050 QuicPacketHeader header; 4969 QuicPacketHeader header;
5051 header.public_header.connection_id = kConnectionId; 4970 header.public_header.connection_id = kConnectionId;
5052 header.public_header.reset_flag = false; 4971 header.public_header.reset_flag = false;
5053 header.public_header.version_flag = false; 4972 header.public_header.version_flag = false;
5054 header.fec_flag = false;
5055 header.entropy_flag = true; 4973 header.entropy_flag = true;
5056 header.packet_number = kPacketNumber; 4974 header.packet_number = kPacketNumber;
5057 4975
5058 QuicStopWaitingFrame stop_waiting_frame; 4976 QuicStopWaitingFrame stop_waiting_frame;
5059 stop_waiting_frame.entropy_hash = 0x14; 4977 stop_waiting_frame.entropy_hash = 0x14;
5060 stop_waiting_frame.least_unacked = kLeastUnacked; 4978 stop_waiting_frame.least_unacked = kLeastUnacked;
5061 4979
5062 QuicFrames frames; 4980 QuicFrames frames;
5063 frames.push_back(QuicFrame(&stop_waiting_frame)); 4981 frames.push_back(QuicFrame(&stop_waiting_frame));
5064 4982
(...skipping 29 matching lines...) Expand all
5094 } 5012 }
5095 5013
5096 TEST_P(QuicFramerTest, BuildNewStopWaitingPacket) { 5014 TEST_P(QuicFramerTest, BuildNewStopWaitingPacket) {
5097 if (framer_.version() <= QUIC_VERSION_33) { 5015 if (framer_.version() <= QUIC_VERSION_33) {
5098 return; 5016 return;
5099 } 5017 }
5100 QuicPacketHeader header; 5018 QuicPacketHeader header;
5101 header.public_header.connection_id = kConnectionId; 5019 header.public_header.connection_id = kConnectionId;
5102 header.public_header.reset_flag = false; 5020 header.public_header.reset_flag = false;
5103 header.public_header.version_flag = false; 5021 header.public_header.version_flag = false;
5104 header.fec_flag = false;
5105 header.entropy_flag = false; 5022 header.entropy_flag = false;
5106 header.packet_number = kPacketNumber; 5023 header.packet_number = kPacketNumber;
5107 5024
5108 QuicStopWaitingFrame stop_waiting_frame; 5025 QuicStopWaitingFrame stop_waiting_frame;
5109 stop_waiting_frame.least_unacked = kLeastUnacked; 5026 stop_waiting_frame.least_unacked = kLeastUnacked;
5110 5027
5111 QuicFrames frames; 5028 QuicFrames frames;
5112 frames.push_back(QuicFrame(&stop_waiting_frame)); 5029 frames.push_back(QuicFrame(&stop_waiting_frame));
5113 5030
5114 // clang-format off 5031 // clang-format off
(...skipping 20 matching lines...) Expand all
5135 test::CompareCharArraysWithHexError("constructed packet", data->data(), 5052 test::CompareCharArraysWithHexError("constructed packet", data->data(),
5136 data->length(), AsChars(packet), 5053 data->length(), AsChars(packet),
5137 arraysize(packet)); 5054 arraysize(packet));
5138 } 5055 }
5139 5056
5140 TEST_P(QuicFramerTest, BuildRstFramePacketQuic) { 5057 TEST_P(QuicFramerTest, BuildRstFramePacketQuic) {
5141 QuicPacketHeader header; 5058 QuicPacketHeader header;
5142 header.public_header.connection_id = kConnectionId; 5059 header.public_header.connection_id = kConnectionId;
5143 header.public_header.reset_flag = false; 5060 header.public_header.reset_flag = false;
5144 header.public_header.version_flag = false; 5061 header.public_header.version_flag = false;
5145 header.fec_flag = false;
5146 header.entropy_flag = false; 5062 header.entropy_flag = false;
5147 header.packet_number = kPacketNumber; 5063 header.packet_number = kPacketNumber;
5148 5064
5149 QuicRstStreamFrame rst_frame; 5065 QuicRstStreamFrame rst_frame;
5150 rst_frame.stream_id = kStreamId; 5066 rst_frame.stream_id = kStreamId;
5151 rst_frame.error_code = static_cast<QuicRstStreamErrorCode>(0x05060708); 5067 rst_frame.error_code = static_cast<QuicRstStreamErrorCode>(0x05060708);
5152 rst_frame.byte_offset = 0x0807060504030201; 5068 rst_frame.byte_offset = 0x0807060504030201;
5153 5069
5154 // clang-format off 5070 // clang-format off
5155 unsigned char packet[] = { 5071 unsigned char packet[] = {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
5208 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 5124 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
5209 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 5125 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
5210 : arraysize(packet_34)); 5126 : arraysize(packet_34));
5211 } 5127 }
5212 5128
5213 TEST_P(QuicFramerTest, BuildCloseFramePacket) { 5129 TEST_P(QuicFramerTest, BuildCloseFramePacket) {
5214 QuicPacketHeader header; 5130 QuicPacketHeader header;
5215 header.public_header.connection_id = kConnectionId; 5131 header.public_header.connection_id = kConnectionId;
5216 header.public_header.reset_flag = false; 5132 header.public_header.reset_flag = false;
5217 header.public_header.version_flag = false; 5133 header.public_header.version_flag = false;
5218 header.fec_flag = false;
5219 header.entropy_flag = true; 5134 header.entropy_flag = true;
5220 header.packet_number = kPacketNumber; 5135 header.packet_number = kPacketNumber;
5221 5136
5222 QuicConnectionCloseFrame close_frame; 5137 QuicConnectionCloseFrame close_frame;
5223 close_frame.error_code = static_cast<QuicErrorCode>(0x05060708); 5138 close_frame.error_code = static_cast<QuicErrorCode>(0x05060708);
5224 close_frame.error_details = "because I can"; 5139 close_frame.error_details = "because I can";
5225 5140
5226 QuicFrames frames; 5141 QuicFrames frames;
5227 frames.push_back(QuicFrame(&close_frame)); 5142 frames.push_back(QuicFrame(&close_frame));
5228 5143
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
5285 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 5200 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
5286 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 5201 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
5287 : arraysize(packet_34)); 5202 : arraysize(packet_34));
5288 } 5203 }
5289 5204
5290 TEST_P(QuicFramerTest, BuildGoAwayPacket) { 5205 TEST_P(QuicFramerTest, BuildGoAwayPacket) {
5291 QuicPacketHeader header; 5206 QuicPacketHeader header;
5292 header.public_header.connection_id = kConnectionId; 5207 header.public_header.connection_id = kConnectionId;
5293 header.public_header.reset_flag = false; 5208 header.public_header.reset_flag = false;
5294 header.public_header.version_flag = false; 5209 header.public_header.version_flag = false;
5295 header.fec_flag = false;
5296 header.entropy_flag = true; 5210 header.entropy_flag = true;
5297 header.packet_number = kPacketNumber; 5211 header.packet_number = kPacketNumber;
5298 5212
5299 QuicGoAwayFrame goaway_frame; 5213 QuicGoAwayFrame goaway_frame;
5300 goaway_frame.error_code = static_cast<QuicErrorCode>(0x05060708); 5214 goaway_frame.error_code = static_cast<QuicErrorCode>(0x05060708);
5301 goaway_frame.last_good_stream_id = kStreamId; 5215 goaway_frame.last_good_stream_id = kStreamId;
5302 goaway_frame.reason_phrase = "because I can"; 5216 goaway_frame.reason_phrase = "because I can";
5303 5217
5304 QuicFrames frames; 5218 QuicFrames frames;
5305 frames.push_back(QuicFrame(&goaway_frame)); 5219 frames.push_back(QuicFrame(&goaway_frame));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
5366 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 5280 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
5367 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 5281 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
5368 : arraysize(packet_34)); 5282 : arraysize(packet_34));
5369 } 5283 }
5370 5284
5371 TEST_P(QuicFramerTest, BuildWindowUpdatePacket) { 5285 TEST_P(QuicFramerTest, BuildWindowUpdatePacket) {
5372 QuicPacketHeader header; 5286 QuicPacketHeader header;
5373 header.public_header.connection_id = kConnectionId; 5287 header.public_header.connection_id = kConnectionId;
5374 header.public_header.reset_flag = false; 5288 header.public_header.reset_flag = false;
5375 header.public_header.version_flag = false; 5289 header.public_header.version_flag = false;
5376 header.fec_flag = false;
5377 header.entropy_flag = true; 5290 header.entropy_flag = true;
5378 header.packet_number = kPacketNumber; 5291 header.packet_number = kPacketNumber;
5379 5292
5380 QuicWindowUpdateFrame window_update_frame; 5293 QuicWindowUpdateFrame window_update_frame;
5381 window_update_frame.stream_id = kStreamId; 5294 window_update_frame.stream_id = kStreamId;
5382 window_update_frame.byte_offset = 0x1122334455667788; 5295 window_update_frame.byte_offset = 0x1122334455667788;
5383 5296
5384 QuicFrames frames; 5297 QuicFrames frames;
5385 frames.push_back(QuicFrame(&window_update_frame)); 5298 frames.push_back(QuicFrame(&window_update_frame));
5386 5299
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
5434 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 5347 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
5435 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 5348 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
5436 : arraysize(packet_34)); 5349 : arraysize(packet_34));
5437 } 5350 }
5438 5351
5439 TEST_P(QuicFramerTest, BuildBlockedPacket) { 5352 TEST_P(QuicFramerTest, BuildBlockedPacket) {
5440 QuicPacketHeader header; 5353 QuicPacketHeader header;
5441 header.public_header.connection_id = kConnectionId; 5354 header.public_header.connection_id = kConnectionId;
5442 header.public_header.reset_flag = false; 5355 header.public_header.reset_flag = false;
5443 header.public_header.version_flag = false; 5356 header.public_header.version_flag = false;
5444 header.fec_flag = false;
5445 header.entropy_flag = true; 5357 header.entropy_flag = true;
5446 header.packet_number = kPacketNumber; 5358 header.packet_number = kPacketNumber;
5447 5359
5448 QuicBlockedFrame blocked_frame; 5360 QuicBlockedFrame blocked_frame;
5449 blocked_frame.stream_id = kStreamId; 5361 blocked_frame.stream_id = kStreamId;
5450 5362
5451 QuicFrames frames; 5363 QuicFrames frames;
5452 frames.push_back(QuicFrame(&blocked_frame)); 5364 frames.push_back(QuicFrame(&blocked_frame));
5453 5365
5454 // clang-format off 5366 // clang-format off
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5495 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34), 5407 AsChars(framer_.version() <= QUIC_VERSION_33 ? packet : packet_34),
5496 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 5408 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
5497 : arraysize(packet_34)); 5409 : arraysize(packet_34));
5498 } 5410 }
5499 5411
5500 TEST_P(QuicFramerTest, BuildPingPacket) { 5412 TEST_P(QuicFramerTest, BuildPingPacket) {
5501 QuicPacketHeader header; 5413 QuicPacketHeader header;
5502 header.public_header.connection_id = kConnectionId; 5414 header.public_header.connection_id = kConnectionId;
5503 header.public_header.reset_flag = false; 5415 header.public_header.reset_flag = false;
5504 header.public_header.version_flag = false; 5416 header.public_header.version_flag = false;
5505 header.fec_flag = false;
5506 header.entropy_flag = true; 5417 header.entropy_flag = true;
5507 header.packet_number = kPacketNumber; 5418 header.packet_number = kPacketNumber;
5508 5419
5509 QuicPingFrame ping_frame; 5420 QuicPingFrame ping_frame;
5510 5421
5511 QuicFrames frames; 5422 QuicFrames frames;
5512 frames.push_back(QuicFrame(ping_frame)); 5423 frames.push_back(QuicFrame(ping_frame));
5513 5424
5514 // clang-format off 5425 // clang-format off
5515 unsigned char packet[] = { 5426 unsigned char packet[] = {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
5553 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 5464 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
5554 : arraysize(packet_34)); 5465 : arraysize(packet_34));
5555 } 5466 }
5556 5467
5557 TEST_P(QuicFramerTest, BuildPathClosePacket) { 5468 TEST_P(QuicFramerTest, BuildPathClosePacket) {
5558 QuicPacketHeader header; 5469 QuicPacketHeader header;
5559 header.public_header.connection_id = kConnectionId; 5470 header.public_header.connection_id = kConnectionId;
5560 header.public_header.multipath_flag = true; 5471 header.public_header.multipath_flag = true;
5561 header.public_header.reset_flag = false; 5472 header.public_header.reset_flag = false;
5562 header.public_header.version_flag = false; 5473 header.public_header.version_flag = false;
5563 header.fec_flag = false;
5564 header.entropy_flag = true; 5474 header.entropy_flag = true;
5565 header.path_id = kDefaultPathId; 5475 header.path_id = kDefaultPathId;
5566 header.packet_number = kPacketNumber; 5476 header.packet_number = kPacketNumber;
5567 5477
5568 QuicPathCloseFrame path_close; 5478 QuicPathCloseFrame path_close;
5569 path_close.path_id = kPathId; 5479 path_close.path_id = kPathId;
5570 QuicFrames frames; 5480 QuicFrames frames;
5571 frames.push_back(QuicFrame(&path_close)); 5481 frames.push_back(QuicFrame(&path_close));
5572 5482
5573 // clang-format off 5483 // clang-format off
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
5616 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) 5526 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet)
5617 : arraysize(packet_34)); 5527 : arraysize(packet_34));
5618 } 5528 }
5619 5529
5620 // Test that the MTU discovery packet is serialized correctly as a PING packet. 5530 // Test that the MTU discovery packet is serialized correctly as a PING packet.
5621 TEST_P(QuicFramerTest, BuildMtuDiscoveryPacket) { 5531 TEST_P(QuicFramerTest, BuildMtuDiscoveryPacket) {
5622 QuicPacketHeader header; 5532 QuicPacketHeader header;
5623 header.public_header.connection_id = kConnectionId; 5533 header.public_header.connection_id = kConnectionId;
5624 header.public_header.reset_flag = false; 5534 header.public_header.reset_flag = false;
5625 header.public_header.version_flag = false; 5535 header.public_header.version_flag = false;
5626 header.fec_flag = false;
5627 header.entropy_flag = true; 5536 header.entropy_flag = true;
5628 header.packet_number = kPacketNumber; 5537 header.packet_number = kPacketNumber;
5629 5538
5630 QuicMtuDiscoveryFrame mtu_discovery_frame; 5539 QuicMtuDiscoveryFrame mtu_discovery_frame;
5631 5540
5632 QuicFrames frames; 5541 QuicFrames frames;
5633 frames.push_back(QuicFrame(mtu_discovery_frame)); 5542 frames.push_back(QuicFrame(mtu_discovery_frame));
5634 5543
5635 // clang-format off 5544 // clang-format off
5636 unsigned char packet[] = { 5545 unsigned char packet[] = {
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
6052 5961
6053 ASSERT_NE(0u, encrypted_length); 5962 ASSERT_NE(0u, encrypted_length);
6054 EXPECT_TRUE(CheckEncryption(kPathId, packet_number, raw.get())); 5963 EXPECT_TRUE(CheckEncryption(kPathId, packet_number, raw.get()));
6055 } 5964 }
6056 5965
6057 TEST_P(QuicFramerTest, AckTruncationLargePacket) { 5966 TEST_P(QuicFramerTest, AckTruncationLargePacket) {
6058 QuicPacketHeader header; 5967 QuicPacketHeader header;
6059 header.public_header.connection_id = kConnectionId; 5968 header.public_header.connection_id = kConnectionId;
6060 header.public_header.reset_flag = false; 5969 header.public_header.reset_flag = false;
6061 header.public_header.version_flag = false; 5970 header.public_header.version_flag = false;
6062 header.fec_flag = false;
6063 header.entropy_flag = false; 5971 header.entropy_flag = false;
6064 header.packet_number = kPacketNumber; 5972 header.packet_number = kPacketNumber;
6065 5973
6066 QuicAckFrame ack_frame; 5974 QuicAckFrame ack_frame;
6067 // Create a packet with just the ack. 5975 // Create a packet with just the ack.
6068 if (framer_.version() <= QUIC_VERSION_33) { 5976 if (framer_.version() <= QUIC_VERSION_33) {
6069 ack_frame = MakeAckFrameWithNackRanges(300, 0u); 5977 ack_frame = MakeAckFrameWithNackRanges(300, 0u);
6070 } else { 5978 } else {
6071 ack_frame = MakeAckFrameWithAckBlocks(300, 0u); 5979 ack_frame = MakeAckFrameWithAckBlocks(300, 0u);
6072 } 5980 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
6104 EXPECT_EQ(90u, processed_ack_frame.packets.Min()); 6012 EXPECT_EQ(90u, processed_ack_frame.packets.Min());
6105 EXPECT_EQ(600u, processed_ack_frame.packets.Max()); 6013 EXPECT_EQ(600u, processed_ack_frame.packets.Max());
6106 } 6014 }
6107 } 6015 }
6108 6016
6109 TEST_P(QuicFramerTest, AckTruncationSmallPacket) { 6017 TEST_P(QuicFramerTest, AckTruncationSmallPacket) {
6110 QuicPacketHeader header; 6018 QuicPacketHeader header;
6111 header.public_header.connection_id = kConnectionId; 6019 header.public_header.connection_id = kConnectionId;
6112 header.public_header.reset_flag = false; 6020 header.public_header.reset_flag = false;
6113 header.public_header.version_flag = false; 6021 header.public_header.version_flag = false;
6114 header.fec_flag = false;
6115 header.entropy_flag = false; 6022 header.entropy_flag = false;
6116 header.packet_number = kPacketNumber; 6023 header.packet_number = kPacketNumber;
6117 6024
6118 // Create a packet with just the ack. 6025 // Create a packet with just the ack.
6119 QuicAckFrame ack_frame; 6026 QuicAckFrame ack_frame;
6120 if (framer_.version() <= QUIC_VERSION_33) { 6027 if (framer_.version() <= QUIC_VERSION_33) {
6121 ack_frame = MakeAckFrameWithNackRanges(300, 0u); 6028 ack_frame = MakeAckFrameWithNackRanges(300, 0u);
6122 } else { 6029 } else {
6123 ack_frame = MakeAckFrameWithAckBlocks(300, 0u); 6030 ack_frame = MakeAckFrameWithAckBlocks(300, 0u);
6124 } 6031 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
6157 EXPECT_EQ(124u, processed_ack_frame.packets.Min()); 6064 EXPECT_EQ(124u, processed_ack_frame.packets.Min());
6158 EXPECT_EQ(600u, processed_ack_frame.packets.Max()); 6065 EXPECT_EQ(600u, processed_ack_frame.packets.Max());
6159 } 6066 }
6160 } 6067 }
6161 6068
6162 TEST_P(QuicFramerTest, CleanTruncation) { 6069 TEST_P(QuicFramerTest, CleanTruncation) {
6163 QuicPacketHeader header; 6070 QuicPacketHeader header;
6164 header.public_header.connection_id = kConnectionId; 6071 header.public_header.connection_id = kConnectionId;
6165 header.public_header.reset_flag = false; 6072 header.public_header.reset_flag = false;
6166 header.public_header.version_flag = false; 6073 header.public_header.version_flag = false;
6167 header.fec_flag = false;
6168 header.entropy_flag = true; 6074 header.entropy_flag = true;
6169 header.packet_number = kPacketNumber; 6075 header.packet_number = kPacketNumber;
6170 6076
6171 QuicAckFrame ack_frame; 6077 QuicAckFrame ack_frame;
6172 ack_frame.largest_observed = 201; 6078 ack_frame.largest_observed = 201;
6173 ack_frame.packets.Add(1, ack_frame.largest_observed); 6079 ack_frame.packets.Add(1, ack_frame.largest_observed);
6174 6080
6175 // Create a packet with just the ack. 6081 // Create a packet with just the ack.
6176 QuicFrame frame; 6082 QuicFrame frame;
6177 frame.type = ACK_FRAME; 6083 frame.type = ACK_FRAME;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
6237 'r', 'l', 'd', '!', 6143 'r', 'l', 'd', '!',
6238 }; 6144 };
6239 // clang-format on 6145 // clang-format on
6240 6146
6241 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false); 6147 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
6242 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); 6148 EXPECT_TRUE(framer_.ProcessPacket(encrypted));
6243 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); 6149 EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
6244 ASSERT_TRUE(visitor_.header_.get()); 6150 ASSERT_TRUE(visitor_.header_.get());
6245 EXPECT_TRUE(visitor_.header_->entropy_flag); 6151 EXPECT_TRUE(visitor_.header_->entropy_flag);
6246 EXPECT_EQ(1 << 4, visitor_.header_->entropy_hash); 6152 EXPECT_EQ(1 << 4, visitor_.header_->entropy_hash);
6247 EXPECT_FALSE(visitor_.header_->fec_flag);
6248 }; 6153 };
6249 6154
6250 TEST_P(QuicFramerTest, StopPacketProcessing) { 6155 TEST_P(QuicFramerTest, StopPacketProcessing) {
6251 // clang-format off 6156 // clang-format off
6252 unsigned char packet[] = { 6157 unsigned char packet[] = {
6253 // public flags (8 byte connection_id) 6158 // public flags (8 byte connection_id)
6254 static_cast<unsigned char>( 6159 static_cast<unsigned char>(
6255 framer_.version() > QUIC_VERSION_32 ? 0x38 : 0x3C), 6160 framer_.version() > QUIC_VERSION_32 ? 0x38 : 0x3C),
6256 // connection_id 6161 // connection_id
6257 0x10, 0x32, 0x54, 0x76, 6162 0x10, 0x32, 0x54, 0x76,
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
6501 'o', ' ', 'w', 'o', 6406 'o', ' ', 'w', 'o',
6502 'r', 'l', 'd', '!', 6407 'r', 'l', 'd', '!',
6503 }; 6408 };
6504 // clang-format on 6409 // clang-format on
6505 6410
6506 QuicFramerFuzzFunc(packet, arraysize(packet)); 6411 QuicFramerFuzzFunc(packet, arraysize(packet));
6507 } 6412 }
6508 6413
6509 } // namespace test 6414 } // namespace test
6510 } // namespace net 6415 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_framer.cc ('k') | net/quic/core/quic_protocol.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698