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 aba6f2e4e76bd4d7568e9fddc98ea500126220d0..2324516e019606a07854dc9101bd9c69023fa60d 100644 |
--- a/net/quic/quic_packet_creator_test.cc |
+++ b/net/quic/quic_packet_creator_test.cc |
@@ -102,14 +102,18 @@ class QuicPacketCreatorTest : public ::testing::TestWithParam<TestParams> { |
if (serialized_packet == nullptr) { |
return; |
} |
- |
+ delete[] serialized_packet_.encrypted_buffer; |
serialized_packet_ = *serialized_packet; |
- serialized_packet_.packet = serialized_packet->packet->Clone(); |
- delete serialized_packet->packet; |
+ serialized_packet_.encrypted_buffer = |
+ QuicUtils::CopyBuffer(*serialized_packet); |
serialized_packet->retransmittable_frames.clear(); |
} |
- void DeleteSerializedPacket() { ClearSerializedPacket(&serialized_packet_); } |
+ void DeleteSerializedPacket() { |
+ delete[] serialized_packet_.encrypted_buffer; |
+ serialized_packet_.encrypted_buffer = nullptr; |
+ ClearSerializedPacket(&serialized_packet_); |
+ } |
protected: |
QuicPacketCreatorTest() |
@@ -140,7 +144,10 @@ class QuicPacketCreatorTest : public ::testing::TestWithParam<TestParams> { |
FLAGS_quic_no_unencrypted_fec = false; |
} |
- ~QuicPacketCreatorTest() override {} |
+ ~QuicPacketCreatorTest() override { |
+ delete[] serialized_packet_.encrypted_buffer; |
+ ClearSerializedPacket(&serialized_packet_); |
+ } |
SerializedPacket SerializeAllFrames(const QuicFrames& frames) { |
SerializedPacket packet = QuicPacketCreatorPeer::SerializeAllFrames( |
@@ -151,7 +158,9 @@ class QuicPacketCreatorTest : public ::testing::TestWithParam<TestParams> { |
} |
void ProcessPacket(const SerializedPacket& packet) { |
- server_framer_.ProcessPacket(*packet.packet); |
+ QuicEncryptedPacket encrypted_packet(packet.encrypted_buffer, |
+ packet.encrypted_length); |
+ server_framer_.ProcessPacket(encrypted_packet); |
} |
void CheckStreamFrame(const QuicFrame& frame, |
@@ -261,7 +270,6 @@ TEST_P(QuicPacketCreatorTest, SerializeFrames) { |
EXPECT_CALL(framer_visitor_, OnPacketComplete()); |
} |
ProcessPacket(serialized); |
- delete serialized.packet; |
} |
} |
@@ -395,7 +403,7 @@ TEST_P(QuicPacketCreatorTest, ChangeSequenceNumberLengthMidPacket) { |
.WillRepeatedly( |
Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
creator_.Flush(); |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
EXPECT_EQ(PACKET_1BYTE_PACKET_NUMBER, |
serialized_packet_.packet_number_length); |
@@ -427,7 +435,7 @@ TEST_P(QuicPacketCreatorTest, ChangeSequenceNumberLengthMidPacket) { |
// Ensure the packet is successfully created. |
creator_.Flush(); |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
EXPECT_EQ(PACKET_4BYTE_PACKET_NUMBER, |
serialized_packet_.packet_number_length); |
@@ -596,7 +604,6 @@ TEST_P(QuicPacketCreatorTest, ReserializeFramesWithSequenceNumberLength) { |
EXPECT_CALL(framer_visitor_, OnPacketComplete()); |
} |
ProcessPacket(serialized); |
- delete serialized.packet; |
delete stream_frame; |
} |
@@ -621,7 +628,6 @@ TEST_P(QuicPacketCreatorTest, ReserializeCryptoFrameWithForwardSecurity) { |
serialized = serialized_packet_; |
} |
EXPECT_EQ(ENCRYPTION_NONE, serialized.encryption_level); |
- delete serialized.packet; |
delete stream_frame; |
} |
@@ -646,7 +652,6 @@ TEST_P(QuicPacketCreatorTest, ReserializeFrameWithForwardSecurity) { |
serialized = serialized_packet_; |
} |
EXPECT_EQ(ENCRYPTION_FORWARD_SECURE, serialized.encryption_level); |
- delete serialized.packet; |
delete stream_frame; |
} |
@@ -671,8 +676,7 @@ TEST_P(QuicPacketCreatorTest, ReserializeFramesWithPadding) { |
if (FLAGS_quic_retransmit_via_onserializedpacket) { |
serialized = serialized_packet_; |
} |
- EXPECT_EQ(kDefaultMaxPacketSize, serialized.packet->length()); |
- delete serialized.packet; |
+ EXPECT_EQ(kDefaultMaxPacketSize, serialized.encrypted_length); |
delete frame.stream_frame; |
} |
@@ -712,12 +716,11 @@ TEST_P(QuicPacketCreatorTest, ReserializeFramesWithFullPacketAndPadding) { |
// will not be padded. |
if (bytes_free < 3) { |
EXPECT_EQ(kDefaultMaxPacketSize - bytes_free, |
- serialized.packet->length()); |
+ serialized.encrypted_length); |
} else { |
- EXPECT_EQ(kDefaultMaxPacketSize, serialized.packet->length()); |
+ EXPECT_EQ(kDefaultMaxPacketSize, serialized.encrypted_length); |
} |
- delete serialized.packet; |
delete frame.stream_frame; |
frames_.clear(); |
} |
@@ -745,7 +748,6 @@ TEST_P(QuicPacketCreatorTest, SerializeConnectionClose) { |
EXPECT_CALL(framer_visitor_, OnPacketComplete()); |
ProcessPacket(serialized); |
- delete serialized.packet; |
} |
TEST_P(QuicPacketCreatorTest, SwitchFecOnOffWithGroupInProgress) { |
@@ -914,7 +916,7 @@ TEST_P(QuicPacketCreatorTest, StreamFrameConsumption) { |
EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
.WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
creator_.Flush(); |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
DeleteSerializedPacket(); |
} |
} |
@@ -966,7 +968,7 @@ TEST_P(QuicPacketCreatorTest, StreamFrameConsumptionWithFec) { |
} |
} |
creator_.Flush(); |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
DeleteSerializedPacket(); |
} |
} |
@@ -994,15 +996,15 @@ TEST_P(QuicPacketCreatorTest, CryptoStreamFramePacketPadding) { |
size_t bytes_consumed = frame.stream_frame->frame_length; |
EXPECT_LT(0u, bytes_consumed); |
creator_.Flush(); |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
// If there is not enough space in the packet to fit a padding frame |
// (1 byte) and to expand the stream frame (another 2 bytes) the packet |
// will not be padded. |
if (bytes_free < 3) { |
EXPECT_EQ(kDefaultMaxPacketSize - bytes_free, |
- serialized_packet_.packet->length()); |
+ serialized_packet_.encrypted_length); |
} else { |
- EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.packet->length()); |
+ EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.encrypted_length); |
} |
DeleteSerializedPacket(); |
} |
@@ -1031,12 +1033,12 @@ TEST_P(QuicPacketCreatorTest, NonCryptoStreamFramePacketNonPadding) { |
size_t bytes_consumed = frame.stream_frame->frame_length; |
EXPECT_LT(0u, bytes_consumed); |
creator_.Flush(); |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
if (bytes_free > 0) { |
EXPECT_EQ(kDefaultMaxPacketSize - bytes_free, |
- serialized_packet_.packet->length()); |
+ serialized_packet_.encrypted_length); |
} else { |
- EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.packet->length()); |
+ EXPECT_EQ(kDefaultMaxPacketSize, serialized_packet_.encrypted_length); |
} |
DeleteSerializedPacket(); |
} |
@@ -1138,7 +1140,6 @@ TEST_P(QuicPacketCreatorTest, SerializeFrame) { |
ProcessPacket(serialized); |
EXPECT_EQ(GetParam().version_serialization, |
header.public_header.version_flag); |
- delete serialized.packet; |
} |
TEST_P(QuicPacketCreatorTest, ConsumeDataLargerThanOneStreamFrame) { |
@@ -1209,7 +1210,7 @@ TEST_P(QuicPacketCreatorTest, AddFrameAndFlush) { |
EXPECT_FALSE(creator_.AddSavedFrame(QuicFrame(&ack_frame))); |
// Ensure the packet is successfully created. |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
ASSERT_FALSE(serialized_packet_.retransmittable_frames.empty()); |
const QuicFrames& retransmittable = serialized_packet_.retransmittable_frames; |
ASSERT_EQ(1u, retransmittable.size()); |
@@ -1265,9 +1266,9 @@ TEST_P(QuicPacketCreatorTest, SerializeTruncatedAckFrameWithLargePacketSize) { |
.WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
size_t est_packet_size = creator_.PacketSize(); |
creator_.Flush(); |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
EXPECT_EQ(est_packet_size, client_framer_.GetMaxPlaintextSize( |
- serialized_packet_.packet->length())); |
+ serialized_packet_.encrypted_length)); |
DeleteSerializedPacket(); |
} |
@@ -1303,9 +1304,9 @@ TEST_P(QuicPacketCreatorTest, SerializeTruncatedAckFrameWithSmallPacketSize) { |
EXPECT_CALL(delegate_, OnSerializedPacket(_)) |
.WillOnce(Invoke(this, &QuicPacketCreatorTest::SaveSerializedPacket)); |
creator_.Flush(); |
- ASSERT_TRUE(serialized_packet_.packet); |
+ ASSERT_TRUE(serialized_packet_.encrypted_buffer); |
EXPECT_GE(est_packet_size, client_framer_.GetMaxPlaintextSize( |
- serialized_packet_.packet->length())); |
+ serialized_packet_.encrypted_length)); |
DeleteSerializedPacket(); |
} |
@@ -1324,7 +1325,6 @@ TEST_P(QuicPacketCreatorTest, EntropyFlag) { |
uint8_t rest_of_hash = serialized.entropy_hash & ~(1 << ((j + 1) % 8)); |
EXPECT_EQ(expected_rand_bool, observed_rand_bool); |
EXPECT_EQ(0, rest_of_hash); |
- delete serialized.packet; |
} |
// After 64 calls, BoolSource will refresh the bucket - make sure it does. |
mock_random_.ChangeValue(); |