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

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

Issue 446063005: Move Quic AppendTimestampFrame method out of AppendCongestionFrame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
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_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/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 2027 matching lines...) Expand 10 before | Expand all | Expand 10 after
2038 expected_error = "Unable to read receive window."; 2038 expected_error = "Unable to read receive window.";
2039 } 2039 }
2040 CheckProcessingFails( 2040 CheckProcessingFails(
2041 packet, 2041 packet,
2042 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion, 2042 i + GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
2043 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP), 2043 PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP),
2044 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA); 2044 expected_error, QUIC_INVALID_CONGESTION_FEEDBACK_DATA);
2045 } 2045 }
2046 } 2046 }
2047 2047
2048 TEST_P(QuicFramerTest, CongestionFeedbackFrameInterArrival) { 2048 TEST_P(QuicFramerTest, CongestionFeedbackFrameTimestamp) {
2049 unsigned char packet[] = { 2049 unsigned char packet[] = {
2050 // public flags (8 byte connection_id) 2050 // public flags (8 byte connection_id)
2051 0x3C, 2051 0x3C,
2052 // connection_id 2052 // connection_id
2053 0x10, 0x32, 0x54, 0x76, 2053 0x10, 0x32, 0x54, 0x76,
2054 0x98, 0xBA, 0xDC, 0xFE, 2054 0x98, 0xBA, 0xDC, 0xFE,
2055 // packet sequence number 2055 // packet sequence number
2056 0xBC, 0x9A, 0x78, 0x56, 2056 0xBC, 0x9A, 0x78, 0x56,
2057 0x34, 0x12, 2057 0x34, 0x12,
2058 // private flags 2058 // private flags
2059 0x00, 2059 0x00,
2060 2060
2061 // frame type (congestion feedback frame) 2061 // frame type (congestion feedback frame)
2062 0x20, 2062 0x20,
2063 // congestion feedback type (inter arrival) 2063 // congestion feedback type (timestamp)
2064 0x01, 2064 0x01,
2065 // num received packets 2065 // num received packets
2066 0x03, 2066 0x03,
2067 // lowest sequence number 2067 // lowest sequence number
2068 0xBA, 0x9A, 0x78, 0x56, 2068 0xBA, 0x9A, 0x78, 0x56,
2069 0x34, 0x12, 2069 0x34, 0x12,
2070 // receive time 2070 // receive time
2071 0x87, 0x96, 0xA5, 0xB4, 2071 0x87, 0x96, 0xA5, 0xB4,
2072 0xC3, 0xD2, 0xE1, 0x07, 2072 0xC3, 0xD2, 0xE1, 0x07,
2073 // sequence delta 2073 // sequence delta
(...skipping 10 matching lines...) Expand all
2084 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); 2084 EXPECT_TRUE(framer_.ProcessPacket(encrypted));
2085 2085
2086 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); 2086 EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
2087 ASSERT_TRUE(visitor_.header_.get()); 2087 ASSERT_TRUE(visitor_.header_.get());
2088 EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion)); 2088 EXPECT_TRUE(CheckDecryption(encrypted, !kIncludeVersion));
2089 2089
2090 EXPECT_EQ(0u, visitor_.stream_frames_.size()); 2090 EXPECT_EQ(0u, visitor_.stream_frames_.size());
2091 ASSERT_EQ(1u, visitor_.congestion_feedback_frames_.size()); 2091 ASSERT_EQ(1u, visitor_.congestion_feedback_frames_.size());
2092 const QuicCongestionFeedbackFrame& frame = 2092 const QuicCongestionFeedbackFrame& frame =
2093 *visitor_.congestion_feedback_frames_[0]; 2093 *visitor_.congestion_feedback_frames_[0];
2094 ASSERT_EQ(kInterArrival, frame.type); 2094 ASSERT_EQ(kTimestamp, frame.type);
2095 ASSERT_EQ(3u, frame.inter_arrival.received_packet_times.size()); 2095 ASSERT_EQ(3u, frame.timestamp.received_packet_times.size());
2096 TimeMap::const_iterator iter = 2096 TimeMap::const_iterator iter =
2097 frame.inter_arrival.received_packet_times.begin(); 2097 frame.timestamp.received_packet_times.begin();
2098 EXPECT_EQ(GG_UINT64_C(0x0123456789ABA), iter->first); 2098 EXPECT_EQ(GG_UINT64_C(0x0123456789ABA), iter->first);
2099 EXPECT_EQ(GG_INT64_C(0x07E1D2C3B4A59687), 2099 EXPECT_EQ(GG_INT64_C(0x07E1D2C3B4A59687),
2100 iter->second.Subtract(start_).ToMicroseconds()); 2100 iter->second.Subtract(start_).ToMicroseconds());
2101 ++iter; 2101 ++iter;
2102 EXPECT_EQ(GG_UINT64_C(0x0123456789ABB), iter->first); 2102 EXPECT_EQ(GG_UINT64_C(0x0123456789ABB), iter->first);
2103 EXPECT_EQ(GG_INT64_C(0x07E1D2C3B4A59688), 2103 EXPECT_EQ(GG_INT64_C(0x07E1D2C3B4A59688),
2104 iter->second.Subtract(start_).ToMicroseconds()); 2104 iter->second.Subtract(start_).ToMicroseconds());
2105 ++iter; 2105 ++iter;
2106 EXPECT_EQ(GG_UINT64_C(0x0123456789ABD), iter->first); 2106 EXPECT_EQ(GG_UINT64_C(0x0123456789ABD), iter->first);
2107 EXPECT_EQ(GG_INT64_C(0x07E1D2C3B4A59689), 2107 EXPECT_EQ(GG_INT64_C(0x07E1D2C3B4A59689),
(...skipping 1314 matching lines...) Expand 10 before | Expand all | Expand 10 after
3422 }; 3422 };
3423 3423
3424 scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames)); 3424 scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
3425 ASSERT_TRUE(data != NULL); 3425 ASSERT_TRUE(data != NULL);
3426 3426
3427 test::CompareCharArraysWithHexError("constructed packet", 3427 test::CompareCharArraysWithHexError("constructed packet",
3428 data->data(), data->length(), 3428 data->data(), data->length(),
3429 AsChars(packet), arraysize(packet)); 3429 AsChars(packet), arraysize(packet));
3430 } 3430 }
3431 3431
3432 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketInterArrival) { 3432 TEST_P(QuicFramerTest, BuildCongestionFeedbackFramePacketTimestamp) {
3433 QuicPacketHeader header; 3433 QuicPacketHeader header;
3434 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 3434 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
3435 header.public_header.reset_flag = false; 3435 header.public_header.reset_flag = false;
3436 header.public_header.version_flag = false; 3436 header.public_header.version_flag = false;
3437 header.fec_flag = false; 3437 header.fec_flag = false;
3438 header.entropy_flag = false; 3438 header.entropy_flag = false;
3439 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC); 3439 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
3440 header.fec_group = 0; 3440 header.fec_group = 0;
3441 3441
3442 QuicCongestionFeedbackFrame frame; 3442 QuicCongestionFeedbackFrame frame;
3443 frame.type = kInterArrival; 3443 frame.type = kTimestamp;
3444 frame.inter_arrival.received_packet_times.insert( 3444 frame.timestamp.received_packet_times.insert(
3445 make_pair(GG_UINT64_C(0x0123456789ABA), 3445 make_pair(GG_UINT64_C(0x0123456789ABA),
3446 start_.Add(QuicTime::Delta::FromMicroseconds( 3446 start_.Add(QuicTime::Delta::FromMicroseconds(
3447 GG_UINT64_C(0x07E1D2C3B4A59687))))); 3447 GG_UINT64_C(0x07E1D2C3B4A59687)))));
3448 frame.inter_arrival.received_packet_times.insert( 3448 frame.timestamp.received_packet_times.insert(
3449 make_pair(GG_UINT64_C(0x0123456789ABB), 3449 make_pair(GG_UINT64_C(0x0123456789ABB),
3450 start_.Add(QuicTime::Delta::FromMicroseconds( 3450 start_.Add(QuicTime::Delta::FromMicroseconds(
3451 GG_UINT64_C(0x07E1D2C3B4A59688))))); 3451 GG_UINT64_C(0x07E1D2C3B4A59688)))));
3452 frame.inter_arrival.received_packet_times.insert( 3452 frame.timestamp.received_packet_times.insert(
3453 make_pair(GG_UINT64_C(0x0123456789ABD), 3453 make_pair(GG_UINT64_C(0x0123456789ABD),
3454 start_.Add(QuicTime::Delta::FromMicroseconds( 3454 start_.Add(QuicTime::Delta::FromMicroseconds(
3455 GG_UINT64_C(0x07E1D2C3B4A59689))))); 3455 GG_UINT64_C(0x07E1D2C3B4A59689)))));
3456 QuicFrames frames; 3456 QuicFrames frames;
3457 frames.push_back(QuicFrame(&frame)); 3457 frames.push_back(QuicFrame(&frame));
3458 3458
3459 unsigned char packet[] = { 3459 unsigned char packet[] = {
3460 // public flags (8 byte connection_id) 3460 // public flags (8 byte connection_id)
3461 0x3C, 3461 0x3C,
3462 // connection_id 3462 // connection_id
3463 0x10, 0x32, 0x54, 0x76, 3463 0x10, 0x32, 0x54, 0x76,
3464 0x98, 0xBA, 0xDC, 0xFE, 3464 0x98, 0xBA, 0xDC, 0xFE,
3465 // packet sequence number 3465 // packet sequence number
3466 0xBC, 0x9A, 0x78, 0x56, 3466 0xBC, 0x9A, 0x78, 0x56,
3467 0x34, 0x12, 3467 0x34, 0x12,
3468 // private flags 3468 // private flags
3469 0x00, 3469 0x00,
3470 3470
3471 // frame type (congestion feedback frame) 3471 // frame type (congestion feedback frame)
3472 0x20, 3472 0x20,
3473 // congestion feedback type (inter arrival) 3473 // congestion feedback type (timestamp)
3474 0x01, 3474 0x01,
3475 // num received packets 3475 // num received packets
3476 0x03, 3476 0x03,
3477 // lowest sequence number 3477 // lowest sequence number
3478 0xBA, 0x9A, 0x78, 0x56, 3478 0xBA, 0x9A, 0x78, 0x56,
3479 0x34, 0x12, 3479 0x34, 0x12,
3480 // receive time 3480 // receive time
3481 0x87, 0x96, 0xA5, 0xB4, 3481 0x87, 0x96, 0xA5, 0xB4,
3482 0xC3, 0xD2, 0xE1, 0x07, 3482 0xC3, 0xD2, 0xE1, 0x07,
3483 // sequence delta 3483 // sequence delta
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
3549 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 3549 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
3550 header.public_header.reset_flag = false; 3550 header.public_header.reset_flag = false;
3551 header.public_header.version_flag = false; 3551 header.public_header.version_flag = false;
3552 header.fec_flag = false; 3552 header.fec_flag = false;
3553 header.entropy_flag = false; 3553 header.entropy_flag = false;
3554 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC); 3554 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
3555 header.fec_group = 0; 3555 header.fec_group = 0;
3556 3556
3557 QuicCongestionFeedbackFrame congestion_feedback_frame; 3557 QuicCongestionFeedbackFrame congestion_feedback_frame;
3558 congestion_feedback_frame.type = 3558 congestion_feedback_frame.type =
3559 static_cast<CongestionFeedbackType>(kInterArrival + 1); 3559 static_cast<CongestionFeedbackType>(kTimestamp + 1);
3560 3560
3561 QuicFrames frames; 3561 QuicFrames frames;
3562 frames.push_back(QuicFrame(&congestion_feedback_frame)); 3562 frames.push_back(QuicFrame(&congestion_feedback_frame));
3563 3563
3564 scoped_ptr<QuicPacket> data; 3564 scoped_ptr<QuicPacket> data;
3565 EXPECT_DFATAL( 3565 EXPECT_DFATAL(
3566 data.reset(BuildDataPacket(header, frames)), 3566 data.reset(BuildDataPacket(header, frames)),
3567 "AppendCongestionFeedbackFrame failed"); 3567 "AppendCongestionFeedbackFrame failed");
3568 ASSERT_TRUE(data == NULL); 3568 ASSERT_TRUE(data == NULL);
3569 } 3569 }
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after
4327 EXPECT_CALL(visitor, OnPacketComplete()); 4327 EXPECT_CALL(visitor, OnPacketComplete());
4328 EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true)); 4328 EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true));
4329 4329
4330 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false); 4330 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
4331 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); 4331 EXPECT_TRUE(framer_.ProcessPacket(encrypted));
4332 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); 4332 EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
4333 } 4333 }
4334 4334
4335 } // namespace test 4335 } // namespace test
4336 } // namespace net 4336 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_protocol.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698