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

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

Issue 706203003: Update from https://crrev.com/303153 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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.h » ('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 "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/crypto/null_encrypter.h" 8 #include "net/quic/crypto/null_encrypter.h"
9 #include "net/quic/crypto/quic_decrypter.h" 9 #include "net/quic/crypto/quic_decrypter.h"
10 #include "net/quic/crypto/quic_encrypter.h" 10 #include "net/quic/crypto/quic_encrypter.h"
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_)); 459 EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
460 EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_)); 460 EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
461 EXPECT_CALL(framer_visitor_, OnPacketHeader(_)); 461 EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
462 EXPECT_CALL(framer_visitor_, OnStreamFrame(_)); 462 EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
463 EXPECT_CALL(framer_visitor_, OnPacketComplete()); 463 EXPECT_CALL(framer_visitor_, OnPacketComplete());
464 } 464 }
465 ProcessPacket(serialized.packet); 465 ProcessPacket(serialized.packet);
466 delete serialized.packet; 466 delete serialized.packet;
467 } 467 }
468 468
469 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithPadding) {
470 scoped_ptr<QuicStreamFrame> stream_frame(
471 new QuicStreamFrame(kCryptoStreamId, /*fin=*/ false, /*offset=*/ 0,
472 MakeIOVector("fake handshake message data")));
473 frames_.push_back(QuicFrame(stream_frame.get()));
474 SerializedPacket serialized =
475 creator_.ReserializeAllFrames(frames_,
476 creator_.next_sequence_number_length());
477
478 EXPECT_EQ(client_framer_.GetMaxPlaintextSize(kDefaultMaxPacketSize),
479 serialized.packet->length());
480 delete serialized.packet;
481 }
482
483 TEST_P(QuicPacketCreatorTest, ReserializeFramesWithFullPacketAndPadding) {
484 const size_t overhead = GetPacketHeaderOverhead(NOT_IN_FEC_GROUP)
485 + GetEncryptionOverhead() + GetStreamFrameOverhead(NOT_IN_FEC_GROUP);
486 size_t capacity = kDefaultMaxPacketSize - overhead;
487 for (int delta = -5; delta <= 0; ++delta) {
488 string data(capacity + delta, 'A');
489 size_t bytes_free = 0 - delta;
490
491 scoped_ptr<QuicStreamFrame> stream_frame(
492 new QuicStreamFrame(kCryptoStreamId, /*fin=*/ false, kOffset,
493 MakeIOVector(data)));
494 frames_.push_back(QuicFrame(stream_frame.get()));
495 SerializedPacket serialized =
496 creator_.ReserializeAllFrames(frames_,
497 creator_.next_sequence_number_length());
498
499 // If there is not enough space in the packet to fit a padding frame
500 // (1 byte) and to expand the stream frame (another 2 bytes) the packet
501 // will not be padded.
502 if (bytes_free < 3) {
503 EXPECT_EQ(client_framer_.GetMaxPlaintextSize(kDefaultMaxPacketSize)
504 - bytes_free, serialized.packet->length());
505 } else {
506 EXPECT_EQ(client_framer_.GetMaxPlaintextSize(kDefaultMaxPacketSize),
507 serialized.packet->length());
508 }
509
510 delete serialized.packet;
511 frames_.clear();
512 }
513 }
514
469 TEST_P(QuicPacketCreatorTest, SerializeConnectionClose) { 515 TEST_P(QuicPacketCreatorTest, SerializeConnectionClose) {
470 QuicConnectionCloseFrame frame; 516 QuicConnectionCloseFrame frame;
471 frame.error_code = QUIC_NO_ERROR; 517 frame.error_code = QUIC_NO_ERROR;
472 frame.error_details = "error"; 518 frame.error_details = "error";
473 519
474 SerializedPacket serialized = creator_.SerializeConnectionClose(&frame); 520 SerializedPacket serialized = creator_.SerializeConnectionClose(&frame);
475 ASSERT_EQ(1u, serialized.sequence_number); 521 ASSERT_EQ(1u, serialized.sequence_number);
476 ASSERT_EQ(1u, creator_.sequence_number()); 522 ASSERT_EQ(1u, creator_.sequence_number());
477 523
478 InSequence s; 524 InSequence s;
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 client_framer_.ProcessPacket(*encrypted); 799 client_framer_.ProcessPacket(*encrypted);
754 } 800 }
755 801
756 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthLeastAwaiting) { 802 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthLeastAwaiting) {
757 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER, 803 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER,
758 creator_.next_sequence_number_length()); 804 creator_.next_sequence_number_length());
759 805
760 size_t max_packets_per_fec_group = 10; 806 size_t max_packets_per_fec_group = 10;
761 creator_.set_max_packets_per_fec_group(max_packets_per_fec_group); 807 creator_.set_max_packets_per_fec_group(max_packets_per_fec_group);
762 creator_.set_sequence_number(64 - max_packets_per_fec_group); 808 creator_.set_sequence_number(64 - max_packets_per_fec_group);
763 creator_.UpdateSequenceNumberLength(2, 10000); 809 creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize);
764 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER, 810 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER,
765 creator_.next_sequence_number_length()); 811 creator_.next_sequence_number_length());
766 812
767 creator_.set_sequence_number(64 * 256 - max_packets_per_fec_group); 813 creator_.set_sequence_number(64 * 256 - max_packets_per_fec_group);
768 creator_.UpdateSequenceNumberLength(2, 10000); 814 creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize);
769 EXPECT_EQ(PACKET_2BYTE_SEQUENCE_NUMBER, 815 EXPECT_EQ(PACKET_2BYTE_SEQUENCE_NUMBER,
770 creator_.next_sequence_number_length()); 816 creator_.next_sequence_number_length());
771 817
772 creator_.set_sequence_number(64 * 256 * 256 - max_packets_per_fec_group); 818 creator_.set_sequence_number(64 * 256 * 256 - max_packets_per_fec_group);
773 creator_.UpdateSequenceNumberLength(2, 10000); 819 creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize);
774 EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER, 820 EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER,
775 creator_.next_sequence_number_length()); 821 creator_.next_sequence_number_length());
776 822
777 creator_.set_sequence_number( 823 creator_.set_sequence_number(
778 GG_UINT64_C(64) * 256 * 256 * 256 * 256 - max_packets_per_fec_group); 824 GG_UINT64_C(64) * 256 * 256 * 256 * 256 - max_packets_per_fec_group);
779 creator_.UpdateSequenceNumberLength(2, 10000); 825 creator_.UpdateSequenceNumberLength(2, 10000 / kDefaultMaxPacketSize);
780 EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER, 826 EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER,
781 creator_.next_sequence_number_length()); 827 creator_.next_sequence_number_length());
782 } 828 }
783 829
784 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthBandwidth) { 830 TEST_P(QuicPacketCreatorTest, UpdatePacketSequenceNumberLengthBandwidth) {
785 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER, 831 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER,
786 creator_.next_sequence_number_length()); 832 creator_.next_sequence_number_length());
787 833
788 creator_.UpdateSequenceNumberLength(1, 10000); 834 creator_.UpdateSequenceNumberLength(1, 10000 / kDefaultMaxPacketSize);
789 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER, 835 EXPECT_EQ(PACKET_1BYTE_SEQUENCE_NUMBER,
790 creator_.next_sequence_number_length()); 836 creator_.next_sequence_number_length());
791 837
792 creator_.UpdateSequenceNumberLength(1, 10000 * 256); 838 creator_.UpdateSequenceNumberLength(1, 10000 * 256 / kDefaultMaxPacketSize);
793 EXPECT_EQ(PACKET_2BYTE_SEQUENCE_NUMBER, 839 EXPECT_EQ(PACKET_2BYTE_SEQUENCE_NUMBER,
794 creator_.next_sequence_number_length()); 840 creator_.next_sequence_number_length());
795 841
796 creator_.UpdateSequenceNumberLength(1, 10000 * 256 * 256); 842 creator_.UpdateSequenceNumberLength(
843 1, 10000 * 256 * 256 / kDefaultMaxPacketSize);
797 EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER, 844 EXPECT_EQ(PACKET_4BYTE_SEQUENCE_NUMBER,
798 creator_.next_sequence_number_length()); 845 creator_.next_sequence_number_length());
799 846
800 creator_.UpdateSequenceNumberLength( 847 creator_.UpdateSequenceNumberLength(
801 1, GG_UINT64_C(1000) * 256 * 256 * 256 * 256); 848 1, GG_UINT64_C(1000) * 256 * 256 * 256 * 256 / kDefaultMaxPacketSize);
802 EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER, 849 EXPECT_EQ(PACKET_6BYTE_SEQUENCE_NUMBER,
803 creator_.next_sequence_number_length()); 850 creator_.next_sequence_number_length());
804 } 851 }
805 852
806 TEST_P(QuicPacketCreatorTest, CreateStreamFrameWithNotifier) { 853 TEST_P(QuicPacketCreatorTest, CreateStreamFrameWithNotifier) {
807 // Ensure that if CreateStreamFrame does not consume any data (e.g. a FIN only 854 // Ensure that if CreateStreamFrame does not consume any data (e.g. a FIN only
808 // frame) then any QuicAckNotifier that is passed in still gets attached to 855 // frame) then any QuicAckNotifier that is passed in still gets attached to
809 // the frame. 856 // the frame.
810 scoped_refptr<MockAckNotifierDelegate> delegate(new MockAckNotifierDelegate); 857 scoped_refptr<MockAckNotifierDelegate> delegate(new MockAckNotifierDelegate);
811 QuicAckNotifier notifier(delegate.get()); 858 QuicAckNotifier notifier(delegate.get());
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
1026 // After 64 calls, BoolSource will refresh the bucket - make sure it does. 1073 // After 64 calls, BoolSource will refresh the bucket - make sure it does.
1027 mock_random_.ChangeValue(); 1074 mock_random_.ChangeValue();
1028 } 1075 }
1029 1076
1030 delete frames_[0].stream_frame; 1077 delete frames_[0].stream_frame;
1031 } 1078 }
1032 1079
1033 } // namespace 1080 } // namespace
1034 } // namespace test 1081 } // namespace test
1035 } // namespace net 1082 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_packet_creator.cc ('k') | net/quic/quic_packet_generator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698