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

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

Issue 181483006: PACKET_NBYTE_GUID -> PACKET_NBYTE_CONNECTION_ID (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: small comment fix 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_connection_logger.cc ('k') | net/quic/quic_crypto_client_stream.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_connection.h" 5 #include "net/quic/quic_connection.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 uint32 final_bytes_of_last_packet_; 392 uint32 final_bytes_of_last_packet_;
393 uint32 final_bytes_of_previous_packet_; 393 uint32 final_bytes_of_previous_packet_;
394 bool use_tagging_decrypter_; 394 bool use_tagging_decrypter_;
395 uint32 packets_write_attempts_; 395 uint32 packets_write_attempts_;
396 396
397 DISALLOW_COPY_AND_ASSIGN(TestPacketWriter); 397 DISALLOW_COPY_AND_ASSIGN(TestPacketWriter);
398 }; 398 };
399 399
400 class TestConnection : public QuicConnection { 400 class TestConnection : public QuicConnection {
401 public: 401 public:
402 TestConnection(QuicGuid guid, 402 TestConnection(QuicConnectionId connection_id,
403 IPEndPoint address, 403 IPEndPoint address,
404 TestConnectionHelper* helper, 404 TestConnectionHelper* helper,
405 TestPacketWriter* writer, 405 TestPacketWriter* writer,
406 bool is_server, 406 bool is_server,
407 QuicVersion version) 407 QuicVersion version)
408 : QuicConnection(guid, address, helper, writer, is_server, 408 : QuicConnection(connection_id, address, helper, writer, is_server,
409 SupportedVersions(version)), 409 SupportedVersions(version)),
410 helper_(helper), 410 helper_(helper),
411 writer_(writer) { 411 writer_(writer) {
412 // Disable tail loss probes for most tests. 412 // Disable tail loss probes for most tests.
413 QuicSentPacketManagerPeer::SetMaxTailLossProbes( 413 QuicSentPacketManagerPeer::SetMaxTailLossProbes(
414 QuicConnectionPeer::GetSentPacketManager(this), 0); 414 QuicConnectionPeer::GetSentPacketManager(this), 0);
415 writer_->set_is_server(is_server); 415 writer_->set_is_server(is_server);
416 } 416 }
417 417
418 void SendAck() { 418 void SendAck() {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 private: 534 private:
535 TestConnectionHelper* helper_; 535 TestConnectionHelper* helper_;
536 TestPacketWriter* writer_; 536 TestPacketWriter* writer_;
537 537
538 DISALLOW_COPY_AND_ASSIGN(TestConnection); 538 DISALLOW_COPY_AND_ASSIGN(TestConnection);
539 }; 539 };
540 540
541 class QuicConnectionTest : public ::testing::TestWithParam<QuicVersion> { 541 class QuicConnectionTest : public ::testing::TestWithParam<QuicVersion> {
542 protected: 542 protected:
543 QuicConnectionTest() 543 QuicConnectionTest()
544 : guid_(42), 544 : connection_id_(42),
545 framer_(SupportedVersions(version()), QuicTime::Zero(), false), 545 framer_(SupportedVersions(version()), QuicTime::Zero(), false),
546 creator_(guid_, &framer_, &random_generator_, false), 546 creator_(connection_id_, &framer_, &random_generator_, false),
547 send_algorithm_(new StrictMock<MockSendAlgorithm>), 547 send_algorithm_(new StrictMock<MockSendAlgorithm>),
548 loss_algorithm_(new MockLossAlgorithm()), 548 loss_algorithm_(new MockLossAlgorithm()),
549 helper_(new TestConnectionHelper(&clock_, &random_generator_)), 549 helper_(new TestConnectionHelper(&clock_, &random_generator_)),
550 writer_(new TestPacketWriter(version())), 550 writer_(new TestPacketWriter(version())),
551 connection_(guid_, IPEndPoint(), helper_.get(), writer_.get(), 551 connection_(connection_id_, IPEndPoint(), helper_.get(),
552 false, version()), 552 writer_.get(), false, version()),
553 frame1_(1, false, 0, MakeIOVector(data1)), 553 frame1_(1, false, 0, MakeIOVector(data1)),
554 frame2_(1, false, 3, MakeIOVector(data2)), 554 frame2_(1, false, 3, MakeIOVector(data2)),
555 accept_packet_(true) { 555 accept_packet_(true) {
556 connection_.set_visitor(&visitor_); 556 connection_.set_visitor(&visitor_);
557 connection_.SetSendAlgorithm(send_algorithm_); 557 connection_.SetSendAlgorithm(send_algorithm_);
558 connection_.SetLossAlgorithm(loss_algorithm_); 558 connection_.SetLossAlgorithm(loss_algorithm_);
559 framer_.set_received_entropy_calculator(&entropy_calculator_); 559 framer_.set_received_entropy_calculator(&entropy_calculator_);
560 // Simplify tests by not sending feedback unless specifically configured. 560 // Simplify tests by not sending feedback unless specifically configured.
561 SetFeedback(NULL); 561 SetFeedback(NULL);
562 EXPECT_CALL( 562 EXPECT_CALL(
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 // Construct the decrypted data packet so we can compute the correct 714 // Construct the decrypted data packet so we can compute the correct
715 // redundancy. If |packet| has been provided then use that, otherwise 715 // redundancy. If |packet| has been provided then use that, otherwise
716 // construct a default data packet. 716 // construct a default data packet.
717 scoped_ptr<QuicPacket> data_packet; 717 scoped_ptr<QuicPacket> data_packet;
718 if (packet) { 718 if (packet) {
719 data_packet.reset(packet); 719 data_packet.reset(packet);
720 } else { 720 } else {
721 data_packet.reset(ConstructDataPacket(number, 1, !kEntropyFlag)); 721 data_packet.reset(ConstructDataPacket(number, 1, !kEntropyFlag));
722 } 722 }
723 723
724 header_.public_header.guid = guid_; 724 header_.public_header.connection_id = connection_id_;
725 header_.public_header.reset_flag = false; 725 header_.public_header.reset_flag = false;
726 header_.public_header.version_flag = false; 726 header_.public_header.version_flag = false;
727 header_.entropy_flag = entropy_flag; 727 header_.entropy_flag = entropy_flag;
728 header_.fec_flag = true; 728 header_.fec_flag = true;
729 header_.packet_sequence_number = number; 729 header_.packet_sequence_number = number;
730 header_.is_in_fec_group = IN_FEC_GROUP; 730 header_.is_in_fec_group = IN_FEC_GROUP;
731 header_.fec_group = min_protected_packet; 731 header_.fec_group = min_protected_packet;
732 QuicFecData fec_data; 732 QuicFecData fec_data;
733 fec_data.fec_group = header_.fec_group; 733 fec_data.fec_group = header_.fec_group;
734 734
735 // Since all data packets in this test have the same payload, the 735 // Since all data packets in this test have the same payload, the
736 // redundancy is either equal to that payload or the xor of that payload 736 // redundancy is either equal to that payload or the xor of that payload
737 // with itself, depending on the number of packets. 737 // with itself, depending on the number of packets.
738 if (((number - min_protected_packet) % 2) == 0) { 738 if (((number - min_protected_packet) % 2) == 0) {
739 for (size_t i = GetStartOfFecProtectedData( 739 for (size_t i = GetStartOfFecProtectedData(
740 header_.public_header.guid_length, 740 header_.public_header.connection_id_length,
741 header_.public_header.version_flag, 741 header_.public_header.version_flag,
742 header_.public_header.sequence_number_length); 742 header_.public_header.sequence_number_length);
743 i < data_packet->length(); ++i) { 743 i < data_packet->length(); ++i) {
744 data_packet->mutable_data()[i] ^= data_packet->data()[i]; 744 data_packet->mutable_data()[i] ^= data_packet->data()[i];
745 } 745 }
746 } 746 }
747 fec_data.redundancy = data_packet->FecProtectedData(); 747 fec_data.redundancy = data_packet->FecProtectedData();
748 748
749 scoped_ptr<QuicPacket> fec_packet( 749 scoped_ptr<QuicPacket> fec_packet(
750 framer_.BuildFecPacket(header_, fec_data).packet); 750 framer_.BuildFecPacket(header_, fec_data).packet);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 return ProcessFramePacket(QuicFrame(frame)); 792 return ProcessFramePacket(QuicFrame(frame));
793 } 793 }
794 794
795 bool IsMissing(QuicPacketSequenceNumber number) { 795 bool IsMissing(QuicPacketSequenceNumber number) {
796 return IsAwaitingPacket(outgoing_ack()->received_info, number); 796 return IsAwaitingPacket(outgoing_ack()->received_info, number);
797 } 797 }
798 798
799 QuicPacket* ConstructDataPacket(QuicPacketSequenceNumber number, 799 QuicPacket* ConstructDataPacket(QuicPacketSequenceNumber number,
800 QuicFecGroupNumber fec_group, 800 QuicFecGroupNumber fec_group,
801 bool entropy_flag) { 801 bool entropy_flag) {
802 header_.public_header.guid = guid_; 802 header_.public_header.connection_id = connection_id_;
803 header_.public_header.reset_flag = false; 803 header_.public_header.reset_flag = false;
804 header_.public_header.version_flag = false; 804 header_.public_header.version_flag = false;
805 header_.entropy_flag = entropy_flag; 805 header_.entropy_flag = entropy_flag;
806 header_.fec_flag = false; 806 header_.fec_flag = false;
807 header_.packet_sequence_number = number; 807 header_.packet_sequence_number = number;
808 header_.is_in_fec_group = fec_group == 0u ? NOT_IN_FEC_GROUP : IN_FEC_GROUP; 808 header_.is_in_fec_group = fec_group == 0u ? NOT_IN_FEC_GROUP : IN_FEC_GROUP;
809 header_.fec_group = fec_group; 809 header_.fec_group = fec_group;
810 810
811 QuicFrames frames; 811 QuicFrames frames;
812 QuicFrame frame(&frame1_); 812 QuicFrame frame(&frame1_);
813 frames.push_back(frame); 813 frames.push_back(frame);
814 QuicPacket* packet = 814 QuicPacket* packet =
815 framer_.BuildUnsizedDataPacket(header_, frames).packet; 815 framer_.BuildUnsizedDataPacket(header_, frames).packet;
816 EXPECT_TRUE(packet != NULL); 816 EXPECT_TRUE(packet != NULL);
817 return packet; 817 return packet;
818 } 818 }
819 819
820 QuicPacket* ConstructClosePacket(QuicPacketSequenceNumber number, 820 QuicPacket* ConstructClosePacket(QuicPacketSequenceNumber number,
821 QuicFecGroupNumber fec_group) { 821 QuicFecGroupNumber fec_group) {
822 header_.public_header.guid = guid_; 822 header_.public_header.connection_id = connection_id_;
823 header_.packet_sequence_number = number; 823 header_.packet_sequence_number = number;
824 header_.public_header.reset_flag = false; 824 header_.public_header.reset_flag = false;
825 header_.public_header.version_flag = false; 825 header_.public_header.version_flag = false;
826 header_.entropy_flag = false; 826 header_.entropy_flag = false;
827 header_.fec_flag = false; 827 header_.fec_flag = false;
828 header_.is_in_fec_group = fec_group == 0u ? NOT_IN_FEC_GROUP : IN_FEC_GROUP; 828 header_.is_in_fec_group = fec_group == 0u ? NOT_IN_FEC_GROUP : IN_FEC_GROUP;
829 header_.fec_group = fec_group; 829 header_.fec_group = fec_group;
830 830
831 QuicConnectionCloseFrame qccf; 831 QuicConnectionCloseFrame qccf;
832 qccf.error_code = QUIC_PEER_GOING_AWAY; 832 qccf.error_code = QUIC_PEER_GOING_AWAY;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 ProcessDataPacket(6000, 0, !kEntropyFlag); 902 ProcessDataPacket(6000, 0, !kEntropyFlag);
903 EXPECT_FALSE( 903 EXPECT_FALSE(
904 QuicConnectionPeer::GetConnectionClosePacket(&connection_) == NULL); 904 QuicConnectionPeer::GetConnectionClosePacket(&connection_) == NULL);
905 } 905 }
906 906
907 void BlockOnNextWrite() { 907 void BlockOnNextWrite() {
908 writer_->BlockOnNextWrite(); 908 writer_->BlockOnNextWrite();
909 EXPECT_CALL(visitor_, OnWriteBlocked()).Times(AtLeast(1)); 909 EXPECT_CALL(visitor_, OnWriteBlocked()).Times(AtLeast(1));
910 } 910 }
911 911
912 QuicGuid guid_; 912 QuicConnectionId connection_id_;
913 QuicFramer framer_; 913 QuicFramer framer_;
914 QuicPacketCreator creator_; 914 QuicPacketCreator creator_;
915 MockEntropyCalculator entropy_calculator_; 915 MockEntropyCalculator entropy_calculator_;
916 916
917 MockSendAlgorithm* send_algorithm_; 917 MockSendAlgorithm* send_algorithm_;
918 MockLossAlgorithm* loss_algorithm_; 918 MockLossAlgorithm* loss_algorithm_;
919 TestReceiveAlgorithm* receive_algorithm_; 919 TestReceiveAlgorithm* receive_algorithm_;
920 MockClock clock_; 920 MockClock clock_;
921 MockRandom random_generator_; 921 MockRandom random_generator_;
922 scoped_ptr<TestConnectionHelper> helper_; 922 scoped_ptr<TestConnectionHelper> helper_;
(...skipping 2060 matching lines...) Expand 10 before | Expand all | Expand 10 after
2983 connection_.CloseConnection(QUIC_PEER_GOING_AWAY, false); 2983 connection_.CloseConnection(QUIC_PEER_GOING_AWAY, false);
2984 EXPECT_FALSE(connection_.connected()); 2984 EXPECT_FALSE(connection_.connected());
2985 QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag); 2985 QuicPacket* packet = ConstructDataPacket(1, 0, !kEntropyFlag);
2986 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, 1, _, _, _)).Times(0); 2986 EXPECT_CALL(*send_algorithm_, OnPacketSent(_, 1, _, _, _)).Times(0);
2987 connection_.SendPacket( 2987 connection_.SendPacket(
2988 ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA); 2988 ENCRYPTION_NONE, 1, packet, kTestEntropyHash, HAS_RETRANSMITTABLE_DATA);
2989 } 2989 }
2990 2990
2991 TEST_P(QuicConnectionTest, PublicReset) { 2991 TEST_P(QuicConnectionTest, PublicReset) {
2992 QuicPublicResetPacket header; 2992 QuicPublicResetPacket header;
2993 header.public_header.guid = guid_; 2993 header.public_header.connection_id = connection_id_;
2994 header.public_header.reset_flag = true; 2994 header.public_header.reset_flag = true;
2995 header.public_header.version_flag = false; 2995 header.public_header.version_flag = false;
2996 header.rejected_sequence_number = 10101; 2996 header.rejected_sequence_number = 10101;
2997 scoped_ptr<QuicEncryptedPacket> packet( 2997 scoped_ptr<QuicEncryptedPacket> packet(
2998 framer_.BuildPublicResetPacket(header)); 2998 framer_.BuildPublicResetPacket(header));
2999 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_PUBLIC_RESET, true)); 2999 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_PUBLIC_RESET, true));
3000 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *packet); 3000 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *packet);
3001 } 3001 }
3002 3002
3003 TEST_P(QuicConnectionTest, GoAway) { 3003 TEST_P(QuicConnectionTest, GoAway) {
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
3193 EXPECT_TRUE(QuicConnectionPeer::IsValidEntropy( 3193 EXPECT_TRUE(QuicConnectionPeer::IsValidEntropy(
3194 &connection_, max_sequence_number, missing_packets, entropy_hash)) 3194 &connection_, max_sequence_number, missing_packets, entropy_hash))
3195 << ""; 3195 << "";
3196 } 3196 }
3197 3197
3198 TEST_P(QuicConnectionTest, ServerSendsVersionNegotiationPacket) { 3198 TEST_P(QuicConnectionTest, ServerSendsVersionNegotiationPacket) {
3199 connection_.SetSupportedVersions(QuicSupportedVersions()); 3199 connection_.SetSupportedVersions(QuicSupportedVersions());
3200 framer_.set_version_for_tests(QUIC_VERSION_UNSUPPORTED); 3200 framer_.set_version_for_tests(QUIC_VERSION_UNSUPPORTED);
3201 3201
3202 QuicPacketHeader header; 3202 QuicPacketHeader header;
3203 header.public_header.guid = guid_; 3203 header.public_header.connection_id = connection_id_;
3204 header.public_header.reset_flag = false; 3204 header.public_header.reset_flag = false;
3205 header.public_header.version_flag = true; 3205 header.public_header.version_flag = true;
3206 header.entropy_flag = false; 3206 header.entropy_flag = false;
3207 header.fec_flag = false; 3207 header.fec_flag = false;
3208 header.packet_sequence_number = 12; 3208 header.packet_sequence_number = 12;
3209 header.fec_group = 0; 3209 header.fec_group = 0;
3210 3210
3211 QuicFrames frames; 3211 QuicFrames frames;
3212 QuicFrame frame(&frame1_); 3212 QuicFrame frame(&frame1_);
3213 frames.push_back(frame); 3213 frames.push_back(frame);
(...skipping 17 matching lines...) Expand all
3231 EXPECT_EQ(kSupportedQuicVersions[i], 3231 EXPECT_EQ(kSupportedQuicVersions[i],
3232 writer_->version_negotiation_packet()->versions[i]); 3232 writer_->version_negotiation_packet()->versions[i]);
3233 } 3233 }
3234 } 3234 }
3235 3235
3236 TEST_P(QuicConnectionTest, ServerSendsVersionNegotiationPacketSocketBlocked) { 3236 TEST_P(QuicConnectionTest, ServerSendsVersionNegotiationPacketSocketBlocked) {
3237 connection_.SetSupportedVersions(QuicSupportedVersions()); 3237 connection_.SetSupportedVersions(QuicSupportedVersions());
3238 framer_.set_version_for_tests(QUIC_VERSION_UNSUPPORTED); 3238 framer_.set_version_for_tests(QUIC_VERSION_UNSUPPORTED);
3239 3239
3240 QuicPacketHeader header; 3240 QuicPacketHeader header;
3241 header.public_header.guid = guid_; 3241 header.public_header.connection_id = connection_id_;
3242 header.public_header.reset_flag = false; 3242 header.public_header.reset_flag = false;
3243 header.public_header.version_flag = true; 3243 header.public_header.version_flag = true;
3244 header.entropy_flag = false; 3244 header.entropy_flag = false;
3245 header.fec_flag = false; 3245 header.fec_flag = false;
3246 header.packet_sequence_number = 12; 3246 header.packet_sequence_number = 12;
3247 header.fec_group = 0; 3247 header.fec_group = 0;
3248 3248
3249 QuicFrames frames; 3249 QuicFrames frames;
3250 QuicFrame frame(&frame1_); 3250 QuicFrame frame(&frame1_);
3251 frames.push_back(frame); 3251 frames.push_back(frame);
(...skipping 24 matching lines...) Expand all
3276 writer_->version_negotiation_packet()->versions[i]); 3276 writer_->version_negotiation_packet()->versions[i]);
3277 } 3277 }
3278 } 3278 }
3279 3279
3280 TEST_P(QuicConnectionTest, 3280 TEST_P(QuicConnectionTest,
3281 ServerSendsVersionNegotiationPacketSocketBlockedDataBuffered) { 3281 ServerSendsVersionNegotiationPacketSocketBlockedDataBuffered) {
3282 connection_.SetSupportedVersions(QuicSupportedVersions()); 3282 connection_.SetSupportedVersions(QuicSupportedVersions());
3283 framer_.set_version_for_tests(QUIC_VERSION_UNSUPPORTED); 3283 framer_.set_version_for_tests(QUIC_VERSION_UNSUPPORTED);
3284 3284
3285 QuicPacketHeader header; 3285 QuicPacketHeader header;
3286 header.public_header.guid = guid_; 3286 header.public_header.connection_id = connection_id_;
3287 header.public_header.reset_flag = false; 3287 header.public_header.reset_flag = false;
3288 header.public_header.version_flag = true; 3288 header.public_header.version_flag = true;
3289 header.entropy_flag = false; 3289 header.entropy_flag = false;
3290 header.fec_flag = false; 3290 header.fec_flag = false;
3291 header.packet_sequence_number = 12; 3291 header.packet_sequence_number = 12;
3292 header.fec_group = 0; 3292 header.fec_group = 0;
3293 3293
3294 QuicFrames frames; 3294 QuicFrames frames;
3295 QuicFrame frame(&frame1_); 3295 QuicFrame frame(&frame1_);
3296 frames.push_back(frame); 3296 frames.push_back(frame);
(...skipping 10 matching lines...) Expand all
3307 EXPECT_EQ(0u, writer_->last_packet_size()); 3307 EXPECT_EQ(0u, writer_->last_packet_size());
3308 EXPECT_FALSE(connection_.HasQueuedData()); 3308 EXPECT_FALSE(connection_.HasQueuedData());
3309 } 3309 }
3310 3310
3311 TEST_P(QuicConnectionTest, ClientHandlesVersionNegotiation) { 3311 TEST_P(QuicConnectionTest, ClientHandlesVersionNegotiation) {
3312 // Start out with some unsupported version. 3312 // Start out with some unsupported version.
3313 QuicConnectionPeer::GetFramer(&connection_)->set_version_for_tests( 3313 QuicConnectionPeer::GetFramer(&connection_)->set_version_for_tests(
3314 QUIC_VERSION_UNSUPPORTED); 3314 QUIC_VERSION_UNSUPPORTED);
3315 3315
3316 QuicPacketHeader header; 3316 QuicPacketHeader header;
3317 header.public_header.guid = guid_; 3317 header.public_header.connection_id = connection_id_;
3318 header.public_header.reset_flag = false; 3318 header.public_header.reset_flag = false;
3319 header.public_header.version_flag = true; 3319 header.public_header.version_flag = true;
3320 header.entropy_flag = false; 3320 header.entropy_flag = false;
3321 header.fec_flag = false; 3321 header.fec_flag = false;
3322 header.packet_sequence_number = 12; 3322 header.packet_sequence_number = 12;
3323 header.fec_group = 0; 3323 header.fec_group = 0;
3324 3324
3325 QuicVersionVector supported_versions; 3325 QuicVersionVector supported_versions;
3326 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { 3326 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) {
3327 supported_versions.push_back(kSupportedQuicVersions[i]); 3327 supported_versions.push_back(kSupportedQuicVersions[i]);
(...skipping 17 matching lines...) Expand all
3345 EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(1); 3345 EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(1);
3346 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); 3346 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
3347 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted); 3347 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted);
3348 3348
3349 ASSERT_FALSE(QuicPacketCreatorPeer::SendVersionInPacket( 3349 ASSERT_FALSE(QuicPacketCreatorPeer::SendVersionInPacket(
3350 QuicConnectionPeer::GetPacketCreator(&connection_))); 3350 QuicConnectionPeer::GetPacketCreator(&connection_)));
3351 } 3351 }
3352 3352
3353 TEST_P(QuicConnectionTest, BadVersionNegotiation) { 3353 TEST_P(QuicConnectionTest, BadVersionNegotiation) {
3354 QuicPacketHeader header; 3354 QuicPacketHeader header;
3355 header.public_header.guid = guid_; 3355 header.public_header.connection_id = connection_id_;
3356 header.public_header.reset_flag = false; 3356 header.public_header.reset_flag = false;
3357 header.public_header.version_flag = true; 3357 header.public_header.version_flag = true;
3358 header.entropy_flag = false; 3358 header.entropy_flag = false;
3359 header.fec_flag = false; 3359 header.fec_flag = false;
3360 header.packet_sequence_number = 12; 3360 header.packet_sequence_number = 12;
3361 header.fec_group = 0; 3361 header.fec_group = 0;
3362 3362
3363 QuicVersionVector supported_versions; 3363 QuicVersionVector supported_versions;
3364 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { 3364 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) {
3365 supported_versions.push_back(kSupportedQuicVersions[i]); 3365 supported_versions.push_back(kSupportedQuicVersions[i]);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
3473 ASSERT_TRUE(QuicConnectionPeer::GetFecGroup(&connection_, 2) == NULL); 3473 ASSERT_TRUE(QuicConnectionPeer::GetFecGroup(&connection_, 2) == NULL);
3474 3474
3475 // Verify that adding 5 kills off 3, despite 4 being created before 3. 3475 // Verify that adding 5 kills off 3, despite 4 being created before 3.
3476 ASSERT_TRUE(QuicConnectionPeer::GetFecGroup(&connection_, 5) != NULL); 3476 ASSERT_TRUE(QuicConnectionPeer::GetFecGroup(&connection_, 5) != NULL);
3477 ASSERT_TRUE(QuicConnectionPeer::GetFecGroup(&connection_, 4) != NULL); 3477 ASSERT_TRUE(QuicConnectionPeer::GetFecGroup(&connection_, 4) != NULL);
3478 ASSERT_TRUE(QuicConnectionPeer::GetFecGroup(&connection_, 3) == NULL); 3478 ASSERT_TRUE(QuicConnectionPeer::GetFecGroup(&connection_, 3) == NULL);
3479 } 3479 }
3480 3480
3481 TEST_P(QuicConnectionTest, ProcessFramesIfPacketClosedConnection) { 3481 TEST_P(QuicConnectionTest, ProcessFramesIfPacketClosedConnection) {
3482 // Construct a packet with stream frame and connection close frame. 3482 // Construct a packet with stream frame and connection close frame.
3483 header_.public_header.guid = guid_; 3483 header_.public_header.connection_id = connection_id_;
3484 header_.packet_sequence_number = 1; 3484 header_.packet_sequence_number = 1;
3485 header_.public_header.reset_flag = false; 3485 header_.public_header.reset_flag = false;
3486 header_.public_header.version_flag = false; 3486 header_.public_header.version_flag = false;
3487 header_.entropy_flag = false; 3487 header_.entropy_flag = false;
3488 header_.fec_flag = false; 3488 header_.fec_flag = false;
3489 header_.fec_group = 0; 3489 header_.fec_group = 0;
3490 3490
3491 QuicConnectionCloseFrame qccf; 3491 QuicConnectionCloseFrame qccf;
3492 qccf.error_code = QUIC_PEER_GOING_AWAY; 3492 qccf.error_code = QUIC_PEER_GOING_AWAY;
3493 QuicFrame close_frame(&qccf); 3493 QuicFrame close_frame(&qccf);
(...skipping 11 matching lines...) Expand all
3505 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_PEER_GOING_AWAY, true)); 3505 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_PEER_GOING_AWAY, true));
3506 EXPECT_CALL(visitor_, OnStreamFrames(_)).WillOnce(Return(true)); 3506 EXPECT_CALL(visitor_, OnStreamFrames(_)).WillOnce(Return(true));
3507 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); 3507 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
3508 3508
3509 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted); 3509 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted);
3510 } 3510 }
3511 3511
3512 TEST_P(QuicConnectionTest, DontProcessStreamFrameAndIgnoreCloseFrame) { 3512 TEST_P(QuicConnectionTest, DontProcessStreamFrameAndIgnoreCloseFrame) {
3513 // Construct a packet with stream frame, ack frame, 3513 // Construct a packet with stream frame, ack frame,
3514 // and connection close frame. 3514 // and connection close frame.
3515 header_.public_header.guid = guid_; 3515 header_.public_header.connection_id = connection_id_;
3516 header_.packet_sequence_number = 1; 3516 header_.packet_sequence_number = 1;
3517 header_.public_header.reset_flag = false; 3517 header_.public_header.reset_flag = false;
3518 header_.public_header.version_flag = false; 3518 header_.public_header.version_flag = false;
3519 header_.entropy_flag = false; 3519 header_.entropy_flag = false;
3520 header_.fec_flag = false; 3520 header_.fec_flag = false;
3521 header_.fec_group = 0; 3521 header_.fec_group = 0;
3522 3522
3523 QuicConnectionCloseFrame qccf; 3523 QuicConnectionCloseFrame qccf;
3524 qccf.error_code = QUIC_PEER_GOING_AWAY; 3524 qccf.error_code = QUIC_PEER_GOING_AWAY;
3525 QuicFrame close_frame(&qccf); 3525 QuicFrame close_frame(&qccf);
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
3708 // Should recover the Ack packet and trigger the notification callback. 3708 // Should recover the Ack packet and trigger the notification callback.
3709 QuicFrames frames; 3709 QuicFrames frames;
3710 3710
3711 QuicAckFrame ack_frame = InitAckFrame(1, 0); 3711 QuicAckFrame ack_frame = InitAckFrame(1, 0);
3712 frames.push_back(QuicFrame(&ack_frame)); 3712 frames.push_back(QuicFrame(&ack_frame));
3713 3713
3714 // Dummy stream frame to satisfy expectations set elsewhere. 3714 // Dummy stream frame to satisfy expectations set elsewhere.
3715 frames.push_back(QuicFrame(&frame1_)); 3715 frames.push_back(QuicFrame(&frame1_));
3716 3716
3717 QuicPacketHeader ack_header; 3717 QuicPacketHeader ack_header;
3718 ack_header.public_header.guid = guid_; 3718 ack_header.public_header.connection_id = connection_id_;
3719 ack_header.public_header.reset_flag = false; 3719 ack_header.public_header.reset_flag = false;
3720 ack_header.public_header.version_flag = false; 3720 ack_header.public_header.version_flag = false;
3721 ack_header.entropy_flag = !kEntropyFlag; 3721 ack_header.entropy_flag = !kEntropyFlag;
3722 ack_header.fec_flag = true; 3722 ack_header.fec_flag = true;
3723 ack_header.packet_sequence_number = 1; 3723 ack_header.packet_sequence_number = 1;
3724 ack_header.is_in_fec_group = IN_FEC_GROUP; 3724 ack_header.is_in_fec_group = IN_FEC_GROUP;
3725 ack_header.fec_group = 1; 3725 ack_header.fec_group = 1;
3726 3726
3727 QuicPacket* packet = 3727 QuicPacket* packet =
3728 framer_.BuildUnsizedDataPacket(ack_header, frames).packet; 3728 framer_.BuildUnsizedDataPacket(ack_header, frames).packet;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
3793 scoped_ptr<MockQuicConnectionDebugVisitor> 3793 scoped_ptr<MockQuicConnectionDebugVisitor>
3794 debug_visitor(new StrictMock<MockQuicConnectionDebugVisitor>); 3794 debug_visitor(new StrictMock<MockQuicConnectionDebugVisitor>);
3795 connection_.set_debug_visitor(debug_visitor.get()); 3795 connection_.set_debug_visitor(debug_visitor.get());
3796 EXPECT_CALL(*debug_visitor, OnPacketHeader(Ref(header))).Times(1); 3796 EXPECT_CALL(*debug_visitor, OnPacketHeader(Ref(header))).Times(1);
3797 connection_.OnPacketHeader(header); 3797 connection_.OnPacketHeader(header);
3798 } 3798 }
3799 3799
3800 TEST_P(QuicConnectionTest, Pacing) { 3800 TEST_P(QuicConnectionTest, Pacing) {
3801 ValueRestore<bool> old_flag(&FLAGS_enable_quic_pacing, true); 3801 ValueRestore<bool> old_flag(&FLAGS_enable_quic_pacing, true);
3802 3802
3803 TestConnection server(guid_, IPEndPoint(), helper_.get(), writer_.get(), 3803 TestConnection server(connection_id_, IPEndPoint(), helper_.get(),
3804 true, version()); 3804 writer_.get(), true, version());
3805 TestConnection client(guid_, IPEndPoint(), helper_.get(), writer_.get(), 3805 TestConnection client(connection_id_, IPEndPoint(), helper_.get(),
3806 false, version()); 3806 writer_.get(), false, version());
3807 EXPECT_TRUE(client.sent_packet_manager().using_pacing()); 3807 EXPECT_TRUE(client.sent_packet_manager().using_pacing());
3808 EXPECT_FALSE(server.sent_packet_manager().using_pacing()); 3808 EXPECT_FALSE(server.sent_packet_manager().using_pacing());
3809 } 3809 }
3810 3810
3811 TEST_P(QuicConnectionTest, ControlFramesInstigateAcks) { 3811 TEST_P(QuicConnectionTest, ControlFramesInstigateAcks) {
3812 if (version() < QUIC_VERSION_14) { 3812 if (version() < QUIC_VERSION_14) {
3813 return; 3813 return;
3814 } 3814 }
3815 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); 3815 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
3816 3816
(...skipping 13 matching lines...) Expand all
3830 QuicBlockedFrame blocked; 3830 QuicBlockedFrame blocked;
3831 blocked.stream_id = 3; 3831 blocked.stream_id = 3;
3832 EXPECT_CALL(visitor_, OnBlockedFrames(_)); 3832 EXPECT_CALL(visitor_, OnBlockedFrames(_));
3833 ProcessFramePacket(QuicFrame(&blocked)); 3833 ProcessFramePacket(QuicFrame(&blocked));
3834 EXPECT_TRUE(ack_alarm->IsSet()); 3834 EXPECT_TRUE(ack_alarm->IsSet());
3835 } 3835 }
3836 3836
3837 } // namespace 3837 } // namespace
3838 } // namespace test 3838 } // namespace test
3839 } // namespace net 3839 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_connection_logger.cc ('k') | net/quic/quic_crypto_client_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698