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

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

Issue 1979763002: Landing Recent QUIC changes until Sun May 8 00:39:29 2016 +0000 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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_packet_creator.cc ('k') | net/quic/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/quic_packet_creator.h" 5 #include "net/quic/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 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 } 163 }
164 164
165 void CheckStreamFrame(const QuicFrame& frame, 165 void CheckStreamFrame(const QuicFrame& frame,
166 QuicStreamId stream_id, 166 QuicStreamId stream_id,
167 const string& data, 167 const string& data,
168 QuicStreamOffset offset, 168 QuicStreamOffset offset,
169 bool fin) { 169 bool fin) {
170 EXPECT_EQ(STREAM_FRAME, frame.type); 170 EXPECT_EQ(STREAM_FRAME, frame.type);
171 ASSERT_TRUE(frame.stream_frame); 171 ASSERT_TRUE(frame.stream_frame);
172 EXPECT_EQ(stream_id, frame.stream_frame->stream_id); 172 EXPECT_EQ(stream_id, frame.stream_frame->stream_id);
173 EXPECT_EQ(data, StringPiece(frame.stream_frame->frame_buffer, 173 EXPECT_EQ(data, StringPiece(frame.stream_frame->data_buffer,
174 frame.stream_frame->frame_length)); 174 frame.stream_frame->data_length));
175 EXPECT_EQ(offset, frame.stream_frame->offset); 175 EXPECT_EQ(offset, frame.stream_frame->offset);
176 EXPECT_EQ(fin, frame.stream_frame->fin); 176 EXPECT_EQ(fin, frame.stream_frame->fin);
177 } 177 }
178 178
179 // Returns the number of bytes consumed by the header of packet, including 179 // Returns the number of bytes consumed by the header of packet, including
180 // the version. 180 // the version.
181 size_t GetPacketHeaderOverhead(QuicVersion version) { 181 size_t GetPacketHeaderOverhead(QuicVersion version) {
182 return GetPacketHeaderSize( 182 return GetPacketHeaderSize(
183 version, creator_.connection_id_length(), kIncludeVersion, 183 version, creator_.connection_id_length(), kIncludeVersion,
184 !kIncludePathId, !kIncludeDiversificationNonce, 184 !kIncludePathId, !kIncludeDiversificationNonce,
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 599
600 ProcessPacket(serialized); 600 ProcessPacket(serialized);
601 } 601 }
602 602
603 TEST_P(QuicPacketCreatorTest, ConsumeData) { 603 TEST_P(QuicPacketCreatorTest, ConsumeData) {
604 QuicFrame frame; 604 QuicFrame frame;
605 QuicIOVector io_vector(MakeIOVector("test")); 605 QuicIOVector io_vector(MakeIOVector("test"));
606 ASSERT_TRUE( 606 ASSERT_TRUE(
607 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 607 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
608 ASSERT_TRUE(frame.stream_frame); 608 ASSERT_TRUE(frame.stream_frame);
609 size_t consumed = frame.stream_frame->frame_length; 609 size_t consumed = frame.stream_frame->data_length;
610 EXPECT_EQ(4u, consumed); 610 EXPECT_EQ(4u, consumed);
611 CheckStreamFrame(frame, 1u, "test", 0u, false); 611 CheckStreamFrame(frame, 1u, "test", 0u, false);
612 EXPECT_TRUE(creator_.HasPendingFrames()); 612 EXPECT_TRUE(creator_.HasPendingFrames());
613 } 613 }
614 614
615 TEST_P(QuicPacketCreatorTest, ConsumeDataFin) { 615 TEST_P(QuicPacketCreatorTest, ConsumeDataFin) {
616 QuicFrame frame; 616 QuicFrame frame;
617 QuicIOVector io_vector(MakeIOVector("test")); 617 QuicIOVector io_vector(MakeIOVector("test"));
618 ASSERT_TRUE( 618 ASSERT_TRUE(
619 creator_.ConsumeData(1u, io_vector, 0u, 10u, true, false, &frame)); 619 creator_.ConsumeData(1u, io_vector, 0u, 10u, true, false, &frame));
620 ASSERT_TRUE(frame.stream_frame); 620 ASSERT_TRUE(frame.stream_frame);
621 size_t consumed = frame.stream_frame->frame_length; 621 size_t consumed = frame.stream_frame->data_length;
622 EXPECT_EQ(4u, consumed); 622 EXPECT_EQ(4u, consumed);
623 CheckStreamFrame(frame, 1u, "test", 10u, true); 623 CheckStreamFrame(frame, 1u, "test", 10u, true);
624 EXPECT_TRUE(creator_.HasPendingFrames()); 624 EXPECT_TRUE(creator_.HasPendingFrames());
625 } 625 }
626 626
627 TEST_P(QuicPacketCreatorTest, ConsumeDataFinOnly) { 627 TEST_P(QuicPacketCreatorTest, ConsumeDataFinOnly) {
628 QuicFrame frame; 628 QuicFrame frame;
629 QuicIOVector io_vector(nullptr, 0, 0); 629 QuicIOVector io_vector(nullptr, 0, 0);
630 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, true, false, &frame)); 630 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, true, false, &frame));
631 ASSERT_TRUE(frame.stream_frame); 631 ASSERT_TRUE(frame.stream_frame);
632 size_t consumed = frame.stream_frame->frame_length; 632 size_t consumed = frame.stream_frame->data_length;
633 EXPECT_EQ(0u, consumed); 633 EXPECT_EQ(0u, consumed);
634 CheckStreamFrame(frame, 1u, string(), 0u, true); 634 CheckStreamFrame(frame, 1u, string(), 0u, true);
635 EXPECT_TRUE(creator_.HasPendingFrames()); 635 EXPECT_TRUE(creator_.HasPendingFrames());
636 } 636 }
637 637
638 TEST_P(QuicPacketCreatorTest, CreateAllFreeBytesForStreamFrames) { 638 TEST_P(QuicPacketCreatorTest, CreateAllFreeBytesForStreamFrames) {
639 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) + 639 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) +
640 GetEncryptionOverhead(); 640 GetEncryptionOverhead();
641 for (size_t i = overhead; i < overhead + 100; ++i) { 641 for (size_t i = overhead; i < overhead + 100; ++i) {
642 creator_.SetMaxPacketLength(i); 642 creator_.SetMaxPacketLength(i);
643 const bool should_have_room = i > overhead + GetStreamFrameOverhead(); 643 const bool should_have_room = i > overhead + GetStreamFrameOverhead();
644 ASSERT_EQ(should_have_room, 644 ASSERT_EQ(should_have_room,
645 creator_.HasRoomForStreamFrame(kClientDataStreamId1, kOffset)); 645 creator_.HasRoomForStreamFrame(kClientDataStreamId1, kOffset));
646 if (should_have_room) { 646 if (should_have_room) {
647 QuicFrame frame; 647 QuicFrame frame;
648 QuicIOVector io_vector(MakeIOVector("testdata")); 648 QuicIOVector io_vector(MakeIOVector("testdata"));
649 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 649 EXPECT_CALL(delegate_, OnSerializedPacket(_))
650 .WillRepeatedly( 650 .WillRepeatedly(
651 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket)); 651 Invoke(this, &QuicPacketCreatorTest::ClearSerializedPacket));
652 ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u, 652 ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u,
653 kOffset, false, false, &frame)); 653 kOffset, false, false, &frame));
654 ASSERT_TRUE(frame.stream_frame); 654 ASSERT_TRUE(frame.stream_frame);
655 size_t bytes_consumed = frame.stream_frame->frame_length; 655 size_t bytes_consumed = frame.stream_frame->data_length;
656 EXPECT_LT(0u, bytes_consumed); 656 EXPECT_LT(0u, bytes_consumed);
657 creator_.Flush(); 657 creator_.Flush();
658 } 658 }
659 } 659 }
660 } 660 }
661 661
662 TEST_P(QuicPacketCreatorTest, StreamFrameConsumption) { 662 TEST_P(QuicPacketCreatorTest, StreamFrameConsumption) {
663 // Compute the total overhead for a single frame in packet. 663 // Compute the total overhead for a single frame in packet.
664 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) + 664 const size_t overhead = GetPacketHeaderOverhead(client_framer_.version()) +
665 GetEncryptionOverhead() + GetStreamFrameOverhead(); 665 GetEncryptionOverhead() + GetStreamFrameOverhead();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 size_t bytes_free = delta > 0 ? 0 : 0 - delta; 699 size_t bytes_free = delta > 0 ? 0 : 0 - delta;
700 700
701 QuicFrame frame; 701 QuicFrame frame;
702 QuicIOVector io_vector(MakeIOVector(data)); 702 QuicIOVector io_vector(MakeIOVector(data));
703 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 703 EXPECT_CALL(delegate_, OnSerializedPacket(_))
704 .WillRepeatedly( 704 .WillRepeatedly(
705 Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 705 Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
706 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, kOffset, 706 ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, kOffset,
707 false, true, &frame)); 707 false, true, &frame));
708 ASSERT_TRUE(frame.stream_frame); 708 ASSERT_TRUE(frame.stream_frame);
709 size_t bytes_consumed = frame.stream_frame->frame_length; 709 size_t bytes_consumed = frame.stream_frame->data_length;
710 EXPECT_LT(0u, bytes_consumed); 710 EXPECT_LT(0u, bytes_consumed);
711 creator_.Flush(); 711 creator_.Flush();
712 ASSERT_TRUE(serialized_packet_.encrypted_buffer); 712 ASSERT_TRUE(serialized_packet_.encrypted_buffer);
713 // If there is not enough space in the packet to fit a padding frame 713 // If there is not enough space in the packet to fit a padding frame
714 // (1 byte) and to expand the stream frame (another 2 bytes) the packet 714 // (1 byte) and to expand the stream frame (another 2 bytes) the packet
715 // will not be padded. 715 // will not be padded.
716 if (bytes_free < 3) { 716 if (bytes_free < 3) {
717 EXPECT_EQ(kDefaultMaxPacketSize - bytes_free, 717 EXPECT_EQ(kDefaultMaxPacketSize - bytes_free,
718 serialized_packet_.encrypted_length); 718 serialized_packet_.encrypted_length);
719 } else { 719 } else {
(...skipping 14 matching lines...) Expand all
734 string data(capacity + delta, 'A'); 734 string data(capacity + delta, 'A');
735 size_t bytes_free = delta > 0 ? 0 : 0 - delta; 735 size_t bytes_free = delta > 0 ? 0 : 0 - delta;
736 736
737 QuicFrame frame; 737 QuicFrame frame;
738 QuicIOVector io_vector(MakeIOVector(data)); 738 QuicIOVector io_vector(MakeIOVector(data));
739 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 739 EXPECT_CALL(delegate_, OnSerializedPacket(_))
740 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 740 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
741 ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u, 741 ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u,
742 kOffset, false, false, &frame)); 742 kOffset, false, false, &frame));
743 ASSERT_TRUE(frame.stream_frame); 743 ASSERT_TRUE(frame.stream_frame);
744 size_t bytes_consumed = frame.stream_frame->frame_length; 744 size_t bytes_consumed = frame.stream_frame->data_length;
745 EXPECT_LT(0u, bytes_consumed); 745 EXPECT_LT(0u, bytes_consumed);
746 creator_.Flush(); 746 creator_.Flush();
747 ASSERT_TRUE(serialized_packet_.encrypted_buffer); 747 ASSERT_TRUE(serialized_packet_.encrypted_buffer);
748 if (bytes_free > 0) { 748 if (bytes_free > 0) {
749 EXPECT_EQ(kDefaultMaxPacketSize - bytes_free, 749 EXPECT_EQ(kDefaultMaxPacketSize - bytes_free,
750 serialized_packet_.encrypted_length); 750 serialized_packet_.encrypted_length);
751 } else { 751 } else {
752 EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.encrypted_length); 752 EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.encrypted_length);
753 } 753 }
754 DeleteSerializedPacket(); 754 DeleteSerializedPacket();
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 QuicPacketCreatorPeer::SendPathIdInPacket(&creator_), 859 QuicPacketCreatorPeer::SendPathIdInPacket(&creator_),
860 !kIncludeDiversificationNonce, creator_.connection_id_length(), 860 !kIncludeDiversificationNonce, creator_.connection_id_length(),
861 PACKET_1BYTE_PACKET_NUMBER, &payload_length)); 861 PACKET_1BYTE_PACKET_NUMBER, &payload_length));
862 QuicFrame frame; 862 QuicFrame frame;
863 const string too_long_payload(payload_length * 2, 'a'); 863 const string too_long_payload(payload_length * 2, 'a');
864 QuicIOVector io_vector(MakeIOVector(too_long_payload)); 864 QuicIOVector io_vector(MakeIOVector(too_long_payload));
865 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 865 EXPECT_CALL(delegate_, OnSerializedPacket(_))
866 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 866 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
867 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, true, false, &frame)); 867 ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, true, false, &frame));
868 ASSERT_TRUE(frame.stream_frame); 868 ASSERT_TRUE(frame.stream_frame);
869 size_t consumed = frame.stream_frame->frame_length; 869 size_t consumed = frame.stream_frame->data_length;
870 EXPECT_EQ(payload_length, consumed); 870 EXPECT_EQ(payload_length, consumed);
871 const string payload(payload_length, 'a'); 871 const string payload(payload_length, 'a');
872 CheckStreamFrame(frame, 1u, payload, 0u, false); 872 CheckStreamFrame(frame, 1u, payload, 0u, false);
873 creator_.Flush(); 873 creator_.Flush();
874 DeleteSerializedPacket(); 874 DeleteSerializedPacket();
875 } 875 }
876 876
877 TEST_P(QuicPacketCreatorTest, AddFrameAndFlush) { 877 TEST_P(QuicPacketCreatorTest, AddFrameAndFlush) {
878 if (!GetParam().version_serialization) { 878 if (!GetParam().version_serialization) {
879 creator_.StopSendingVersion(); 879 creator_.StopSendingVersion();
(...skipping 12 matching lines...) Expand all
892 // Add a variety of frame types and then a padding frame. 892 // Add a variety of frame types and then a padding frame.
893 QuicAckFrame ack_frame(MakeAckFrame(0u)); 893 QuicAckFrame ack_frame(MakeAckFrame(0u));
894 EXPECT_TRUE(creator_.AddSavedFrame(QuicFrame(&ack_frame))); 894 EXPECT_TRUE(creator_.AddSavedFrame(QuicFrame(&ack_frame)));
895 EXPECT_TRUE(creator_.HasPendingFrames()); 895 EXPECT_TRUE(creator_.HasPendingFrames());
896 896
897 QuicFrame frame; 897 QuicFrame frame;
898 QuicIOVector io_vector(MakeIOVector("test")); 898 QuicIOVector io_vector(MakeIOVector("test"));
899 ASSERT_TRUE( 899 ASSERT_TRUE(
900 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 900 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
901 ASSERT_TRUE(frame.stream_frame); 901 ASSERT_TRUE(frame.stream_frame);
902 size_t consumed = frame.stream_frame->frame_length; 902 size_t consumed = frame.stream_frame->data_length;
903 EXPECT_EQ(4u, consumed); 903 EXPECT_EQ(4u, consumed);
904 EXPECT_TRUE(creator_.HasPendingFrames()); 904 EXPECT_TRUE(creator_.HasPendingFrames());
905 905
906 QuicPaddingFrame padding_frame; 906 QuicPaddingFrame padding_frame;
907 EXPECT_TRUE(creator_.AddSavedFrame(QuicFrame(padding_frame))); 907 EXPECT_TRUE(creator_.AddSavedFrame(QuicFrame(padding_frame)));
908 EXPECT_TRUE(creator_.HasPendingFrames()); 908 EXPECT_TRUE(creator_.HasPendingFrames());
909 EXPECT_EQ(0u, creator_.BytesFree()); 909 EXPECT_EQ(0u, creator_.BytesFree());
910 910
911 // Packet is full. Creator will flush. 911 // Packet is full. Creator will flush.
912 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 912 EXPECT_CALL(delegate_, OnSerializedPacket(_))
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 EXPECT_TRUE(creator_.HasPendingFrames()); 952 EXPECT_TRUE(creator_.HasPendingFrames());
953 EXPECT_GT(creator_.max_packet_length(), creator_.PacketSize()); 953 EXPECT_GT(creator_.max_packet_length(), creator_.PacketSize());
954 EXPECT_LT(0u, creator_.BytesFree()); 954 EXPECT_LT(0u, creator_.BytesFree());
955 955
956 // Make sure that an additional stream frame can be added to the packet. 956 // Make sure that an additional stream frame can be added to the packet.
957 QuicFrame frame; 957 QuicFrame frame;
958 QuicIOVector io_vector(MakeIOVector("test")); 958 QuicIOVector io_vector(MakeIOVector("test"));
959 ASSERT_TRUE( 959 ASSERT_TRUE(
960 creator_.ConsumeData(2u, io_vector, 0u, 0u, false, false, &frame)); 960 creator_.ConsumeData(2u, io_vector, 0u, 0u, false, false, &frame));
961 ASSERT_TRUE(frame.stream_frame); 961 ASSERT_TRUE(frame.stream_frame);
962 size_t consumed = frame.stream_frame->frame_length; 962 size_t consumed = frame.stream_frame->data_length;
963 EXPECT_EQ(4u, consumed); 963 EXPECT_EQ(4u, consumed);
964 EXPECT_TRUE(creator_.HasPendingFrames()); 964 EXPECT_TRUE(creator_.HasPendingFrames());
965 965
966 // Ensure the packet is successfully created, and the packet size estimate 966 // Ensure the packet is successfully created, and the packet size estimate
967 // matches the serialized packet length. 967 // matches the serialized packet length.
968 if (GetParam().version <= QUIC_VERSION_33) { 968 if (GetParam().version <= QUIC_VERSION_33) {
969 EXPECT_CALL(entropy_calculator_, EntropyHash(_)) 969 EXPECT_CALL(entropy_calculator_, EntropyHash(_))
970 .WillOnce(testing::Return(0)); 970 .WillOnce(testing::Return(0));
971 } 971 }
972 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 972 EXPECT_CALL(delegate_, OnSerializedPacket(_))
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1047 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1048 EXPECT_EQ(0u, creator_.packet_number()); 1048 EXPECT_EQ(0u, creator_.packet_number());
1049 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1049 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1050 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 1050 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
1051 // Add a stream frame to the creator. 1051 // Add a stream frame to the creator.
1052 QuicFrame frame; 1052 QuicFrame frame;
1053 QuicIOVector io_vector(MakeIOVector("test")); 1053 QuicIOVector io_vector(MakeIOVector("test"));
1054 ASSERT_TRUE( 1054 ASSERT_TRUE(
1055 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1055 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
1056 ASSERT_TRUE(frame.stream_frame); 1056 ASSERT_TRUE(frame.stream_frame);
1057 size_t consumed = frame.stream_frame->frame_length; 1057 size_t consumed = frame.stream_frame->data_length;
1058 EXPECT_EQ(4u, consumed); 1058 EXPECT_EQ(4u, consumed);
1059 EXPECT_TRUE(creator_.HasPendingFrames()); 1059 EXPECT_TRUE(creator_.HasPendingFrames());
1060 EXPECT_EQ(0u, creator_.packet_number()); 1060 EXPECT_EQ(0u, creator_.packet_number());
1061 1061
1062 // Change current path. 1062 // Change current path.
1063 QuicPathId kPathId1 = 1; 1063 QuicPathId kPathId1 = 1;
1064 EXPECT_DFATAL(creator_.SetCurrentPath(kPathId1, 1, 0), 1064 EXPECT_DFATAL(creator_.SetCurrentPath(kPathId1, 1, 0),
1065 "Unable to change paths when a packet is under construction"); 1065 "Unable to change paths when a packet is under construction");
1066 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 1066 EXPECT_CALL(delegate_, OnSerializedPacket(_))
1067 .Times(1) 1067 .Times(1)
(...skipping 11 matching lines...) Expand all
1079 // Change current path back. 1079 // Change current path back.
1080 creator_.SetCurrentPath(kDefaultPathId, 2, 1); 1080 creator_.SetCurrentPath(kDefaultPathId, 2, 1);
1081 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1081 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1082 EXPECT_EQ(1u, creator_.packet_number()); 1082 EXPECT_EQ(1u, creator_.packet_number());
1083 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1083 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1084 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 1084 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
1085 // Add a stream frame to the creator. 1085 // Add a stream frame to the creator.
1086 ASSERT_TRUE( 1086 ASSERT_TRUE(
1087 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1087 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
1088 ASSERT_TRUE(frame.stream_frame); 1088 ASSERT_TRUE(frame.stream_frame);
1089 consumed = frame.stream_frame->frame_length; 1089 consumed = frame.stream_frame->data_length;
1090 EXPECT_EQ(4u, consumed); 1090 EXPECT_EQ(4u, consumed);
1091 EXPECT_TRUE(creator_.HasPendingFrames()); 1091 EXPECT_TRUE(creator_.HasPendingFrames());
1092 1092
1093 // Does not change current path. 1093 // Does not change current path.
1094 creator_.SetCurrentPath(kDefaultPathId, 2, 0); 1094 creator_.SetCurrentPath(kDefaultPathId, 2, 0);
1095 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1095 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1096 EXPECT_TRUE(creator_.HasPendingFrames()); 1096 EXPECT_TRUE(creator_.HasPendingFrames());
1097 EXPECT_EQ(1u, creator_.packet_number()); 1097 EXPECT_EQ(1u, creator_.packet_number());
1098 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1098 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1099 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 1099 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 TEST_P(QuicPacketCreatorTest, SerializePacketOnDifferentPath) { 1138 TEST_P(QuicPacketCreatorTest, SerializePacketOnDifferentPath) {
1139 // Current path is the default path. 1139 // Current path is the default path.
1140 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1140 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1141 EXPECT_EQ(0u, creator_.packet_number()); 1141 EXPECT_EQ(0u, creator_.packet_number());
1142 // Add a stream frame to the creator and flush the packet. 1142 // Add a stream frame to the creator and flush the packet.
1143 QuicFrame frame; 1143 QuicFrame frame;
1144 QuicIOVector io_vector(MakeIOVector("test")); 1144 QuicIOVector io_vector(MakeIOVector("test"));
1145 ASSERT_TRUE( 1145 ASSERT_TRUE(
1146 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1146 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
1147 ASSERT_TRUE(frame.stream_frame); 1147 ASSERT_TRUE(frame.stream_frame);
1148 size_t consumed = frame.stream_frame->frame_length; 1148 size_t consumed = frame.stream_frame->data_length;
1149 EXPECT_EQ(4u, consumed); 1149 EXPECT_EQ(4u, consumed);
1150 EXPECT_TRUE(creator_.HasPendingFrames()); 1150 EXPECT_TRUE(creator_.HasPendingFrames());
1151 EXPECT_EQ(0u, creator_.packet_number()); 1151 EXPECT_EQ(0u, creator_.packet_number());
1152 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 1152 EXPECT_CALL(delegate_, OnSerializedPacket(_))
1153 .WillRepeatedly( 1153 .WillRepeatedly(
1154 Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 1154 Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
1155 creator_.Flush(); 1155 creator_.Flush();
1156 EXPECT_FALSE(creator_.HasPendingFrames()); 1156 EXPECT_FALSE(creator_.HasPendingFrames());
1157 EXPECT_EQ(1u, creator_.packet_number()); 1157 EXPECT_EQ(1u, creator_.packet_number());
1158 // Verify serialized data packet's path id. 1158 // Verify serialized data packet's path id.
1159 EXPECT_EQ(kDefaultPathId, serialized_packet_.path_id); 1159 EXPECT_EQ(kDefaultPathId, serialized_packet_.path_id);
1160 DeleteSerializedPacket(); 1160 DeleteSerializedPacket();
1161 1161
1162 // Change to path 1. 1162 // Change to path 1.
1163 QuicPathId kPathId1 = 1; 1163 QuicPathId kPathId1 = 1;
1164 creator_.SetCurrentPath(kPathId1, 1, 0); 1164 creator_.SetCurrentPath(kPathId1, 1, 0);
1165 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1165 EXPECT_EQ(kPathId1, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1166 EXPECT_FALSE(creator_.HasPendingFrames()); 1166 EXPECT_FALSE(creator_.HasPendingFrames());
1167 EXPECT_EQ(0u, creator_.packet_number()); 1167 EXPECT_EQ(0u, creator_.packet_number());
1168 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1168 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1169 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 1169 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
1170 1170
1171 // Add a stream frame to the creator and flush the packet. 1171 // Add a stream frame to the creator and flush the packet.
1172 ASSERT_TRUE( 1172 ASSERT_TRUE(
1173 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame)); 1173 creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
1174 ASSERT_TRUE(frame.stream_frame); 1174 ASSERT_TRUE(frame.stream_frame);
1175 consumed = frame.stream_frame->frame_length; 1175 consumed = frame.stream_frame->data_length;
1176 EXPECT_EQ(4u, consumed); 1176 EXPECT_EQ(4u, consumed);
1177 EXPECT_TRUE(creator_.HasPendingFrames()); 1177 EXPECT_TRUE(creator_.HasPendingFrames());
1178 creator_.Flush(); 1178 creator_.Flush();
1179 // Verify serialized data packet's path id. 1179 // Verify serialized data packet's path id.
1180 EXPECT_EQ(kPathId1, serialized_packet_.path_id); 1180 EXPECT_EQ(kPathId1, serialized_packet_.path_id);
1181 DeleteSerializedPacket(); 1181 DeleteSerializedPacket();
1182 } 1182 }
1183 1183
1184 TEST_P(QuicPacketCreatorTest, AddUnencryptedStreamDataClosesConnection) { 1184 TEST_P(QuicPacketCreatorTest, AddUnencryptedStreamDataClosesConnection) {
1185 FLAGS_quic_never_write_unencrypted_data = true; 1185 FLAGS_quic_never_write_unencrypted_data = true;
1186 EXPECT_CALL(delegate_, OnUnrecoverableError(_, _, _)); 1186 EXPECT_CALL(delegate_, OnUnrecoverableError(_, _, _));
1187 QuicStreamFrame stream_frame(kHeadersStreamId, /*fin=*/false, 0u, 1187 QuicStreamFrame stream_frame(kHeadersStreamId, /*fin=*/false, 0u,
1188 StringPiece()); 1188 StringPiece());
1189 EXPECT_DFATAL(creator_.AddSavedFrame(QuicFrame(&stream_frame)), 1189 EXPECT_DFATAL(creator_.AddSavedFrame(QuicFrame(&stream_frame)),
1190 "Cannot send stream data without encryption."); 1190 "Cannot send stream data without encryption.");
1191 } 1191 }
1192 1192
1193 } // namespace 1193 } // namespace
1194 } // namespace test 1194 } // namespace test
1195 } // namespace net 1195 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_packet_creator.cc ('k') | net/quic/quic_packet_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698