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

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

Issue 2101623003: Stop using next_packet_sequence_number_length in QuicPacketCreator. No functional change. Protect… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@125703498
Patch Set: Created 4 years, 5 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') | no next file » | 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 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
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->data_buffer, 173 EXPECT_EQ(data, StringPiece(frame.stream_frame->data_buffer,
174 frame.stream_frame->data_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 if (FLAGS_quic_simple_packet_number_length) {
183 version, creator_.connection_id_length(), kIncludeVersion, 183 return GetPacketHeaderSize(
184 !kIncludePathId, !kIncludeDiversificationNonce, 184 version, creator_.connection_id_length(), kIncludeVersion,
185 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 185 !kIncludePathId, !kIncludeDiversificationNonce,
186 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
187 } else {
188 return GetPacketHeaderSize(
189 version, creator_.connection_id_length(), kIncludeVersion,
190 !kIncludePathId, !kIncludeDiversificationNonce,
191 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
192 }
186 } 193 }
187 194
188 // Returns the number of bytes of overhead that will be added to a packet 195 // Returns the number of bytes of overhead that will be added to a packet
189 // of maximum length. 196 // of maximum length.
190 size_t GetEncryptionOverhead() { 197 size_t GetEncryptionOverhead() {
191 return creator_.max_packet_length() - 198 return creator_.max_packet_length() -
192 client_framer_.GetMaxPlaintextSize(creator_.max_packet_length()); 199 client_framer_.GetMaxPlaintextSize(creator_.max_packet_length());
193 } 200 }
194 201
195 // Returns the number of bytes consumed by the non-data fields of a stream 202 // Returns the number of bytes consumed by the non-data fields of a stream
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 EXPECT_CALL(framer_visitor_, OnAckFrame(_)); 273 EXPECT_CALL(framer_visitor_, OnAckFrame(_));
267 EXPECT_CALL(framer_visitor_, OnStreamFrame(_)); 274 EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
268 EXPECT_CALL(framer_visitor_, OnStreamFrame(_)); 275 EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
269 EXPECT_CALL(framer_visitor_, OnPacketComplete()); 276 EXPECT_CALL(framer_visitor_, OnPacketComplete());
270 } 277 }
271 ProcessPacket(serialized); 278 ProcessPacket(serialized);
272 } 279 }
273 } 280 }
274 281
275 TEST_P(QuicPacketCreatorTest, SerializeChangingSequenceNumberLength) { 282 TEST_P(QuicPacketCreatorTest, SerializeChangingSequenceNumberLength) {
283 FLAGS_quic_simple_packet_number_length = false;
276 frames_.push_back(QuicFrame(new QuicAckFrame(MakeAckFrame(0u)))); 284 frames_.push_back(QuicFrame(new QuicAckFrame(MakeAckFrame(0u))));
277 creator_.AddSavedFrame(frames_[0]); 285 creator_.AddSavedFrame(frames_[0]);
278 QuicPacketCreatorPeer::SetNextPacketNumberLength(&creator_, 286 QuicPacketCreatorPeer::SetNextPacketNumberLength(&creator_,
279 PACKET_4BYTE_PACKET_NUMBER); 287 PACKET_4BYTE_PACKET_NUMBER);
280 288
281 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 289 EXPECT_CALL(delegate_, OnSerializedPacket(_))
282 .WillRepeatedly( 290 .WillRepeatedly(
283 Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 291 Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
284 creator_.Flush(); 292 creator_.Flush();
285 // The packet number length will not change mid-packet. 293 // The packet number length will not change mid-packet.
(...skipping 28 matching lines...) Expand all
314 EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_)); 322 EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
315 EXPECT_CALL(framer_visitor_, OnPacketHeader(_)); 323 EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
316 EXPECT_CALL(framer_visitor_, OnAckFrame(_)); 324 EXPECT_CALL(framer_visitor_, OnAckFrame(_));
317 EXPECT_CALL(framer_visitor_, OnPacketComplete()); 325 EXPECT_CALL(framer_visitor_, OnPacketComplete());
318 } 326 }
319 ProcessPacket(serialized_packet_); 327 ProcessPacket(serialized_packet_);
320 DeleteSerializedPacket(); 328 DeleteSerializedPacket();
321 } 329 }
322 330
323 TEST_P(QuicPacketCreatorTest, ChangeSequenceNumberLengthMidPacket) { 331 TEST_P(QuicPacketCreatorTest, ChangeSequenceNumberLengthMidPacket) {
332 FLAGS_quic_simple_packet_number_length = false;
324 // Changing the packet number length with queued frames in the creator 333 // Changing the packet number length with queued frames in the creator
325 // should hold the change until after any currently queued frames are 334 // should hold the change until after any currently queued frames are
326 // serialized. 335 // serialized.
327 336
328 // Packet 1. 337 // Packet 1.
329 // Queue a frame in the creator. 338 // Queue a frame in the creator.
330 EXPECT_FALSE(creator_.HasPendingFrames()); 339 EXPECT_FALSE(creator_.HasPendingFrames());
331 QuicFrame ack_frame = QuicFrame(new QuicAckFrame(MakeAckFrame(0u))); 340 QuicFrame ack_frame = QuicFrame(new QuicAckFrame(MakeAckFrame(0u)));
332 creator_.AddSavedFrame(ack_frame); 341 creator_.AddSavedFrame(ack_frame);
333 342
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 EXPECT_CALL(framer_visitor_, OnPacketComplete()); 404 EXPECT_CALL(framer_visitor_, OnPacketComplete());
396 } 405 }
397 ProcessPacket(serialized_packet_); 406 ProcessPacket(serialized_packet_);
398 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, 407 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER,
399 header.public_header.packet_number_length); 408 header.public_header.packet_number_length);
400 409
401 DeleteSerializedPacket(); 410 DeleteSerializedPacket();
402 delete ack_frame.ack_frame; 411 delete ack_frame.ack_frame;
403 } 412 }
404 413
414 TEST_P(QuicPacketCreatorTest, ChangeSequenceNumberLengthMidPacketDoesNothing) {
415 FLAGS_quic_simple_packet_number_length = true;
416 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
417 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
418 // Changing the packet number length with queued frames in the creator
419 // should do nothing.
420 EXPECT_FALSE(creator_.HasPendingFrames());
421 QuicFrame ack_frame = QuicFrame(new QuicAckFrame(MakeAckFrame(0u)));
422 creator_.AddSavedFrame(ack_frame);
423
424 // Now change packet number length and expect a QUIC_BUG and no change in
425 // packet number length.
426 EXPECT_DFATAL(creator_.UpdatePacketNumberLength(0, 256),
427 "Called UpdatePacketNumberLength with 1 queued_frames.");
428 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
429 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
430 delete ack_frame.ack_frame;
431 }
432
405 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithSequenceNumberLength) { 433 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithSequenceNumberLength) {
406 // If the original packet number length, the current packet number 434 // If the original packet number length, the current packet number
407 // length, and the configured send packet number length are different, the 435 // length, and the configured send packet number length are different, the
408 // retransmit must sent with the original length and the others do not change. 436 // retransmit must sent with the original length and the others do not change.
409 QuicPacketCreatorPeer::SetNextPacketNumberLength(&creator_, 437 if (!FLAGS_quic_simple_packet_number_length) {
410 PACKET_4BYTE_PACKET_NUMBER); 438 QuicPacketCreatorPeer::SetNextPacketNumberLength(
439 &creator_, PACKET_4BYTE_PACKET_NUMBER);
440 }
411 QuicPacketCreatorPeer::SetPacketNumberLength(&creator_, 441 QuicPacketCreatorPeer::SetPacketNumberLength(&creator_,
412 PACKET_2BYTE_PACKET_NUMBER); 442 PACKET_2BYTE_PACKET_NUMBER);
413 QuicStreamFrame* stream_frame = 443 QuicStreamFrame* stream_frame =
414 new QuicStreamFrame(kCryptoStreamId, /*fin=*/false, 0u, StringPiece()); 444 new QuicStreamFrame(kCryptoStreamId, /*fin=*/false, 0u, StringPiece());
415 QuicFrames frames; 445 QuicFrames frames;
416 frames.push_back(QuicFrame(stream_frame)); 446 frames.push_back(QuicFrame(stream_frame));
417 char buffer[kMaxPacketSize]; 447 char buffer[kMaxPacketSize];
418 PendingRetransmission retransmission(CreateRetransmission( 448 PendingRetransmission retransmission(CreateRetransmission(
419 frames, true /* has_crypto_handshake */, -1 /* needs full padding */, 449 frames, true /* has_crypto_handshake */, -1 /* needs full padding */,
420 ENCRYPTION_NONE, PACKET_1BYTE_PACKET_NUMBER)); 450 ENCRYPTION_NONE, PACKET_1BYTE_PACKET_NUMBER));
421 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 451 EXPECT_CALL(delegate_, OnSerializedPacket(_))
422 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 452 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
423 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); 453 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize);
424 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, 454 if (FLAGS_quic_simple_packet_number_length) {
425 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 455 // The packet number length is updated after every packet is sent,
426 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, 456 // so there is no need to restore the old length after sending.
427 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 457 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
458 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
459 } else {
460 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER,
461 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
462 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER,
463 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
464 }
428 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 465 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
429 serialized_packet_.packet_number_length); 466 serialized_packet_.packet_number_length);
430 467
431 { 468 {
432 InSequence s; 469 InSequence s;
433 EXPECT_CALL(framer_visitor_, OnPacket()); 470 EXPECT_CALL(framer_visitor_, OnPacket());
434 EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_)); 471 EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
435 EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_)); 472 EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
436 EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_)); 473 EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
437 EXPECT_CALL(framer_visitor_, OnPacketHeader(_)); 474 EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 543
507 const int kNumPaddingBytes1 = 4; 544 const int kNumPaddingBytes1 = 4;
508 int packet_size = 0; 545 int packet_size = 0;
509 { 546 {
510 QuicFrames frames; 547 QuicFrames frames;
511 frames.push_back(frame); 548 frames.push_back(frame);
512 char buffer[kMaxPacketSize]; 549 char buffer[kMaxPacketSize];
513 PendingRetransmission retransmission(CreateRetransmission( 550 PendingRetransmission retransmission(CreateRetransmission(
514 frames, false /* has_crypto_handshake */, 551 frames, false /* has_crypto_handshake */,
515 kNumPaddingBytes1 /* padding bytes */, ENCRYPTION_NONE, 552 kNumPaddingBytes1 /* padding bytes */, ENCRYPTION_NONE,
516 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_))); 553 FLAGS_quic_simple_packet_number_length
554 ? QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)
555 : QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)));
517 EXPECT_CALL(delegate_, OnSerializedPacket(_)) 556 EXPECT_CALL(delegate_, OnSerializedPacket(_))
518 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); 557 .WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket));
519 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize); 558 creator_.ReserializeAllFrames(retransmission, buffer, kMaxPacketSize);
520 packet_size = serialized_packet_.encrypted_length; 559 packet_size = serialized_packet_.encrypted_length;
521 } 560 }
522 561
523 const int kNumPaddingBytes2 = 44; 562 const int kNumPaddingBytes2 = 44;
524 QuicFrames frames; 563 QuicFrames frames;
525 frames.push_back(frame); 564 frames.push_back(frame);
526 char buffer[kMaxPacketSize]; 565 char buffer[kMaxPacketSize];
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 { 804 {
766 InSequence s; 805 InSequence s;
767 EXPECT_CALL(framer_visitor_, OnPacket()); 806 EXPECT_CALL(framer_visitor_, OnPacket());
768 EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_)); 807 EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
769 EXPECT_CALL(framer_visitor_, OnVersionNegotiationPacket(_)); 808 EXPECT_CALL(framer_visitor_, OnVersionNegotiationPacket(_));
770 } 809 }
771 QuicFramerPeer::SetPerspective(&client_framer_, Perspective::IS_CLIENT); 810 QuicFramerPeer::SetPerspective(&client_framer_, Perspective::IS_CLIENT);
772 client_framer_.ProcessPacket(*encrypted); 811 client_framer_.ProcessPacket(*encrypted);
773 } 812 }
774 813
775 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthLeastAwaiting) { 814 TEST_P(QuicPacketCreatorTest, UpdatePacketNumberLengthLeastAwaiting_Old) {
815 FLAGS_quic_simple_packet_number_length = false;
776 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 816 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
777 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 817 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
778 818
779 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64); 819 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64);
780 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize); 820 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
781 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 821 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
782 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 822 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
783 823
784 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256); 824 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256);
785 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize); 825 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
786 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, 826 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER,
787 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 827 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
788 828
789 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 * 256); 829 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 * 256);
790 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize); 830 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
791 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, 831 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER,
792 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 832 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
793 833
794 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 834 QuicPacketCreatorPeer::SetPacketNumber(&creator_,
795 UINT64_C(64) * 256 * 256 * 256 * 256); 835 UINT64_C(64) * 256 * 256 * 256 * 256);
796 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize); 836 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
797 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER, 837 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER,
798 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 838 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
799 } 839 }
800 840
801 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthBandwidth) { 841 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthBandwidth_old) {
842 FLAGS_quic_simple_packet_number_length = false;
802 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 843 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
803 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 844 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
804 845
805 creator_.UpdatePacketNumberLength(1, 10000 / kDefaultMaxPacketSize); 846 creator_.UpdatePacketNumberLength(1, 10000 / kDefaultMaxPacketSize);
806 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 847 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
807 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 848 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
808 849
809 creator_.UpdatePacketNumberLength(1, 10000 * 256 / kDefaultMaxPacketSize); 850 creator_.UpdatePacketNumberLength(1, 10000 * 256 / kDefaultMaxPacketSize);
810 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER, 851 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER,
811 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 852 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
812 853
813 creator_.UpdatePacketNumberLength(1, 854 creator_.UpdatePacketNumberLength(1,
814 10000 * 256 * 256 / kDefaultMaxPacketSize); 855 10000 * 256 * 256 / kDefaultMaxPacketSize);
815 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, 856 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER,
816 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 857 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
817 858
818 creator_.UpdatePacketNumberLength( 859 creator_.UpdatePacketNumberLength(
819 1, UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize); 860 1, UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize);
820 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER, 861 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER,
821 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 862 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
822 } 863 }
823 864
865 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthLeastAwaiting) {
866 FLAGS_quic_simple_packet_number_length = true;
867 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
868 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
869
870 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64);
871 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
872 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
873 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
874
875 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256);
876 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
877 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER,
878 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
879
880 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 * 256);
881 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
882 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER,
883 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
884
885 QuicPacketCreatorPeer::SetPacketNumber(&creator_,
886 UINT64_C(64) * 256 * 256 * 256 * 256);
887 creator_.UpdatePacketNumberLength(2, 10000 / kDefaultMaxPacketSize);
888 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER,
889 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
890 }
891
892 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthCwnd) {
893 FLAGS_quic_simple_packet_number_length = true;
894 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
895 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
896
897 creator_.UpdatePacketNumberLength(1, 10000 / kDefaultMaxPacketSize);
898 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
899 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
900
901 creator_.UpdatePacketNumberLength(1, 10000 * 256 / kDefaultMaxPacketSize);
902 EXPECT_EQ(PACKET_2BYTE_PACKET_NUMBER,
903 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
904
905 creator_.UpdatePacketNumberLength(1,
906 10000 * 256 * 256 / kDefaultMaxPacketSize);
907 EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER,
908 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
909
910 creator_.UpdatePacketNumberLength(
911 1, UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize);
912 EXPECT_EQ(PACKET_6BYTE_PACKET_NUMBER,
913 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
914 }
915
824 TEST_P(QuicPacketCreatorTest, SerializeFrame) { 916 TEST_P(QuicPacketCreatorTest, SerializeFrame) {
825 if (!GetParam().version_serialization) { 917 if (!GetParam().version_serialization) {
826 creator_.StopSendingVersion(); 918 creator_.StopSendingVersion();
827 } 919 }
828 frames_.push_back( 920 frames_.push_back(
829 QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece()))); 921 QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece())));
830 SerializedPacket serialized = SerializeAllFrames(frames_); 922 SerializedPacket serialized = SerializeAllFrames(frames_);
831 delete frames_[0].stream_frame; 923 delete frames_[0].stream_frame;
832 924
833 QuicPacketHeader header; 925 QuicPacketHeader header;
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 creator_.SetCurrentPath(kDefaultPathId, 2, 0); 1214 creator_.SetCurrentPath(kDefaultPathId, 2, 0);
1123 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1215 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1124 EXPECT_TRUE(creator_.HasPendingFrames()); 1216 EXPECT_TRUE(creator_.HasPendingFrames());
1125 EXPECT_EQ(1u, creator_.packet_number()); 1217 EXPECT_EQ(1u, creator_.packet_number());
1126 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1218 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1127 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 1219 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
1128 } 1220 }
1129 1221
1130 TEST_P(QuicPacketCreatorTest, 1222 TEST_P(QuicPacketCreatorTest,
1131 SetCurrentPathAndUpdatePacketSequenceNumberLength) { 1223 SetCurrentPathAndUpdatePacketSequenceNumberLength) {
1224 FLAGS_quic_simple_packet_number_length = false;
1132 // Current path is the default path. 1225 // Current path is the default path.
1133 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_)); 1226 EXPECT_EQ(kDefaultPathId, QuicPacketCreatorPeer::GetCurrentPath(&creator_));
1134 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1227 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1135 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_)); 1228 QuicPacketCreatorPeer::GetPacketNumberLength(&creator_));
1136 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, 1229 EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER,
1137 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_)); 1230 QuicPacketCreatorPeer::NextPacketNumberLength(&creator_));
1138 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 - 2); 1231 QuicPacketCreatorPeer::SetPacketNumber(&creator_, 64 * 256 - 2);
1139 // Add a stream frame to the creator and send the packet. 1232 // Add a stream frame to the creator and send the packet.
1140 QuicFrame frame; 1233 QuicFrame frame;
1141 QuicIOVector io_vector(MakeIOVector("test")); 1234 QuicIOVector io_vector(MakeIOVector("test"));
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 EXPECT_CALL(delegate_, 1328 EXPECT_CALL(delegate_,
1236 OnUnrecoverableError(QUIC_CRYPTO_CHLO_TOO_LARGE, _, _)); 1329 OnUnrecoverableError(QUIC_CRYPTO_CHLO_TOO_LARGE, _, _));
1237 EXPECT_DFATAL( 1330 EXPECT_DFATAL(
1238 creator_.ConsumeData(1u, data_iovec, 0u, 0u, false, false, &frame), 1331 creator_.ConsumeData(1u, data_iovec, 0u, 0u, false, false, &frame),
1239 "Client hello won't fit in a single packet."); 1332 "Client hello won't fit in a single packet.");
1240 } 1333 }
1241 1334
1242 } // namespace 1335 } // namespace
1243 } // namespace test 1336 } // namespace test
1244 } // namespace net 1337 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_packet_creator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698