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

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

Issue 424903002: Remove FixRate congestion frame type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_quic_version_15_71718286
Patch Set: Created 6 years, 4 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/quic_framer.cc ('k') | net/quic/quic_packet_creator_test.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 2119 matching lines...) Expand 10 before | Expand all | Expand 10 after
2130 expected_error = "Unable to read time delta in received packets."; 2130 expected_error = "Unable to read time delta in received packets.";
2131 } 2131 }
2132 CheckProcessingFails( 2132 CheckProcessingFails(
2133 packet, 2133 packet,
2134 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, 2134 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
2135 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP), 2135 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP),
2136 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA); 2136 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA);
2137 } 2137 }
2138 } 2138 }
2139 2139
2140 TEST_P(QuicFramerTest, CongestionFeedbackFrameFixRate) {
2141 unsigned char packet[] = {
2142 // public flags (8 byte connection_id)
2143 0x3C,
2144 // connection_id
2145 0x10, 0x32, 0x54, 0x76,
2146 0x98, 0xBA, 0xDC, 0xFE,
2147 // packet sequence number
2148 0xBC, 0x9A, 0x78, 0x56,
2149 0x34, 0x12,
2150 // private flags
2151 0x00,
2152
2153 // frame type (congestion feedback frame)
2154 0x20,
2155 // congestion feedback type (fix rate)
2156 0x02,
2157 // bitrate_in_bytes_per_second;
2158 0x01, 0x02, 0x03, 0x04,
2159 };
2160
2161 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
2162 EXPECT_TRUE(framer_.ProcessPacket(encrypted));
2163
2164 EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
2165 ASSERT_TRUE(visitor_.header_.get());
2166 EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion));
2167
2168 EXPECT_EQ(0u, visitor_.stream_frames_.size());
2169 ASSERT_EQ(1u, visitor_.congestion_feedback_frames_.size());
2170 const QuicCongestionFeedbackFrame& frame =
2171 *visitor_.congestion_feedback_frames_[0];
2172 ASSERT_EQ(kFixRate, frame.type);
2173 EXPECT_EQ(static_cast<uint32>(0x04030201),
2174 frame.fix_rate.bitrate.ToBytesPerSecond());
2175
2176 // Now test framing boundaries
2177 for (size_t i = kQuicFrameTypeSize; i < 6; ++i) {
2178 string expected_error;
2179 if (i < 2) {
2180 expected_error = "Unable to read congestion feedback type.";
2181 } else if (i < 6) {
2182 expected_error = "Unable to read bitrate.";
2183 }
2184 CheckProcessingFails(
2185 packet,
2186 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
2187 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP),
2188 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA);
2189 }
2190 }
2191
2192 TEST_P(QuicFramerTest, CongestionFeedbackFrameInvalidFeedback) { 2140 TEST_P(QuicFramerTest, CongestionFeedbackFrameInvalidFeedback) {
2193 unsigned char packet[] = { 2141 unsigned char packet[] = {
2194 // public flags (8 byte connection_id) 2142 // public flags (8 byte connection_id)
2195 0x3C, 2143 0x3C,
2196 // connection_id 2144 // connection_id
2197 0x10, 0x32, 0x54, 0x76, 2145 0x10, 0x32, 0x54, 0x76,
2198 0x98, 0xBA, 0xDC, 0xFE, 2146 0x98, 0xBA, 0xDC, 0xFE,
2199 // packet sequence number 2147 // packet sequence number
2200 0xBC, 0x9A, 0x78, 0x56, 2148 0xBC, 0x9A, 0x78, 0x56,
2201 0x34, 0x12, 2149 0x34, 0x12,
(...skipping 1389 matching lines...) Expand 10 before | Expand all | Expand 10 after
3591 }; 3539 };
3592 3540
3593 scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames)); 3541 scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
3594 ASSERT_TRUE(data != NULL); 3542 ASSERT_TRUE(data != NULL);
3595 3543
3596 test::CompareCharArraysWithHexError("constructed packet", 3544 test::CompareCharArraysWithHexError("constructed packet",
3597 data->data(), data->length(), 3545 data->data(), data->length(),
3598 AsChars(packet), arraysize(packet)); 3546 AsChars(packet), arraysize(packet));
3599 } 3547 }
3600 3548
3601 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketFixRate) {
3602 QuicPacketHeader header;
3603 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
3604 header.public_header.reset_flag = false;
3605 header.public_header.version_flag = false;
3606 header.fec_flag = false;
3607 header.entropy_flag = false;
3608 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
3609 header.fec_group = 0;
3610
3611 QuicCongestionFeedbackFrame congestion_feedback_frame;
3612 congestion_feedback_frame.type = kFixRate;
3613 congestion_feedback_frame.fix_rate.bitrate
3614 = QuicBandwidth::FromBytesPerSecond(0x04030201);
3615
3616 QuicFrames frames;
3617 frames.push_back(QuicFrame(&congestion_feedback_frame));
3618
3619 unsigned char packet[] = {
3620 // public flags (8 byte connection_id)
3621 0x3C,
3622 // connection_id
3623 0x10, 0x32, 0x54, 0x76,
3624 0x98, 0xBA, 0xDC, 0xFE,
3625 // packet sequence number
3626 0xBC, 0x9A, 0x78, 0x56,
3627 0x34, 0x12,
3628 // private flags
3629 0x00,
3630
3631 // frame type (congestion feedback frame)
3632 0x20,
3633 // congestion feedback type (fix rate)
3634 0x02,
3635 // bitrate_in_bytes_per_second;
3636 0x01, 0x02, 0x03, 0x04,
3637 };
3638
3639 scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
3640 ASSERT_TRUE(data != NULL);
3641
3642 test::CompareCharArraysWithHexError("constructed packet",
3643 data->data(), data->length(),
3644 AsChars(packet), arraysize(packet));
3645 }
3646
3647 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketInvalidFeedback) { 3549 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketInvalidFeedback) {
3648 QuicPacketHeader header; 3550 QuicPacketHeader header;
3649 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 3551 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
3650 header.public_header.reset_flag = false; 3552 header.public_header.reset_flag = false;
3651 header.public_header.version_flag = false; 3553 header.public_header.version_flag = false;
3652 header.fec_flag = false; 3554 header.fec_flag = false;
3653 header.entropy_flag = false; 3555 header.entropy_flag = false;
3654 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC); 3556 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
3655 header.fec_group = 0; 3557 header.fec_group = 0;
3656 3558
3657 QuicCongestionFeedbackFrame congestion_feedback_frame; 3559 QuicCongestionFeedbackFrame congestion_feedback_frame;
3658 congestion_feedback_frame.type = 3560 congestion_feedback_frame.type =
3659 static_cast<CongestionFeedbackType>(kFixRate + 1); 3561 static_cast<CongestionFeedbackType>(kInterArrival + 1);
3660 3562
3661 QuicFrames frames; 3563 QuicFrames frames;
3662 frames.push_back(QuicFrame(&congestion_feedback_frame)); 3564 frames.push_back(QuicFrame(&congestion_feedback_frame));
3663 3565
3664 scoped_ptr<QuicPacket> data; 3566 scoped_ptr<QuicPacket> data;
3665 EXPECT_DFATAL( 3567 EXPECT_DFATAL(
3666 data.reset(BuildDataPacket(header, frames)), 3568 data.reset(BuildDataPacket(header, frames)),
3667 "AppendCongestionFeedbackFrame failed"); 3569 "AppendCongestionFeedbackFrame failed");
3668 ASSERT_TRUE(data == NULL); 3570 ASSERT_TRUE(data == NULL);
3669 } 3571 }
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after
4427 EXPECT_CALL(visitor, OnPacketComplete()); 4329 EXPECT_CALL(visitor, OnPacketComplete());
4428 EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true)); 4330 EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true));
4429 4331
4430 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false); 4332 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
4431 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); 4333 EXPECT_TRUE(framer_.ProcessPacket(encrypted));
4432 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); 4334 EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
4433 } 4335 }
4434 4336
4435 } // namespace test 4337 } // namespace test
4436 } // namespace net 4338 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_packet_creator_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698