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

Side by Side Diff: net/quic/core/quic_packet_creator_test.cc

Issue 2322233004: Landing Recent QUIC changes until Sun Sep 4 03:41:00 (Closed)
Patch Set: Remove simulation files from the build. Created 4 years, 3 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/core/quic_packet_creator.cc ('k') | net/quic/core/quic_packet_generator.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/core/quic_packet_creator.h" 5 #include "net/quic/core/quic_packet_creator.h"
6 6
7 #include <cstdint> 7 #include <cstdint>
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 10
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 &buffer_allocator_, 131 &buffer_allocator_,
132 &delegate_), 132 &delegate_),
133 serialized_packet_(creator_.NoPacket()) { 133 serialized_packet_(creator_.NoPacket()) {
134 creator_.set_connection_id_length(GetParam().connection_id_length); 134 creator_.set_connection_id_length(GetParam().connection_id_length);
135 135
136 creator_.SetEncrypter(ENCRYPTION_INITIAL, new NullEncrypter()); 136 creator_.SetEncrypter(ENCRYPTION_INITIAL, new NullEncrypter());
137 creator_.SetEncrypter(ENCRYPTION_FORWARD_SECURE, new NullEncrypter()); 137 creator_.SetEncrypter(ENCRYPTION_FORWARD_SECURE, new NullEncrypter());
138 client_framer_.set_visitor(&framer_visitor_); 138 client_framer_.set_visitor(&framer_visitor_);
139 client_framer_.set_received_entropy_calculator(&entropy_calculator_); 139 client_framer_.set_received_entropy_calculator(&entropy_calculator_);
140 server_framer_.set_visitor(&framer_visitor_); 140 server_framer_.set_visitor(&framer_visitor_);
141 // TODO(ianswett): Fix this test so it uses a non-null encrypter.
142 FLAGS_quic_never_write_unencrypted_data = false;
143 } 141 }
144 142
145 ~QuicPacketCreatorTest() override { 143 ~QuicPacketCreatorTest() override {
146 delete[] serialized_packet_.encrypted_buffer; 144 delete[] serialized_packet_.encrypted_buffer;
147 ClearSerializedPacket(&serialized_packet_); 145 ClearSerializedPacket(&serialized_packet_);
148 } 146 }
149 147
150 SerializedPacket SerializeAllFrames(const QuicFrames& frames) { 148 SerializedPacket SerializeAllFrames(const QuicFrames& frames) {
151 SerializedPacket packet = QuicPacketCreatorPeer::SerializeAllFrames( 149 SerializedPacket packet = QuicPacketCreatorPeer::SerializeAllFrames(
152 &creator_, frames, buffer_, kMaxPacketSize); 150 &creator_, frames, buffer_, kMaxPacketSize);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 // length of truncated connection id. 243 // length of truncated connection id.
246 INSTANTIATE_TEST_CASE_P(QuicPacketCreatorTests, 244 INSTANTIATE_TEST_CASE_P(QuicPacketCreatorTests,
247 QuicPacketCreatorTest, 245 QuicPacketCreatorTest,
248 ::testing::ValuesIn(GetTestParams())); 246 ::testing::ValuesIn(GetTestParams()));
249 247
250 TEST_P(QuicPacketCreatorTest, SerializeFrames) { 248 TEST_P(QuicPacketCreatorTest, SerializeFrames) {
251 for (int i = ENCRYPTION_NONE; i < NUM_ENCRYPTION_LEVELS; ++i) { 249 for (int i = ENCRYPTION_NONE; i < NUM_ENCRYPTION_LEVELS; ++i) {
252 EncryptionLevel level = static_cast<EncryptionLevel>(i); 250 EncryptionLevel level = static_cast<EncryptionLevel>(i);
253 creator_.set_encryption_level(level); 251 creator_.set_encryption_level(level);
254 frames_.push_back(QuicFrame(new QuicAckFrame(MakeAckFrame(0u)))); 252 frames_.push_back(QuicFrame(new QuicAckFrame(MakeAckFrame(0u))));
255 frames_.push_back( 253 frames_.push_back(QuicFrame(
256 QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece()))); 254 new QuicStreamFrame(kCryptoStreamId, false, 0u, StringPiece())));
257 frames_.push_back( 255 frames_.push_back(QuicFrame(
258 QuicFrame(new QuicStreamFrame(0u, true, 0u, StringPiece()))); 256 new QuicStreamFrame(kCryptoStreamId, true, 0u, StringPiece())));
259 SerializedPacket serialized = SerializeAllFrames(frames_); 257 SerializedPacket serialized = SerializeAllFrames(frames_);
260 EXPECT_EQ(level, serialized.encryption_level); 258 EXPECT_EQ(level, serialized.encryption_level);
261 delete frames_[0].ack_frame; 259 delete frames_[0].ack_frame;
262 delete frames_[1].stream_frame; 260 delete frames_[1].stream_frame;
263 delete frames_[2].stream_frame; 261 delete frames_[2].stream_frame;
264 frames_.clear(); 262 frames_.clear();
265 263
266 { 264 {
267 InSequence s; 265 InSequence s;
268 EXPECT_CALL(framer_visitor_, OnPacket()); 266 EXPECT_CALL(framer_visitor_, OnPacket());
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 EXPECT_CALL(framer_visitor_, OnPacketHeader(_)); 632 EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
635 EXPECT_CALL(framer_visitor_, OnConnectionCloseFrame(_)); 633 EXPECT_CALL(framer_visitor_, OnConnectionCloseFrame(_));
636 EXPECT_CALL(framer_visitor_, OnPacketComplete()); 634 EXPECT_CALL(framer_visitor_, OnPacketComplete());
637 635
638 ProcessPacket(serialized); 636 ProcessPacket(serialized);
639 } 637 }
640 638
641 TEST_P(QuicPacketCreatorTest, ConsumeData) { 639 TEST_P(QuicPacketCreatorTest, ConsumeData) {
642 QuicFrame frame; 640 QuicFrame frame;
643 QuicIOVector io_vector(MakeIOVector("test")); 641 QuicIOVector io_vector(MakeIOVector("test"));
644 ASSERT_TRUE( 642 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, false,
645 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 643 false, &frame));
646 ASSERT_TRUE(frame.stream_frame); 644 ASSERT_TRUE(frame.stream_frame);
647 size_t consumed = frame.stream_frame->data_length; 645 size_t consumed = frame.stream_frame->data_length;
648 EXPECT_EQ(4u, consumed); 646 EXPECT_EQ(4u, consumed);
649 CheckStreamFrame(frame, 1u, "test", 0u, false); 647 CheckStreamFrame(frame, 1u, "test", 0u, false);
650 EXPECT_TRUE(creator_.HasPendingFrames()); 648 EXPECT_TRUE(creator_.HasPendingFrames());
651 } 649 }
652 650
653 TEST_P(QuicPacketCreatorTest, ConsumeDataFin) { 651 TEST_P(QuicPacketCreatorTest, ConsumeDataFin) {
654 QuicFrame frame; 652 QuicFrame frame;
655 QuicIOVector io_vector(MakeIOVector("test")); 653 QuicIOVector io_vector(MakeIOVector("test"));
656 ASSERT_TRUE( 654 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 10u, true,
657 creator_.ConsumeData(1u, io_vector, 0u, 10u, true, false, &frame)); 655 false, &frame));
658 ASSERT_TRUE(frame.stream_frame); 656 ASSERT_TRUE(frame.stream_frame);
659 size_t consumed = frame.stream_frame->data_length; 657 size_t consumed = frame.stream_frame->data_length;
660 EXPECT_EQ(4u, consumed); 658 EXPECT_EQ(4u, consumed);
661 CheckStreamFrame(frame, 1u, "test", 10u, true); 659 CheckStreamFrame(frame, 1u, "test", 10u, true);
662 EXPECT_TRUE(creator_.HasPendingFrames()); 660 EXPECT_TRUE(creator_.HasPendingFrames());
663 } 661 }
664 662
665 TEST_P(QuicPacketCreatorTest, ConsumeDataFinOnly) { 663 TEST_P(QuicPacketCreatorTest, ConsumeDataFinOnly) {
666 QuicFrame frame; 664 QuicFrame frame;
667 QuicIOVector io_vector(nullptr, 0, 0); 665 QuicIOVector io_vector(nullptr, 0, 0);
668 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, true, false, &frame)); 666 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, true,
667 false, &frame));
669 ASSERT_TRUE(frame.stream_frame); 668 ASSERT_TRUE(frame.stream_frame);
670 size_t consumed = frame.stream_frame->data_length; 669 size_t consumed = frame.stream_frame->data_length;
671 EXPECT_EQ(0u, consumed); 670 EXPECT_EQ(0u, consumed);
672 CheckStreamFrame(frame, 1u, string(), 0u, true); 671 CheckStreamFrame(frame, 1u, string(), 0u, true);
673 EXPECT_TRUE(creator_.HasPendingFrames()); 672 EXPECT_TRUE(creator_.HasPendingFrames());
674 } 673 }
675 674
676 TEST_P(QuicPacketCreatorTest, CreateAllFreeBytesForStreamFrames) { 675 TEST_P(QuicPacketCreatorTest, CreateAllFreeBytesForStreamFrames) {
676 creator_.set_encryption_level(ENCRYPTION_FORWARD_SECURE);
677 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) + 677 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) +
678 GetEncryptionOverhead(); 678 GetEncryptionOverhead();
679 for (size_t i = overhead; i < overhead + 100; ++i) { 679 for (size_t i = overhead; i < overhead + 100; ++i) {
680 creator_.SetMaxPacketLength(i); 680 creator_.SetMaxPacketLength(i);
681 const bool should_have_room = i > overhead + GetStreamFrameOverhead(); 681 const bool should_have_room = i > overhead + GetStreamFrameOverhead();
682 ASSERT_EQ(should_have_room, 682 ASSERT_EQ(should_have_room,
683 creator_.HasRoomForStreamFrame(kClientDataStreamId1, kOffset)); 683 creator_.HasRoomForStreamFrame(kClientDataStreamId1, kOffset));
684 if (should_have_room) { 684 if (should_have_room) {
685 QuicFrame frame; 685 QuicFrame frame;
686 QuicIOVector io_vector(MakeIOVector("testdata")); 686 QuicIOVector io_vector(MakeIOVector("testdata"));
687 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 687 EXPECT_CALL(delegate_, OnSerializedPacket(_))
688 .WillRepeatedly( 688 .WillRepeatedly(
689 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); 689 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket));
690 ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u, 690 ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u,
691 kOffset, false, false, &frame)); 691 kOffset, false, false, &frame));
692 ASSERT_TRUE(frame.stream_frame); 692 ASSERT_TRUE(frame.stream_frame);
693 size_t bytes_consumed = frame.stream_frame->data_length; 693 size_t bytes_consumed = frame.stream_frame->data_length;
694 EXPECT_LT(0u, bytes_consumed); 694 EXPECT_LT(0u, bytes_consumed);
695 creator_.Flush(); 695 creator_.Flush();
696 } 696 }
697 } 697 }
698 } 698 }
699 699
700 TEST_P(QuicPacketCreatorTest, StreamFrameConsumption) { 700 TEST_P(QuicPacketCreatorTest, StreamFrameConsumption) {
701 creator_.set_encryption_level(ENCRYPTION_FORWARD_SECURE);
701 // Compute the total overhead for a single frame in packet. 702 // Compute the total overhead for a single frame in packet.
702 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) + 703 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) +
703 GetEncryptionOverhead() + GetStreamFrameOverhead(); 704 GetEncryptionOverhead() + GetStreamFrameOverhead();
704 size_t capacity = kDefaultMaxPacketSize - overhead; 705 size_t capacity = kDefaultMaxPacketSize - overhead;
705 // Now, test various sizes around this size. 706 // Now, test various sizes around this size.
706 for (int delta = -5; delta <= 5; ++delta) { 707 for (int delta = -5; delta <= 5; ++delta) {
707 string data(capacity + delta, 'A'); 708 string data(capacity + delta, 'A');
708 size_t bytes_free = delta > 0 ? 0 : 0 - delta; 709 size_t bytes_free = delta > 0 ? 0 : 0 - delta;
709 QuicFrame frame; 710 QuicFrame frame;
710 QuicIOVector io_vector(MakeIOVector(data)); 711 QuicIOVector io_vector(MakeIOVector(data));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 EXPECT_EQ(kDefaultMaxPacketSize - bytes_free, 756 EXPECT_EQ(kDefaultMaxPacketSize - bytes_free,
756 serialized_packet_.encrypted_length); 757 serialized_packet_.encrypted_length);
757 } else { 758 } else {
758 EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.encrypted_length); 759 EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.encrypted_length);
759 } 760 }
760 DeleteSerializedPacket(); 761 DeleteSerializedPacket();
761 } 762 }
762 } 763 }
763 764
764 TEST_P(QuicPacketCreatorTest, NonCryptoStreamFramePacketNonPadding) { 765 TEST_P(QuicPacketCreatorTest, NonCryptoStreamFramePacketNonPadding) {
766 creator_.set_encryption_level(ENCRYPTION_FORWARD_SECURE);
765 // Compute the total overhead for a single frame in packet. 767 // Compute the total overhead for a single frame in packet.
766 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) + 768 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) +
767 GetEncryptionOverhead() + GetStreamFrameOverhead(); 769 GetEncryptionOverhead() + GetStreamFrameOverhead();
768 ASSERT_GT(kDefaultMaxPacketSize, overhead); 770 ASSERT_GT(kDefaultMaxPacketSize, overhead);
769 size_t capacity = kDefaultMaxPacketSize - overhead; 771 size_t capacity = kDefaultMaxPacketSize - overhead;
770 // Now, test various sizes around this size. 772 // Now, test various sizes around this size.
771 for (int delta = -5; delta <= 5; ++delta) { 773 for (int delta = -5; delta <= 5; ++delta) {
772 string data(capacity + delta, 'A'); 774 string data(capacity + delta, 'A');
773 size_t bytes_free = delta > 0 ? 0 : 0 - delta; 775 size_t bytes_free = delta > 0 ? 0 : 0 - delta;
774 776
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 creator_.UpdatePacketNumberLength( 911 creator_.UpdatePacketNumberLength(
910 1, UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize); 912 1, UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize);
911 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER, 913 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER,
912 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 914 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
913 } 915 }
914 916
915 TEST_P(QuicPacketCreatorTest, SerializeFrame) { 917 TEST_P(QuicPacketCreatorTest, SerializeFrame) {
916 if (!GetParam().version_serialization) { 918 if (!GetParam().version_serialization) {
917 creator_.StopSendingVersion(); 919 creator_.StopSendingVersion();
918 } 920 }
919 frames_.push_back( 921 frames_.push_back(QuicFrame(
920 QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece()))); 922 new QuicStreamFrame(kCryptoStreamId, false, 0u, StringPiece())));
921 SerializedPacket serialized = SerializeAllFrames(frames_); 923 SerializedPacket serialized = SerializeAllFrames(frames_);
922 delete frames_[0].stream_frame; 924 delete frames_[0].stream_frame;
923 925
924 QuicPacketHeader header; 926 QuicPacketHeader header;
925 { 927 {
926 InSequence s; 928 InSequence s;
927 EXPECT_CALL(framer_visitor_, OnPacket()); 929 EXPECT_CALL(framer_visitor_, OnPacket());
928 EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_)); 930 EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
929 EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_)); 931 EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
930 EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_)); 932 EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
(...skipping 17 matching lines...) Expand all
948 client_framer_.version(), 950 client_framer_.version(),
949 QuicPacketCreatorPeer::SendVersionInPacket(&creator_), 951 QuicPacketCreatorPeer::SendVersionInPacket(&creator_),
950 QuicPacketCreatorPeer::SendPathIdInPacket(&creator_), 952 QuicPacketCreatorPeer::SendPathIdInPacket(&creator_),
951 !kIncludeDiversificationNonce, creator_.connection_id_length(), 953 !kIncludeDiversificationNonce, creator_.connection_id_length(),
952 PACKET_1BYTE_PACKET_NUMBER, &payload_length)); 954 PACKET_1BYTE_PACKET_NUMBER, &payload_length));
953 QuicFrame frame; 955 QuicFrame frame;
954 const string too_long_payload(payload_length * 2, 'a'); 956 const string too_long_payload(payload_length * 2, 'a');
955 QuicIOVector io_vector(MakeIOVector(too_long_payload)); 957 QuicIOVector io_vector(MakeIOVector(too_long_payload));
956 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 958 EXPECT_CALL(delegate_, OnSerializedPacket(_))
957 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 959 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
958 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, true, false, &frame)); 960 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, true,
961 false, &frame));
959 ASSERT_TRUE(frame.stream_frame); 962 ASSERT_TRUE(frame.stream_frame);
960 size_t consumed = frame.stream_frame->data_length; 963 size_t consumed = frame.stream_frame->data_length;
961 EXPECT_EQ(payload_length, consumed); 964 EXPECT_EQ(payload_length, consumed);
962 const string payload(payload_length, 'a'); 965 const string payload(payload_length, 'a');
963 CheckStreamFrame(frame, 1u, payload, 0u, false); 966 CheckStreamFrame(frame, 1u, payload, 0u, false);
964 creator_.Flush(); 967 creator_.Flush();
965 DeleteSerializedPacket(); 968 DeleteSerializedPacket();
966 } 969 }
967 970
968 TEST_P(QuicPacketCreatorTest, AddFrameAndFlush) { 971 TEST_P(QuicPacketCreatorTest, AddFrameAndFlush) {
(...skipping 11 matching lines...) Expand all
980 !kIncludeDiversificationNonce, PACKET_1BYTE_PACKET_NUMBER), 983 !kIncludeDiversificationNonce, PACKET_1BYTE_PACKET_NUMBER),
981 creator_.BytesFree()); 984 creator_.BytesFree());
982 985
983 // Add a variety of frame types and then a padding frame. 986 // Add a variety of frame types and then a padding frame.
984 QuicAckFrame ack_frame(MakeAckFrame(0u)); 987 QuicAckFrame ack_frame(MakeAckFrame(0u));
985 EXPECT_TRUE(creator_.AddSavedFrame(QuicFrame(&ack_frame))); 988 EXPECT_TRUE(creator_.AddSavedFrame(QuicFrame(&ack_frame)));
986 EXPECT_TRUE(creator_.HasPendingFrames()); 989 EXPECT_TRUE(creator_.HasPendingFrames());
987 990
988 QuicFrame frame; 991 QuicFrame frame;
989 QuicIOVector io_vector(MakeIOVector("test")); 992 QuicIOVector io_vector(MakeIOVector("test"));
990 ASSERT_TRUE( 993 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, false,
991 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 994 false, &frame));
992 ASSERT_TRUE(frame.stream_frame); 995 ASSERT_TRUE(frame.stream_frame);
993 size_t consumed = frame.stream_frame->data_length; 996 size_t consumed = frame.stream_frame->data_length;
994 EXPECT_EQ(4u, consumed); 997 EXPECT_EQ(4u, consumed);
995 EXPECT_TRUE(creator_.HasPendingFrames()); 998 EXPECT_TRUE(creator_.HasPendingFrames());
996 999
997 QuicPaddingFrame padding_frame; 1000 QuicPaddingFrame padding_frame;
998 EXPECT_TRUE(creator_.AddSavedFrame(QuicFrame(padding_frame))); 1001 EXPECT_TRUE(creator_.AddSavedFrame(QuicFrame(padding_frame)));
999 EXPECT_TRUE(creator_.HasPendingFrames()); 1002 EXPECT_TRUE(creator_.HasPendingFrames());
1000 EXPECT_EQ(0u, creator_.BytesFree()); 1003 EXPECT_EQ(0u, creator_.BytesFree());
1001 1004
(...skipping 23 matching lines...) Expand all
1025 1028
1026 TEST_P(QuicPacketCreatorTest, SerializeAndSendStreamFrame) { 1029 TEST_P(QuicPacketCreatorTest, SerializeAndSendStreamFrame) {
1027 if (!GetParam().version_serialization) { 1030 if (!GetParam().version_serialization) {
1028 creator_.StopSendingVersion(); 1031 creator_.StopSendingVersion();
1029 } 1032 }
1030 EXPECT_FALSE(creator_.HasPendingFrames()); 1033 EXPECT_FALSE(creator_.HasPendingFrames());
1031 1034
1032 QuicIOVector iov(MakeIOVector("test")); 1035 QuicIOVector iov(MakeIOVector("test"));
1033 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 1036 EXPECT_CALL(delegate_, OnSerializedPacket(_))
1034 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 1037 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
1035 ALIGNAS(64) char encrypted_buffer[kMaxPacketSize];
1036 size_t num_bytes_consumed; 1038 size_t num_bytes_consumed;
1037 creator_.CreateAndSerializeStreamFrame(kHeadersStreamId, iov, 0, 0, true, 1039 creator_.CreateAndSerializeStreamFrame(kHeadersStreamId, iov, 0, 0, true,
1038 nullptr, encrypted_buffer, 1040 nullptr, &num_bytes_consumed);
1039 kMaxPacketSize, &num_bytes_consumed);
1040 EXPECT_EQ(static_cast<size_t>(4), num_bytes_consumed); 1041 EXPECT_EQ(static_cast<size_t>(4), num_bytes_consumed);
1041 1042
1042 // Ensure the packet is successfully created. 1043 // Ensure the packet is successfully created.
1043 ASSERT_TRUE(serialized_packet_.encrypted_buffer); 1044 ASSERT_TRUE(serialized_packet_.encrypted_buffer);
1044 ASSERT_FALSE(serialized_packet_.retransmittable_frames.empty()); 1045 ASSERT_FALSE(serialized_packet_.retransmittable_frames.empty());
1045 const QuicFrames& retransmittable = serialized_packet_.retransmittable_frames; 1046 const QuicFrames& retransmittable = serialized_packet_.retransmittable_frames;
1046 ASSERT_EQ(1u, retransmittable.size()); 1047 ASSERT_EQ(1u, retransmittable.size());
1047 EXPECT_EQ(STREAM_FRAME, retransmittable[0].type); 1048 EXPECT_EQ(STREAM_FRAME, retransmittable[0].type);
1048 ASSERT_TRUE(retransmittable[0].stream_frame); 1049 ASSERT_TRUE(retransmittable[0].stream_frame);
1049 DeleteSerializedPacket(); 1050 DeleteSerializedPacket();
1050 1051
1051 EXPECT_FALSE(creator_.HasPendingFrames()); 1052 EXPECT_FALSE(creator_.HasPendingFrames());
1052 } 1053 }
1053 1054
1054 TEST_P(QuicPacketCreatorTest, SerializeTruncatedAckFrameWithLargePacketSize) { 1055 TEST_P(QuicPacketCreatorTest, SerializeTruncatedAckFrameWithLargePacketSize) {
1056 creator_.set_encryption_level(ENCRYPTION_FORWARD_SECURE);
1055 if (!GetParam().version_serialization) { 1057 if (!GetParam().version_serialization) {
1056 creator_.StopSendingVersion(); 1058 creator_.StopSendingVersion();
1057 } 1059 }
1058 creator_.SetMaxPacketLength(kMaxPacketSize); 1060 creator_.SetMaxPacketLength(kMaxPacketSize);
1059 1061
1060 // Serialized length of ack frame with 2000 nack ranges should be limited by 1062 // Serialized length of ack frame with 2000 nack ranges should be limited by
1061 // the number of nack ranges that can be fit in an ack frame. 1063 // the number of nack ranges that can be fit in an ack frame.
1062 QuicAckFrame ack_frame = MakeAckFrameWithNackRanges(2000u, 0u); 1064 QuicAckFrame ack_frame = MakeAckFrameWithNackRanges(2000u, 0u);
1063 size_t frame_len = client_framer_.GetSerializedFrameLength( 1065 size_t frame_len = client_framer_.GetSerializedFrameLength(
1064 QuicFrame(&ack_frame), creator_.BytesFree(), true, true, 1066 QuicFrame(&ack_frame), creator_.BytesFree(), true, true,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 1134 EXPECT_CALL(delegate_, OnSerializedPacket(_))
1133 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 1135 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
1134 creator_.Flush(); 1136 creator_.Flush();
1135 ASSERT_TRUE(serialized_packet_.encrypted_buffer); 1137 ASSERT_TRUE(serialized_packet_.encrypted_buffer);
1136 EXPECT_GE(est_packet_size, client_framer_.GetMaxPlaintextSize( 1138 EXPECT_GE(est_packet_size, client_framer_.GetMaxPlaintextSize(
1137 serialized_packet_.encrypted_length)); 1139 serialized_packet_.encrypted_length));
1138 DeleteSerializedPacket(); 1140 DeleteSerializedPacket();
1139 } 1141 }
1140 1142
1141 TEST_P(QuicPacketCreatorTest, EntropyFlag) { 1143 TEST_P(QuicPacketCreatorTest, EntropyFlag) {
1142 frames_.push_back( 1144 frames_.push_back(QuicFrame(
1143 QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece()))); 1145 new QuicStreamFrame(kCryptoStreamId, false, 0u, StringPiece())));
1144 1146
1145 for (int i = 0; i < 2; ++i) { 1147 for (int i = 0; i < 2; ++i) {
1146 for (int j = 0; j < 64; ++j) { 1148 for (int j = 0; j < 64; ++j) {
1147 SerializedPacket serialized = SerializeAllFrames(frames_); 1149 SerializedPacket serialized = SerializeAllFrames(frames_);
1148 // Verify both BoolSource and hash algorithm. 1150 // Verify both BoolSource and hash algorithm.
1149 bool expected_rand_bool = 1151 bool expected_rand_bool =
1150 (mock_random_.RandUint64() & (UINT64_C(1) << j)) != 0; 1152 (mock_random_.RandUint64() & (UINT64_C(1) << j)) != 0;
1151 bool observed_rand_bool = 1153 bool observed_rand_bool =
1152 (serialized.entropy_hash & (1 << ((j + 1) % 8))) != 0; 1154 (serialized.entropy_hash & (1 << ((j + 1) % 8))) != 0;
1153 uint8_t rest_of_hash = serialized.entropy_hash & ~(1 << ((j + 1) % 8)); 1155 uint8_t rest_of_hash = serialized.entropy_hash & ~(1 << ((j + 1) % 8));
1154 EXPECT_EQ(expected_rand_bool, observed_rand_bool); 1156 EXPECT_EQ(expected_rand_bool, observed_rand_bool);
1155 EXPECT_EQ(0, rest_of_hash); 1157 EXPECT_EQ(0, rest_of_hash);
1156 } 1158 }
1157 // After 64 calls, BoolSource will refresh the bucket - make sure it does. 1159 // After 64 calls, BoolSource will refresh the bucket - make sure it does.
1158 mock_random_.ChangeValue(); 1160 mock_random_.ChangeValue();
1159 } 1161 }
1160 1162
1161 delete frames_[0].stream_frame; 1163 delete frames_[0].stream_frame;
1162 } 1164 }
1163 1165
1164 TEST_P(QuicPacketCreatorTest, SetCurrentPath) { 1166 TEST_P(QuicPacketCreatorTest, SetCurrentPath) {
1165 // Current path is the default path. 1167 // Current path is the default path.
1166 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1168 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1167 EXPECT_EQ(0u, creator_.packet_number()); 1169 EXPECT_EQ(0u, creator_.packet_number());
1168 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1170 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1169 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 1171 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
1170 // Add a stream frame to the creator. 1172 // Add a stream frame to the creator.
1171 QuicFrame frame; 1173 QuicFrame frame;
1172 QuicIOVector io_vector(MakeIOVector("test")); 1174 QuicIOVector io_vector(MakeIOVector("test"));
1173 ASSERT_TRUE( 1175 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, false,
1174 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1176 false, &frame));
1175 ASSERT_TRUE(frame.stream_frame); 1177 ASSERT_TRUE(frame.stream_frame);
1176 size_t consumed = frame.stream_frame->data_length; 1178 size_t consumed = frame.stream_frame->data_length;
1177 EXPECT_EQ(4u, consumed); 1179 EXPECT_EQ(4u, consumed);
1178 EXPECT_TRUE(creator_.HasPendingFrames()); 1180 EXPECT_TRUE(creator_.HasPendingFrames());
1179 EXPECT_EQ(0u, creator_.packet_number()); 1181 EXPECT_EQ(0u, creator_.packet_number());
1180 1182
1181 // Change current path. 1183 // Change current path.
1182 QuicPathId kPathId1 = 1; 1184 QuicPathId kPathId1 = 1;
1183 EXPECT_QUIC_BUG(creator_.SetCurrentPath(kPathId1, 1, 0), 1185 EXPECT_QUIC_BUG(creator_.SetCurrentPath(kPathId1, 1, 0),
1184 "Unable to change paths when a packet is under construction"); 1186 "Unable to change paths when a packet is under construction");
(...skipping 10 matching lines...) Expand all
1195 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1197 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1196 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 1198 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
1197 1199
1198 // Change current path back. 1200 // Change current path back.
1199 creator_.SetCurrentPath(kDefaultPathId, 2, 1); 1201 creator_.SetCurrentPath(kDefaultPathId, 2, 1);
1200 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1202 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1201 EXPECT_EQ(1u, creator_.packet_number()); 1203 EXPECT_EQ(1u, creator_.packet_number());
1202 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1204 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1203 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 1205 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
1204 // Add a stream frame to the creator. 1206 // Add a stream frame to the creator.
1205 ASSERT_TRUE( 1207 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, false,
1206 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1208 false, &frame));
1207 ASSERT_TRUE(frame.stream_frame); 1209 ASSERT_TRUE(frame.stream_frame);
1208 consumed = frame.stream_frame->data_length; 1210 consumed = frame.stream_frame->data_length;
1209 EXPECT_EQ(4u, consumed); 1211 EXPECT_EQ(4u, consumed);
1210 EXPECT_TRUE(creator_.HasPendingFrames()); 1212 EXPECT_TRUE(creator_.HasPendingFrames());
1211 1213
1212 // Does not change current path. 1214 // Does not change current path.
1213 creator_.SetCurrentPath(kDefaultPathId, 2, 0); 1215 creator_.SetCurrentPath(kDefaultPathId, 2, 0);
1214 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1216 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1215 EXPECT_TRUE(creator_.HasPendingFrames()); 1217 EXPECT_TRUE(creator_.HasPendingFrames());
1216 EXPECT_EQ(1u, creator_.packet_number()); 1218 EXPECT_EQ(1u, creator_.packet_number());
1217 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1219 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1218 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 1220 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
1219 } 1221 }
1220 1222
1221 TEST_P(QuicPacketCreatorTest, 1223 TEST_P(QuicPacketCreatorTest,
1222 SetCurrentPathAndUpdatePacketSequenceNumberLength) { 1224 SetCurrentPathAndUpdatePacketSequenceNumberLength) {
1223 FLAGS_quic_simple_packet_number_length_2 = false; 1225 FLAGS_quic_simple_packet_number_length_2 = false;
1224 // Current path is the default path. 1226 // Current path is the default path.
1225 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1227 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1226 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1228 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1227 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 1229 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
1228 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1230 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1229 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 1231 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
1230 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 - 2); 1232 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 - 2);
1231 // Add a stream frame to the creator and send the packet. 1233 // Add a stream frame to the creator and send the packet.
1232 QuicFrame frame; 1234 QuicFrame frame;
1233 QuicIOVector io_vector(MakeIOVector("test")); 1235 QuicIOVector io_vector(MakeIOVector("test"));
1234 ASSERT_TRUE( 1236 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, false,
1235 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1237 false, &frame));
1236 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 1238 EXPECT_CALL(delegate_, OnSerializedPacket(_))
1237 .Times(1) 1239 .Times(1)
1238 .WillRepeatedly( 1240 .WillRepeatedly(
1239 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); 1241 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket));
1240 creator_.Flush(); 1242 creator_.Flush();
1241 EXPECT_EQ(UINT64_C(64 * 256 - 1), creator_.packet_number()); 1243 EXPECT_EQ(UINT64_C(64 * 256 - 1), creator_.packet_number());
1242 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize); 1244 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
1243 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, 1245 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER,
1244 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 1246 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
1245 1247
(...skipping 11 matching lines...) Expand all
1257 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 1259 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
1258 } 1260 }
1259 1261
1260 TEST_P(QuicPacketCreatorTest, SerializePacketOnDifferentPath) { 1262 TEST_P(QuicPacketCreatorTest, SerializePacketOnDifferentPath) {
1261 // Current path is the default path. 1263 // Current path is the default path.
1262 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1264 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1263 EXPECT_EQ(0u, creator_.packet_number()); 1265 EXPECT_EQ(0u, creator_.packet_number());
1264 // Add a stream frame to the creator and flush the packet. 1266 // Add a stream frame to the creator and flush the packet.
1265 QuicFrame frame; 1267 QuicFrame frame;
1266 QuicIOVector io_vector(MakeIOVector("test")); 1268 QuicIOVector io_vector(MakeIOVector("test"));
1267 ASSERT_TRUE( 1269 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, false,
1268 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1270 false, &frame));
1269 ASSERT_TRUE(frame.stream_frame); 1271 ASSERT_TRUE(frame.stream_frame);
1270 size_t consumed = frame.stream_frame->data_length; 1272 size_t consumed = frame.stream_frame->data_length;
1271 EXPECT_EQ(4u, consumed); 1273 EXPECT_EQ(4u, consumed);
1272 EXPECT_TRUE(creator_.HasPendingFrames()); 1274 EXPECT_TRUE(creator_.HasPendingFrames());
1273 EXPECT_EQ(0u, creator_.packet_number()); 1275 EXPECT_EQ(0u, creator_.packet_number());
1274 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 1276 EXPECT_CALL(delegate_, OnSerializedPacket(_))
1275 .WillRepeatedly( 1277 .WillRepeatedly(
1276 Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 1278 Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
1277 creator_.Flush(); 1279 creator_.Flush();
1278 EXPECT_FALSE(creator_.HasPendingFrames()); 1280 EXPECT_FALSE(creator_.HasPendingFrames());
1279 EXPECT_EQ(1u, creator_.packet_number()); 1281 EXPECT_EQ(1u, creator_.packet_number());
1280 // Verify serialized data packet's path id. 1282 // Verify serialized data packet's path id.
1281 EXPECT_EQ(kDefaultPathId, serialized_packet_.path_id); 1283 EXPECT_EQ(kDefaultPathId, serialized_packet_.path_id);
1282 DeleteSerializedPacket(); 1284 DeleteSerializedPacket();
1283 1285
1284 // Change to path 1. 1286 // Change to path 1.
1285 QuicPathId kPathId1 = 1; 1287 QuicPathId kPathId1 = 1;
1286 creator_.SetCurrentPath(kPathId1, 1, 0); 1288 creator_.SetCurrentPath(kPathId1, 1, 0);
1287 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1289 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1288 EXPECT_FALSE(creator_.HasPendingFrames()); 1290 EXPECT_FALSE(creator_.HasPendingFrames());
1289 EXPECT_EQ(0u, creator_.packet_number()); 1291 EXPECT_EQ(0u, creator_.packet_number());
1290 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1292 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1291 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 1293 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
1292 1294
1293 // Add a stream frame to the creator and flush the packet. 1295 // Add a stream frame to the creator and flush the packet.
1294 ASSERT_TRUE( 1296 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, 0u, false,
1295 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1297 false, &frame));
1296 ASSERT_TRUE(frame.stream_frame); 1298 ASSERT_TRUE(frame.stream_frame);
1297 consumed = frame.stream_frame->data_length; 1299 consumed = frame.stream_frame->data_length;
1298 EXPECT_EQ(4u, consumed); 1300 EXPECT_EQ(4u, consumed);
1299 EXPECT_TRUE(creator_.HasPendingFrames()); 1301 EXPECT_TRUE(creator_.HasPendingFrames());
1300 creator_.Flush(); 1302 creator_.Flush();
1301 // Verify serialized data packet's path id. 1303 // Verify serialized data packet's path id.
1302 EXPECT_EQ(kPathId1, serialized_packet_.path_id); 1304 EXPECT_EQ(kPathId1, serialized_packet_.path_id);
1303 DeleteSerializedPacket(); 1305 DeleteSerializedPacket();
1304 } 1306 }
1305 1307
1306 TEST_P(QuicPacketCreatorTest, AddUnencryptedStreamDataClosesConnection) { 1308 TEST_P(QuicPacketCreatorTest, AddUnencryptedStreamDataClosesConnection) {
1307 FLAGS_quic_never_write_unencrypted_data = true; 1309 creator_.set_encryption_level(ENCRYPTION_NONE);
1308 EXPECT_CALL(delegate_, OnUnrecoverableError(_, _, _)); 1310 EXPECT_CALL(delegate_, OnUnrecoverableError(_, _, _));
1309 QuicStreamFrame stream_frame(kHeadersStreamId, /*fin=*/false, 0u, 1311 QuicStreamFrame stream_frame(kHeadersStreamId, /*fin=*/false, 0u,
1310 StringPiece()); 1312 StringPiece());
1311 EXPECT_QUIC_BUG(creator_.AddSavedFrame(QuicFrame(&stream_frame)), 1313 EXPECT_QUIC_BUG(creator_.AddSavedFrame(QuicFrame(&stream_frame)),
1312 "Cannot send stream data without encryption."); 1314 "Cannot send stream data without encryption.");
1313 } 1315 }
1314 1316
1315 TEST_P(QuicPacketCreatorTest, ChloTooLarge) { 1317 TEST_P(QuicPacketCreatorTest, ChloTooLarge) {
1316 CryptoHandshakeMessage message; 1318 CryptoHandshakeMessage message;
1317 message.set_tag(kCHLO); 1319 message.set_tag(kCHLO);
1318 message.set_minimum_size(kMaxPacketSize); 1320 message.set_minimum_size(kMaxPacketSize);
1319 CryptoFramer framer; 1321 CryptoFramer framer;
1320 std::unique_ptr<QuicData> message_data; 1322 std::unique_ptr<QuicData> message_data;
1321 message_data.reset(framer.ConstructHandshakeMessage(message)); 1323 message_data.reset(framer.ConstructHandshakeMessage(message));
1322 1324
1323 struct iovec iov; 1325 struct iovec iov;
1324 QuicIOVector data_iovec(::net::MakeIOVector( 1326 QuicIOVector data_iovec(::net::MakeIOVector(
1325 StringPiece(message_data->data(), message_data->length()), &iov)); 1327 StringPiece(message_data->data(), message_data->length()), &iov));
1326 QuicFrame frame; 1328 QuicFrame frame;
1327 EXPECT_CALL(delegate_, 1329 EXPECT_CALL(delegate_,
1328 OnUnrecoverableError(QUIC_CRYPTO_CHLO_TOO_LARGE, _, _)); 1330 OnUnrecoverableError(QUIC_CRYPTO_CHLO_TOO_LARGE, _, _));
1329 EXPECT_QUIC_BUG( 1331 EXPECT_QUIC_BUG(creator_.ConsumeData(kCryptoStreamId, data_iovec, 0u, 0u,
1330 creator_.ConsumeData(1u, data_iovec, 0u, 0u, false, false, &frame), 1332 false, false, &frame),
1331 "Client hello won't fit in a single packet."); 1333 "Client hello won't fit in a single packet.");
1332 } 1334 }
1333 1335
1334 } // namespace 1336 } // namespace
1335 } // namespace test 1337 } // namespace test
1336 } // namespace net 1338 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_packet_creator.cc ('k') | net/quic/core/quic_packet_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698