| Index: net/quic/quic_packet_creator_test.cc
|
| diff --git a/net/quic/quic_packet_creator_test.cc b/net/quic/quic_packet_creator_test.cc
|
| index 91b4bd0a609e6461197cc88575b4acb40e41d6cf..1fd652fa44b4cc64c88bba8279563a05aba7c9de 100644
|
| --- a/net/quic/quic_packet_creator_test.cc
|
| +++ b/net/quic/quic_packet_creator_test.cc
|
| @@ -124,6 +124,9 @@ class QuicPacketCreatorTest : public ::testing::TestWithParam<TestParams> {
|
| creator_(connection_id_, &client_framer_, &mock_random_, &delegate_),
|
| serialized_packet_(creator_.NoPacket()) {
|
| creator_.set_connection_id_length(GetParam().connection_id_length);
|
| +
|
| + creator_.SetEncrypter(ENCRYPTION_INITIAL, new NullEncrypter());
|
| + creator_.SetEncrypter(ENCRYPTION_FORWARD_SECURE, new NullEncrypter());
|
| client_framer_.set_visitor(&framer_visitor_);
|
| client_framer_.set_received_entropy_calculator(&entropy_calculator_);
|
| server_framer_.set_visitor(&framer_visitor_);
|
| @@ -132,6 +135,14 @@ class QuicPacketCreatorTest : public ::testing::TestWithParam<TestParams> {
|
|
|
| ~QuicPacketCreatorTest() override {}
|
|
|
| + SerializedPacket SerializeAllFrames(const QuicFrames& frames) {
|
| + SerializedPacket packet =
|
| + creator_.SerializeAllFrames(frames, buffer_, kMaxPacketSize);
|
| + EXPECT_EQ(QuicPacketCreatorPeer::GetEncryptionLevel(&creator_),
|
| + packet.encryption_level);
|
| + return packet;
|
| + }
|
| +
|
| void ProcessPacket(QuicEncryptedPacket* encrypted) {
|
| server_framer_.ProcessPacket(*encrypted);
|
| }
|
| @@ -186,6 +197,7 @@ class QuicPacketCreatorTest : public ::testing::TestWithParam<TestParams> {
|
|
|
| static const QuicStreamOffset kOffset = 1u;
|
|
|
| + char buffer_[kMaxPacketSize];
|
| QuicFrames frames_;
|
| QuicFramer server_framer_;
|
| QuicFramer client_framer_;
|
| @@ -208,32 +220,36 @@ INSTANTIATE_TEST_CASE_P(QuicPacketCreatorTests,
|
| ::testing::ValuesIn(GetTestParams()));
|
|
|
| TEST_P(QuicPacketCreatorTest, SerializeFrames) {
|
| - frames_.push_back(QuicFrame(new QuicAckFrame(MakeAckFrame(0u))));
|
| - frames_.push_back(
|
| - QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece())));
|
| - frames_.push_back(
|
| - QuicFrame(new QuicStreamFrame(0u, true, 0u, StringPiece())));
|
| - char buffer[kMaxPacketSize];
|
| - SerializedPacket serialized =
|
| - creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize);
|
| - delete frames_[0].ack_frame;
|
| - delete frames_[1].stream_frame;
|
| - delete frames_[2].stream_frame;
|
| + for (int i = ENCRYPTION_NONE; i < NUM_ENCRYPTION_LEVELS; ++i) {
|
| + EncryptionLevel level = static_cast<EncryptionLevel>(i);
|
| + creator_.set_encryption_level(level);
|
| + frames_.push_back(QuicFrame(new QuicAckFrame(MakeAckFrame(0u))));
|
| + frames_.push_back(
|
| + QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece())));
|
| + frames_.push_back(
|
| + QuicFrame(new QuicStreamFrame(0u, true, 0u, StringPiece())));
|
| + SerializedPacket serialized = SerializeAllFrames(frames_);
|
| + EXPECT_EQ(level, serialized.encryption_level);
|
| + delete frames_[0].ack_frame;
|
| + delete frames_[1].stream_frame;
|
| + delete frames_[2].stream_frame;
|
| + frames_.clear();
|
|
|
| - {
|
| - InSequence s;
|
| - EXPECT_CALL(framer_visitor_, OnPacket());
|
| - EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
|
| - EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
|
| - EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
|
| - EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
|
| - EXPECT_CALL(framer_visitor_, OnAckFrame(_));
|
| - EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
|
| - EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
|
| - EXPECT_CALL(framer_visitor_, OnPacketComplete());
|
| + {
|
| + InSequence s;
|
| + EXPECT_CALL(framer_visitor_, OnPacket());
|
| + EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
|
| + EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
|
| + EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
|
| + EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
|
| + EXPECT_CALL(framer_visitor_, OnAckFrame(_));
|
| + EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
|
| + EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
|
| + EXPECT_CALL(framer_visitor_, OnPacketComplete());
|
| + }
|
| + ProcessPacket(serialized.packet);
|
| + delete serialized.packet;
|
| }
|
| - ProcessPacket(serialized.packet);
|
| - delete serialized.packet;
|
| }
|
|
|
| TEST_P(QuicPacketCreatorTest, SerializeWithFEC) {
|
| @@ -245,9 +261,7 @@ TEST_P(QuicPacketCreatorTest, SerializeWithFEC) {
|
|
|
| frames_.push_back(
|
| QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece())));
|
| - char buffer[kMaxPacketSize];
|
| - SerializedPacket serialized =
|
| - creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize);
|
| + SerializedPacket serialized = SerializeAllFrames(frames_);
|
| delete frames_[0].stream_frame;
|
|
|
| {
|
| @@ -509,9 +523,7 @@ TEST_P(QuicPacketCreatorTest, SerializeWithFECChangingSequenceNumberLength) {
|
| ClearSerializedPacket(&serialized_packet_);
|
|
|
| // Ensure the next FEC group starts using the new packet number length.
|
| - char buffer[kMaxPacketSize];
|
| - SerializedPacket serialized =
|
| - creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize);
|
| + SerializedPacket serialized = SerializeAllFrames(frames_);
|
| EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, serialized.packet_number_length);
|
| delete frames_[0].ack_frame;
|
| ClearSerializedPacket(&serialized);
|
| @@ -614,9 +626,8 @@ TEST_P(QuicPacketCreatorTest, SerializeConnectionClose) {
|
|
|
| QuicFrames frames;
|
| frames.push_back(QuicFrame(&frame));
|
| - char buffer[kMaxPacketSize];
|
| - SerializedPacket serialized =
|
| - creator_.SerializeAllFrames(frames, buffer, kMaxPacketSize);
|
| + SerializedPacket serialized = SerializeAllFrames(frames);
|
| + EXPECT_EQ(ENCRYPTION_NONE, serialized.encryption_level);
|
| ASSERT_EQ(1u, serialized.packet_number);
|
| ASSERT_EQ(1u, creator_.packet_number());
|
|
|
| @@ -656,9 +667,7 @@ TEST_P(QuicPacketCreatorTest, SwitchFecOnOffWithGroupInProgress) {
|
| EXPECT_TRUE(SwitchFecProtectionOn(6));
|
| frames_.push_back(
|
| QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece())));
|
| - char buffer[kMaxPacketSize];
|
| - SerializedPacket serialized =
|
| - creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize);
|
| + SerializedPacket serialized = SerializeAllFrames(frames_);
|
| delete frames_[0].stream_frame;
|
| delete serialized.packet;
|
|
|
| @@ -985,9 +994,7 @@ TEST_P(QuicPacketCreatorTest, SerializeFrame) {
|
| }
|
| frames_.push_back(
|
| QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece())));
|
| - char buffer[kMaxPacketSize];
|
| - SerializedPacket serialized =
|
| - creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize);
|
| + SerializedPacket serialized = SerializeAllFrames(frames_);
|
| delete frames_[0].stream_frame;
|
|
|
| QuicPacketHeader header;
|
| @@ -1180,11 +1187,9 @@ TEST_P(QuicPacketCreatorTest, EntropyFlag) {
|
| frames_.push_back(
|
| QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece())));
|
|
|
| - char buffer[kMaxPacketSize];
|
| for (int i = 0; i < 2; ++i) {
|
| for (int j = 0; j < 64; ++j) {
|
| - SerializedPacket serialized =
|
| - creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize);
|
| + SerializedPacket serialized = SerializeAllFrames(frames_);
|
| // Verify both BoolSource and hash algorithm.
|
| bool expected_rand_bool =
|
| (mock_random_.RandUint64() & (UINT64_C(1) << j)) != 0;
|
| @@ -1207,9 +1212,7 @@ TEST_P(QuicPacketCreatorTest, ResetFecGroup) {
|
| EXPECT_TRUE(SwitchFecProtectionOn(6));
|
| frames_.push_back(
|
| QuicFrame(new QuicStreamFrame(0u, false, 0u, StringPiece())));
|
| - char buffer[kMaxPacketSize];
|
| - SerializedPacket serialized =
|
| - creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize);
|
| + SerializedPacket serialized = SerializeAllFrames(frames_);
|
| delete serialized.packet;
|
|
|
| EXPECT_TRUE(QuicPacketCreatorPeer::IsFecProtected(&creator_));
|
| @@ -1234,12 +1237,12 @@ TEST_P(QuicPacketCreatorTest, ResetFecGroup) {
|
| EXPECT_FALSE(creator_.ShouldSendFec(/*force_close=*/true));
|
|
|
| EXPECT_DFATAL(serialized = QuicPacketCreatorPeer::SerializeFec(
|
| - &creator_, buffer, kMaxPacketSize),
|
| + &creator_, buffer_, kMaxPacketSize),
|
| "SerializeFEC called but no group or zero packets in group.");
|
| delete serialized.packet;
|
|
|
| // Start a new FEC packet.
|
| - serialized = creator_.SerializeAllFrames(frames_, buffer, kMaxPacketSize);
|
| + serialized = SerializeAllFrames(frames_);
|
| delete frames_[0].stream_frame;
|
| delete serialized.packet;
|
|
|
|
|