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

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

Issue 932723002: Land Recent QUIC Changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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.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 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 &framer_, PACKET_6BYTE_SEQUENCE_NUMBER, wire_sequence_number)) 472 &framer_, PACKET_6BYTE_SEQUENCE_NUMBER, wire_sequence_number))
473 << "last_sequence_number: " << last_sequence_number 473 << "last_sequence_number: " << last_sequence_number
474 << " wire_sequence_number: " << wire_sequence_number; 474 << " wire_sequence_number: " << wire_sequence_number;
475 } 475 }
476 476
477 QuicPacket* BuildDataPacket(const QuicPacketHeader& header, 477 QuicPacket* BuildDataPacket(const QuicPacketHeader& header,
478 const QuicFrames& frames) { 478 const QuicFrames& frames) {
479 return BuildUnsizedDataPacket(&framer_, header, frames); 479 return BuildUnsizedDataPacket(&framer_, header, frames);
480 } 480 }
481 481
482 QuicPacket* BuildDataPacket(const QuicPacketHeader& header,
483 const QuicFrames& frames,
484 size_t packet_size) {
485 return BuildUnsizedDataPacket(&framer_, header, frames, packet_size);
486 }
487
482 test::TestEncrypter* encrypter_; 488 test::TestEncrypter* encrypter_;
483 test::TestDecrypter* decrypter_; 489 test::TestDecrypter* decrypter_;
484 QuicVersion version_; 490 QuicVersion version_;
485 QuicTime start_; 491 QuicTime start_;
486 QuicFramer framer_; 492 QuicFramer framer_;
487 test::TestQuicVisitor visitor_; 493 test::TestQuicVisitor visitor_;
488 test::TestEntropyCalculator entropy_calculator_; 494 test::TestEntropyCalculator entropy_calculator_;
489 }; 495 };
490 496
491 // Run all framer tests with all supported versions of QUIC. 497 // Run all framer tests with all supported versions of QUIC.
(...skipping 2894 matching lines...) Expand 10 before | Expand all | Expand 10 after
3386 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 3392 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
3387 3393
3388 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 3394 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
3389 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 3395 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
3390 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 3396 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
3391 3397
3392 // 0 revived packets. 3398 // 0 revived packets.
3393 0x00, 3399 0x00,
3394 }; 3400 };
3395 3401
3396 scoped_ptr<QuicPacket> data( 3402 scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
3397 framer_.BuildDataPacket(header, frames, kMaxPacketSize));
3398 ASSERT_TRUE(data != nullptr); 3403 ASSERT_TRUE(data != nullptr);
3399 3404
3400 test::CompareCharArraysWithHexError("constructed packet", 3405 test::CompareCharArraysWithHexError("constructed packet",
3401 data->data(), data->length(), 3406 data->data(), data->length(),
3402 AsChars(packet), arraysize(packet)); 3407 AsChars(packet), arraysize(packet));
3403 } 3408 }
3404 3409
3405 TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) { 3410 TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) {
3406 QuicPacketHeader header; 3411 QuicPacketHeader header;
3407 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210); 3412 header.public_header.connection_id = GG_UINT64_C(0xFEDCBA9876543210);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
3449 0x00, 0x00, 3454 0x00, 0x00,
3450 // num missing packet ranges (limited to 6 by packet size of 37). 3455 // num missing packet ranges (limited to 6 by packet size of 37).
3451 0x06, 3456 0x06,
3452 // {missing packet delta, further missing packets in range} 3457 // {missing packet delta, further missing packets in range}
3453 // 6 nack ranges 3458 // 6 nack ranges
3454 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 3459 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
3455 // 0 revived packets. 3460 // 0 revived packets.
3456 0x00, 3461 0x00,
3457 }; 3462 };
3458 3463
3459 scoped_ptr<QuicPacket> data(framer_.BuildDataPacket(header, frames, 37u)); 3464 scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames, 37u));
3460 ASSERT_TRUE(data != nullptr); 3465 ASSERT_TRUE(data != nullptr);
3461 // Expect 1 byte unused since at least 2 bytes are needed to fit more nacks. 3466 // Expect 1 byte unused since at least 2 bytes are needed to fit more nacks.
3462 EXPECT_EQ(36u, data->length()); 3467 EXPECT_EQ(36u, data->length());
3463 test::CompareCharArraysWithHexError("constructed packet", 3468 test::CompareCharArraysWithHexError("constructed packet",
3464 data->data(), data->length(), 3469 data->data(), data->length(),
3465 AsChars(packet), arraysize(packet)); 3470 AsChars(packet), arraysize(packet));
3466 } 3471 }
3467 3472
3468 TEST_P(QuicFramerTest, BuildStopWaitingPacket) { 3473 TEST_P(QuicFramerTest, BuildStopWaitingPacket) {
3469 QuicPacketHeader header; 3474 QuicPacketHeader header;
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
4017 4022
4018 // Create a packet with just the ack. 4023 // Create a packet with just the ack.
4019 QuicAckFrame ack_frame = MakeAckFrameWithNackRanges(300, 0u); 4024 QuicAckFrame ack_frame = MakeAckFrameWithNackRanges(300, 0u);
4020 QuicFrame frame; 4025 QuicFrame frame;
4021 frame.type = ACK_FRAME; 4026 frame.type = ACK_FRAME;
4022 frame.ack_frame = &ack_frame; 4027 frame.ack_frame = &ack_frame;
4023 QuicFrames frames; 4028 QuicFrames frames;
4024 frames.push_back(frame); 4029 frames.push_back(frame);
4025 4030
4026 // Build an ack packet with truncation due to limit in number of nack ranges. 4031 // Build an ack packet with truncation due to limit in number of nack ranges.
4027 scoped_ptr<QuicPacket> raw_ack_packet( 4032 scoped_ptr<QuicPacket> raw_ack_packet(BuildDataPacket(header, frames));
4028 framer_.BuildDataPacket(header, frames, kMaxPacketSize));
4029 ASSERT_TRUE(raw_ack_packet != nullptr); 4033 ASSERT_TRUE(raw_ack_packet != nullptr);
4030 scoped_ptr<QuicEncryptedPacket> ack_packet( 4034 scoped_ptr<QuicEncryptedPacket> ack_packet(
4031 framer_.EncryptPacket(ENCRYPTION_NONE, header.packet_sequence_number, 4035 framer_.EncryptPacket(ENCRYPTION_NONE, header.packet_sequence_number,
4032 *raw_ack_packet)); 4036 *raw_ack_packet));
4033 // Now make sure we can turn our ack packet back into an ack frame. 4037 // Now make sure we can turn our ack packet back into an ack frame.
4034 ASSERT_TRUE(framer_.ProcessPacket(*ack_packet)); 4038 ASSERT_TRUE(framer_.ProcessPacket(*ack_packet));
4035 ASSERT_EQ(1u, visitor_.ack_frames_.size()); 4039 ASSERT_EQ(1u, visitor_.ack_frames_.size());
4036 QuicAckFrame& processed_ack_frame = *visitor_.ack_frames_[0]; 4040 QuicAckFrame& processed_ack_frame = *visitor_.ack_frames_[0];
4037 EXPECT_TRUE(processed_ack_frame.is_truncated); 4041 EXPECT_TRUE(processed_ack_frame.is_truncated);
4038 EXPECT_EQ(510u, processed_ack_frame.largest_observed); 4042 EXPECT_EQ(510u, processed_ack_frame.largest_observed);
(...skipping 18 matching lines...) Expand all
4057 4061
4058 // Create a packet with just the ack. 4062 // Create a packet with just the ack.
4059 QuicAckFrame ack_frame = MakeAckFrameWithNackRanges(300, 0u); 4063 QuicAckFrame ack_frame = MakeAckFrameWithNackRanges(300, 0u);
4060 QuicFrame frame; 4064 QuicFrame frame;
4061 frame.type = ACK_FRAME; 4065 frame.type = ACK_FRAME;
4062 frame.ack_frame = &ack_frame; 4066 frame.ack_frame = &ack_frame;
4063 QuicFrames frames; 4067 QuicFrames frames;
4064 frames.push_back(frame); 4068 frames.push_back(frame);
4065 4069
4066 // Build an ack packet with truncation due to limit in number of nack ranges. 4070 // Build an ack packet with truncation due to limit in number of nack ranges.
4067 scoped_ptr<QuicPacket> raw_ack_packet( 4071 scoped_ptr<QuicPacket> raw_ack_packet(BuildDataPacket(header, frames, 500));
4068 framer_.BuildDataPacket(header, frames, 500));
4069 ASSERT_TRUE(raw_ack_packet != nullptr); 4072 ASSERT_TRUE(raw_ack_packet != nullptr);
4070 scoped_ptr<QuicEncryptedPacket> ack_packet( 4073 scoped_ptr<QuicEncryptedPacket> ack_packet(
4071 framer_.EncryptPacket(ENCRYPTION_NONE, header.packet_sequence_number, 4074 framer_.EncryptPacket(ENCRYPTION_NONE, header.packet_sequence_number,
4072 *raw_ack_packet)); 4075 *raw_ack_packet));
4073 // Now make sure we can turn our ack packet back into an ack frame. 4076 // Now make sure we can turn our ack packet back into an ack frame.
4074 ASSERT_TRUE(framer_.ProcessPacket(*ack_packet)); 4077 ASSERT_TRUE(framer_.ProcessPacket(*ack_packet));
4075 ASSERT_EQ(1u, visitor_.ack_frames_.size()); 4078 ASSERT_EQ(1u, visitor_.ack_frames_.size());
4076 QuicAckFrame& processed_ack_frame = *visitor_.ack_frames_[0]; 4079 QuicAckFrame& processed_ack_frame = *visitor_.ack_frames_[0];
4077 EXPECT_TRUE(processed_ack_frame.is_truncated); 4080 EXPECT_TRUE(processed_ack_frame.is_truncated);
4078 EXPECT_EQ(476u, processed_ack_frame.largest_observed); 4081 EXPECT_EQ(476u, processed_ack_frame.largest_observed);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
4259 EXPECT_CALL(visitor, OnPacketComplete()); 4262 EXPECT_CALL(visitor, OnPacketComplete());
4260 EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true)); 4263 EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true));
4261 4264
4262 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false); 4265 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
4263 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); 4266 EXPECT_TRUE(framer_.ProcessPacket(encrypted));
4264 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); 4267 EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
4265 } 4268 }
4266 4269
4267 } // namespace test 4270 } // namespace test
4268 } // namespace net 4271 } // 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