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

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

Issue 198353003: Land Recent QUIC Changes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_packet_creator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (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_framer.h" 5 #include "net/quic/quic_framer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 1656 matching lines...) Expand 10 before | Expand all | Expand 10 after
1667 1667
1668 ASSERT_EQ(1u, visitor_.stream_frames_.size()); 1668 ASSERT_EQ(1u, visitor_.stream_frames_.size());
1669 EXPECT_EQ(0u, visitor_.ack_frames_.size()); 1669 EXPECT_EQ(0u, visitor_.ack_frames_.size());
1670 EXPECT_EQ(GG_UINT64_C(0x01020304), visitor_.stream_frames_[0]->stream_id); 1670 EXPECT_EQ(GG_UINT64_C(0x01020304), visitor_.stream_frames_[0]->stream_id);
1671 EXPECT_TRUE(visitor_.stream_frames_[0]->fin); 1671 EXPECT_TRUE(visitor_.stream_frames_[0]->fin);
1672 EXPECT_EQ(GG_UINT64_C(0xBA98FEDC32107654), 1672 EXPECT_EQ(GG_UINT64_C(0xBA98FEDC32107654),
1673 visitor_.stream_frames_[0]->offset); 1673 visitor_.stream_frames_[0]->offset);
1674 CheckStreamFrameData("hello world!", visitor_.stream_frames_[0]); 1674 CheckStreamFrameData("hello world!", visitor_.stream_frames_[0]);
1675 } 1675 }
1676 1676
1677 TEST_P(QuicFramerTest, AckFrameV14) { 1677 TEST_P(QuicFramerTest, AckFrameV13) {
1678 if (framer_.version() > QUIC_VERSION_14) { 1678 if (framer_.version() != QUIC_VERSION_13) {
1679 return; 1679 return;
1680 } 1680 }
1681 1681
1682 unsigned char packet[] = { 1682 unsigned char packet[] = {
1683 // public flags (8 byte connection_id) 1683 // public flags (8 byte connection_id)
1684 0x3C, 1684 0x3C,
1685 // connection_id 1685 // connection_id
1686 0x10, 0x32, 0x54, 0x76, 1686 0x10, 0x32, 0x54, 0x76,
1687 0x98, 0xBA, 0xDC, 0xFE, 1687 0x98, 0xBA, 0xDC, 0xFE,
1688 // packet sequence number 1688 // packet sequence number
(...skipping 779 matching lines...) Expand 10 before | Expand all | Expand 10 after
2468 frames.push_back(QuicFrame(frame)); 2468 frames.push_back(QuicFrame(frame));
2469 scoped_ptr<QuicPacket> data( 2469 scoped_ptr<QuicPacket> data(
2470 framer_.BuildUnsizedDataPacket(*visitor_.header_, frames).packet); 2470 framer_.BuildUnsizedDataPacket(*visitor_.header_, frames).packet);
2471 ASSERT_TRUE(data != NULL); 2471 ASSERT_TRUE(data != NULL);
2472 2472
2473 test::CompareCharArraysWithHexError("constructed packet", 2473 test::CompareCharArraysWithHexError("constructed packet",
2474 data->data(), data->length(), 2474 data->data(), data->length(),
2475 AsChars(packet), arraysize(packet)); 2475 AsChars(packet), arraysize(packet));
2476 } 2476 }
2477 2477
2478 TEST_P(QuicFramerTest, AckFrame500NacksV14) { 2478 TEST_P(QuicFramerTest, AckFrame500NacksV13) {
2479 if (framer_.version() > QUIC_VERSION_14) { 2479 if (framer_.version() != QUIC_VERSION_13) {
2480 return; 2480 return;
2481 } 2481 }
2482 unsigned char packet[] = { 2482 unsigned char packet[] = {
2483 // public flags (8 byte connection_id) 2483 // public flags (8 byte connection_id)
2484 0x3C, 2484 0x3C,
2485 // connection_id 2485 // connection_id
2486 0x10, 0x32, 0x54, 0x76, 2486 0x10, 0x32, 0x54, 0x76,
2487 0x98, 0xBA, 0xDC, 0xFE, 2487 0x98, 0xBA, 0xDC, 0xFE,
2488 // packet sequence number 2488 // packet sequence number
2489 0xA8, 0x9A, 0x78, 0x56, 2489 0xA8, 0x9A, 0x78, 0x56,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2548 scoped_ptr<QuicPacket> data( 2548 scoped_ptr<QuicPacket> data(
2549 framer_.BuildUnsizedDataPacket(*visitor_.header_, frames).packet); 2549 framer_.BuildUnsizedDataPacket(*visitor_.header_, frames).packet);
2550 ASSERT_TRUE(data != NULL); 2550 ASSERT_TRUE(data != NULL);
2551 2551
2552 test::CompareCharArraysWithHexError("constructed packet", 2552 test::CompareCharArraysWithHexError("constructed packet",
2553 data->data(), data->length(), 2553 data->data(), data->length(),
2554 AsChars(packet), arraysize(packet)); 2554 AsChars(packet), arraysize(packet));
2555 } 2555 }
2556 2556
2557 TEST_P(QuicFramerTest, CongestionFeedbackFrameTCP) { 2557 TEST_P(QuicFramerTest, CongestionFeedbackFrameTCP) {
2558 if (framer_.version() <= QUIC_VERSION_14) { 2558 if (framer_.version() == QUIC_VERSION_13) {
2559 return; 2559 return;
2560 } 2560 }
2561 unsigned char packet[] = { 2561 unsigned char packet[] = {
2562 // public flags (8 byte connection_id) 2562 // public flags (8 byte connection_id)
2563 0x3C, 2563 0x3C,
2564 // connection_id 2564 // connection_id
2565 0x10, 0x32, 0x54, 0x76, 2565 0x10, 0x32, 0x54, 0x76,
2566 0x98, 0xBA, 0xDC, 0xFE, 2566 0x98, 0xBA, 0xDC, 0xFE,
2567 // packet sequence number 2567 // packet sequence number
2568 0xBC, 0x9A, 0x78, 0x56, 2568 0xBC, 0x9A, 0x78, 0x56,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2601 expected_error = "Unable to read receive window."; 2601 expected_error = "Unable to read receive window.";
2602 } 2602 }
2603 CheckProcessingFails( 2603 CheckProcessingFails(
2604 packet, 2604 packet,
2605 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, 2605 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
2606 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP), 2606 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP),
2607 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA); 2607 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA);
2608 } 2608 }
2609 } 2609 }
2610 2610
2611 TEST_P(QuicFramerTest, CongestionFeedbackFrameTCPV14) { 2611 TEST_P(QuicFramerTest, CongestionFeedbackFrameTCPV13) {
2612 if (framer_.version() > QUIC_VERSION_14) { 2612 if (framer_.version() != QUIC_VERSION_13) {
2613 return; 2613 return;
2614 } 2614 }
2615 unsigned char packet[] = { 2615 unsigned char packet[] = {
2616 // public flags (8 byte connection_id) 2616 // public flags (8 byte connection_id)
2617 0x3C, 2617 0x3C,
2618 // connection_id 2618 // connection_id
2619 0x10, 0x32, 0x54, 0x76, 2619 0x10, 0x32, 0x54, 0x76,
2620 0x98, 0xBA, 0xDC, 0xFE, 2620 0x98, 0xBA, 0xDC, 0xFE,
2621 // packet sequence number 2621 // packet sequence number
2622 0xBC, 0x9A, 0x78, 0x56, 2622 0xBC, 0x9A, 0x78, 0x56,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2660 } 2660 }
2661 CheckProcessingFails( 2661 CheckProcessingFails(
2662 packet, 2662 packet,
2663 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, 2663 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
2664 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP), 2664 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP),
2665 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA); 2665 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA);
2666 } 2666 }
2667 } 2667 }
2668 2668
2669 TEST_P(QuicFramerTest, CongestionFeedbackFrameInterArrival) { 2669 TEST_P(QuicFramerTest, CongestionFeedbackFrameInterArrival) {
2670 if (framer_.version() <= QUIC_VERSION_14) { 2670 if (framer_.version() == QUIC_VERSION_13) {
2671 return; 2671 return;
2672 } 2672 }
2673 unsigned char packet[] = { 2673 unsigned char packet[] = {
2674 // public flags (8 byte connection_id) 2674 // public flags (8 byte connection_id)
2675 0x3C, 2675 0x3C,
2676 // connection_id 2676 // connection_id
2677 0x10, 0x32, 0x54, 0x76, 2677 0x10, 0x32, 0x54, 0x76,
2678 0x98, 0xBA, 0xDC, 0xFE, 2678 0x98, 0xBA, 0xDC, 0xFE,
2679 // packet sequence number 2679 // packet sequence number
2680 0xBC, 0x9A, 0x78, 0x56, 2680 0xBC, 0x9A, 0x78, 0x56,
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
2752 expected_error = "Unable to read time delta in received packets."; 2752 expected_error = "Unable to read time delta in received packets.";
2753 } 2753 }
2754 CheckProcessingFails( 2754 CheckProcessingFails(
2755 packet, 2755 packet,
2756 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, 2756 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
2757 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP), 2757 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP),
2758 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA); 2758 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA);
2759 } 2759 }
2760 } 2760 }
2761 2761
2762 TEST_P(QuicFramerTest, CongestionFeedbackFrameInterArrivalV14) { 2762 TEST_P(QuicFramerTest, CongestionFeedbackFrameInterArrivalV13) {
2763 if (framer_.version() > QUIC_VERSION_14) { 2763 if (framer_.version() != QUIC_VERSION_13) {
2764 return; 2764 return;
2765 } 2765 }
2766 unsigned char packet[] = { 2766 unsigned char packet[] = {
2767 // public flags (8 byte connection_id) 2767 // public flags (8 byte connection_id)
2768 0x3C, 2768 0x3C,
2769 // connection_id 2769 // connection_id
2770 0x10, 0x32, 0x54, 0x76, 2770 0x10, 0x32, 0x54, 0x76,
2771 0x98, 0xBA, 0xDC, 0xFE, 2771 0x98, 0xBA, 0xDC, 0xFE,
2772 // packet sequence number 2772 // packet sequence number
2773 0xBC, 0x9A, 0x78, 0x56, 2773 0xBC, 0x9A, 0x78, 0x56,
(...skipping 1330 matching lines...) Expand 10 before | Expand all | Expand 10 after
4104 4104
4105 scoped_ptr<QuicPacket> data( 4105 scoped_ptr<QuicPacket> data(
4106 framer_.BuildUnsizedDataPacket(header, frames).packet); 4106 framer_.BuildUnsizedDataPacket(header, frames).packet);
4107 ASSERT_TRUE(data != NULL); 4107 ASSERT_TRUE(data != NULL);
4108 4108
4109 test::CompareCharArraysWithHexError("constructed packet", 4109 test::CompareCharArraysWithHexError("constructed packet",
4110 data->data(), data->length(), 4110 data->data(), data->length(),
4111 AsChars(packet), arraysize(packet)); 4111 AsChars(packet), arraysize(packet));
4112 } 4112 }
4113 4113
4114 TEST_P(QuicFramerTest, BuildAckFramePacketV14) { 4114 TEST_P(QuicFramerTest, BuildAckFramePacketV13) {
4115 if (version_ > QUIC_VERSION_14) { 4115 if (version_ != QUIC_VERSION_13) {
4116 return; 4116 return;
4117 } 4117 }
4118 QuicPacketHeader header; 4118 QuicPacketHeader header;
4119 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 4119 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
4120 header.public_header.reset_flag = false; 4120 header.public_header.reset_flag = false;
4121 header.public_header.version_flag = false; 4121 header.public_header.version_flag = false;
4122 header.fec_flag = false; 4122 header.fec_flag = false;
4123 header.entropy_flag = true; 4123 header.entropy_flag = true;
4124 header.packet_sequence_number = GG_UINT64_C(0x770123456789AA8); 4124 header.packet_sequence_number = GG_UINT64_C(0x770123456789AA8);
4125 header.fec_group = 0; 4125 header.fec_group = 0;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
4174 scoped_ptr<QuicPacket> data( 4174 scoped_ptr<QuicPacket> data(
4175 framer_.BuildUnsizedDataPacket(header, frames).packet); 4175 framer_.BuildUnsizedDataPacket(header, frames).packet);
4176 ASSERT_TRUE(data != NULL); 4176 ASSERT_TRUE(data != NULL);
4177 4177
4178 test::CompareCharArraysWithHexError("constructed packet", 4178 test::CompareCharArraysWithHexError("constructed packet",
4179 data->data(), data->length(), 4179 data->data(), data->length(),
4180 AsChars(packet), arraysize(packet)); 4180 AsChars(packet), arraysize(packet));
4181 } 4181 }
4182 4182
4183 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketTCP) { 4183 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketTCP) {
4184 if (version_ <= QUIC_VERSION_14) { 4184 if (version_ == QUIC_VERSION_13) {
4185 return; 4185 return;
4186 } 4186 }
4187 QuicPacketHeader header; 4187 QuicPacketHeader header;
4188 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 4188 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
4189 header.public_header.reset_flag = false; 4189 header.public_header.reset_flag = false;
4190 header.public_header.version_flag = false; 4190 header.public_header.version_flag = false;
4191 header.fec_flag = false; 4191 header.fec_flag = false;
4192 header.entropy_flag = false; 4192 header.entropy_flag = false;
4193 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC); 4193 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
4194 header.fec_group = 0; 4194 header.fec_group = 0;
(...skipping 27 matching lines...) Expand all
4222 4222
4223 scoped_ptr<QuicPacket> data( 4223 scoped_ptr<QuicPacket> data(
4224 framer_.BuildUnsizedDataPacket(header, frames).packet); 4224 framer_.BuildUnsizedDataPacket(header, frames).packet);
4225 ASSERT_TRUE(data != NULL); 4225 ASSERT_TRUE(data != NULL);
4226 4226
4227 test::CompareCharArraysWithHexError("constructed packet", 4227 test::CompareCharArraysWithHexError("constructed packet",
4228 data->data(), data->length(), 4228 data->data(), data->length(),
4229 AsChars(packet), arraysize(packet)); 4229 AsChars(packet), arraysize(packet));
4230 } 4230 }
4231 4231
4232 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketTCPV14) { 4232 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketTCPV13) {
4233 if (version_ > QUIC_VERSION_14) { 4233 if (version_ != QUIC_VERSION_13) {
4234 return; 4234 return;
4235 } 4235 }
4236 QuicPacketHeader header; 4236 QuicPacketHeader header;
4237 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 4237 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
4238 header.public_header.reset_flag = false; 4238 header.public_header.reset_flag = false;
4239 header.public_header.version_flag = false; 4239 header.public_header.version_flag = false;
4240 header.fec_flag = false; 4240 header.fec_flag = false;
4241 header.entropy_flag = false; 4241 header.entropy_flag = false;
4242 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC); 4242 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
4243 header.fec_group = 0; 4243 header.fec_group = 0;
(...skipping 30 matching lines...) Expand all
4274 scoped_ptr<QuicPacket> data( 4274 scoped_ptr<QuicPacket> data(
4275 framer_.BuildUnsizedDataPacket(header, frames).packet); 4275 framer_.BuildUnsizedDataPacket(header, frames).packet);
4276 ASSERT_TRUE(data != NULL); 4276 ASSERT_TRUE(data != NULL);
4277 4277
4278 test::CompareCharArraysWithHexError("constructed packet", 4278 test::CompareCharArraysWithHexError("constructed packet",
4279 data->data(), data->length(), 4279 data->data(), data->length(),
4280 AsChars(packet), arraysize(packet)); 4280 AsChars(packet), arraysize(packet));
4281 } 4281 }
4282 4282
4283 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketInterArrival) { 4283 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketInterArrival) {
4284 if (version_ <= QUIC_VERSION_14) { 4284 if (version_ == QUIC_VERSION_13) {
4285 return; 4285 return;
4286 } 4286 }
4287 QuicPacketHeader header; 4287 QuicPacketHeader header;
4288 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 4288 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
4289 header.public_header.reset_flag = false; 4289 header.public_header.reset_flag = false;
4290 header.public_header.version_flag = false; 4290 header.public_header.version_flag = false;
4291 header.fec_flag = false; 4291 header.fec_flag = false;
4292 header.entropy_flag = false; 4292 header.entropy_flag = false;
4293 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC); 4293 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
4294 header.fec_group = 0; 4294 header.fec_group = 0;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
4346 4346
4347 scoped_ptr<QuicPacket> data( 4347 scoped_ptr<QuicPacket> data(
4348 framer_.BuildUnsizedDataPacket(header, frames).packet); 4348 framer_.BuildUnsizedDataPacket(header, frames).packet);
4349 ASSERT_TRUE(data != NULL); 4349 ASSERT_TRUE(data != NULL);
4350 4350
4351 test::CompareCharArraysWithHexError("constructed packet", 4351 test::CompareCharArraysWithHexError("constructed packet",
4352 data->data(), data->length(), 4352 data->data(), data->length(),
4353 AsChars(packet), arraysize(packet)); 4353 AsChars(packet), arraysize(packet));
4354 } 4354 }
4355 4355
4356 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketInterArrivalV14) { 4356 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketInterArrivalV13) {
4357 if (version_ > QUIC_VERSION_14) { 4357 if (version_ != QUIC_VERSION_13) {
4358 return; 4358 return;
4359 } 4359 }
4360 QuicPacketHeader header; 4360 QuicPacketHeader header;
4361 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 4361 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
4362 header.public_header.reset_flag = false; 4362 header.public_header.reset_flag = false;
4363 header.public_header.version_flag = false; 4363 header.public_header.version_flag = false;
4364 header.fec_flag = false; 4364 header.fec_flag = false;
4365 header.entropy_flag = false; 4365 header.entropy_flag = false;
4366 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC); 4366 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
4367 header.fec_group = 0; 4367 header.fec_group = 0;
(...skipping 1000 matching lines...) Expand 10 before | Expand all | Expand 10 after
5368 EXPECT_CALL(visitor, OnPacketComplete()); 5368 EXPECT_CALL(visitor, OnPacketComplete());
5369 EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true)); 5369 EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true));
5370 5370
5371 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false); 5371 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
5372 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); 5372 EXPECT_TRUE(framer_.ProcessPacket(encrypted));
5373 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); 5373 EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
5374 } 5374 }
5375 5375
5376 } // namespace test 5376 } // namespace test
5377 } // namespace net 5377 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_packet_creator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698