| 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 8544e89a4855424b59d4c1c0dd663c3aefa37cd2..33f2f302717e744e9a645b2760460fd43aba74ca 100644
|
| --- a/net/quic/quic_packet_creator_test.cc
|
| +++ b/net/quic/quic_packet_creator_test.cc
|
| @@ -498,8 +498,9 @@ TEST_P(QuicPacketCreatorTest, ReserializeFramesWithPadding) {
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector("fake handshake message data"));
|
| UniqueStreamBuffer stream_buffer;
|
| - creator_.CreateStreamFrame(kCryptoStreamId, io_vector, 0u, 0u, false, &frame,
|
| - &stream_buffer);
|
| + QuicPacketCreatorPeer::CreateStreamFrame(&creator_, kCryptoStreamId,
|
| + io_vector, 0u, 0u, false, &frame,
|
| + &stream_buffer);
|
| RetransmittableFrames frames(ENCRYPTION_NONE);
|
| frames.AddFrame(frame);
|
| frames.set_needs_padding(true);
|
| @@ -522,8 +523,9 @@ TEST_P(QuicPacketCreatorTest, ReserializeFramesWithFullPacketAndPadding) {
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector(data));
|
| UniqueStreamBuffer stream_buffer;
|
| - creator_.CreateStreamFrame(kCryptoStreamId, io_vector, 0, kOffset, false,
|
| - &frame, &stream_buffer);
|
| + QuicPacketCreatorPeer::CreateStreamFrame(&creator_, kCryptoStreamId,
|
| + io_vector, 0, kOffset, false,
|
| + &frame, &stream_buffer);
|
| RetransmittableFrames frames(ENCRYPTION_NONE);
|
| frames.AddFrame(frame);
|
| frames.set_needs_padding(true);
|
| @@ -629,12 +631,11 @@ TEST_P(QuicPacketCreatorTest, SwitchFecOnWithStreamFrameQueued) {
|
| // Add a stream frame to the creator.
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector("test"));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t consumed = creator_.CreateStreamFrame(1u, io_vector, 0u, 0u, false,
|
| - &frame, &stream_buffer);
|
| - EXPECT_EQ(4u, consumed);
|
| + ASSERT_TRUE(
|
| + creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
|
| ASSERT_TRUE(frame.stream_frame);
|
| - EXPECT_TRUE(creator_.AddSavedFrame(frame));
|
| + size_t consumed = frame.stream_frame->data.length();
|
| + EXPECT_EQ(4u, consumed);
|
| EXPECT_TRUE(creator_.HasPendingFrames());
|
|
|
| // Enable FEC protection, and send FEC packet every 6 packets.
|
| @@ -657,39 +658,39 @@ TEST_P(QuicPacketCreatorTest, SwitchFecOnWithStreamFrameQueued) {
|
| EXPECT_TRUE(creator_.IsFecProtected());
|
| }
|
|
|
| -TEST_P(QuicPacketCreatorTest, CreateStreamFrame) {
|
| +TEST_P(QuicPacketCreatorTest, ConsumeData) {
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector("test"));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t consumed = creator_.CreateStreamFrame(1u, io_vector, 0u, 0u, false,
|
| - &frame, &stream_buffer);
|
| + ASSERT_TRUE(
|
| + creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t consumed = frame.stream_frame->data.length();
|
| EXPECT_EQ(4u, consumed);
|
| CheckStreamFrame(frame, 1u, "test", 0u, false);
|
| - RetransmittableFrames cleanup_frames(ENCRYPTION_NONE);
|
| - cleanup_frames.AddFrame(frame);
|
| + EXPECT_TRUE(creator_.HasPendingFrames());
|
| }
|
|
|
| -TEST_P(QuicPacketCreatorTest, CreateStreamFrameFin) {
|
| +TEST_P(QuicPacketCreatorTest, ConsumeDataFin) {
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector("test"));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t consumed = creator_.CreateStreamFrame(1u, io_vector, 0u, 10u, true,
|
| - &frame, &stream_buffer);
|
| + ASSERT_TRUE(
|
| + creator_.ConsumeData(1u, io_vector, 0u, 10u, true, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t consumed = frame.stream_frame->data.length();
|
| EXPECT_EQ(4u, consumed);
|
| CheckStreamFrame(frame, 1u, "test", 10u, true);
|
| - RetransmittableFrames cleanup_frames(ENCRYPTION_NONE);
|
| - cleanup_frames.AddFrame(frame);
|
| + EXPECT_TRUE(creator_.HasPendingFrames());
|
| }
|
|
|
| -TEST_P(QuicPacketCreatorTest, CreateStreamFrameFinOnly) {
|
| +TEST_P(QuicPacketCreatorTest, ConsumeDataFinOnly) {
|
| QuicFrame frame;
|
| QuicIOVector io_vector(nullptr, 0, 0);
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t consumed = creator_.CreateStreamFrame(1u, io_vector, 0u, 0u, true,
|
| - &frame, &stream_buffer);
|
| + ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, true, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t consumed = frame.stream_frame->data.length();
|
| EXPECT_EQ(0u, consumed);
|
| CheckStreamFrame(frame, 1u, string(), 0u, true);
|
| - delete frame.stream_frame;
|
| + EXPECT_TRUE(creator_.HasPendingFrames());
|
| }
|
|
|
| TEST_P(QuicPacketCreatorTest, CreateAllFreeBytesForStreamFrames) {
|
| @@ -704,12 +705,11 @@ TEST_P(QuicPacketCreatorTest, CreateAllFreeBytesForStreamFrames) {
|
| if (should_have_room) {
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector("testdata"));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t bytes_consumed =
|
| - creator_.CreateStreamFrame(kClientDataStreamId1, io_vector, 0u,
|
| - kOffset, false, &frame, &stream_buffer);
|
| + ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u,
|
| + kOffset, false, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t bytes_consumed = frame.stream_frame->data.length();
|
| EXPECT_LT(0u, bytes_consumed);
|
| - ASSERT_TRUE(creator_.AddSavedFrame(frame));
|
| char buffer[kMaxPacketSize];
|
| SerializedPacket serialized_packet =
|
| creator_.SerializePacket(buffer, kMaxPacketSize);
|
| @@ -731,13 +731,12 @@ TEST_P(QuicPacketCreatorTest, StreamFrameConsumption) {
|
| size_t bytes_free = delta > 0 ? 0 : 0 - delta;
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector(data));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t bytes_consumed =
|
| - creator_.CreateStreamFrame(kClientDataStreamId1, io_vector, 0u, kOffset,
|
| - false, &frame, &stream_buffer);
|
| + ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u,
|
| + kOffset, false, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t bytes_consumed = frame.stream_frame->data.length();
|
| EXPECT_EQ(capacity - bytes_free, bytes_consumed);
|
|
|
| - ASSERT_TRUE(creator_.AddSavedFrame(frame));
|
| // BytesFree() returns bytes available for the next frame, which will
|
| // be two bytes smaller since the stream frame would need to be grown.
|
| EXPECT_EQ(2u, creator_.ExpansionOnNewFrame());
|
| @@ -765,13 +764,12 @@ TEST_P(QuicPacketCreatorTest, StreamFrameConsumptionWithFec) {
|
| size_t bytes_free = delta > 0 ? 0 : 0 - delta;
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector(data));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t bytes_consumed =
|
| - creator_.CreateStreamFrame(kClientDataStreamId1, io_vector, 0u, kOffset,
|
| - false, &frame, &stream_buffer);
|
| + ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u,
|
| + kOffset, false, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t bytes_consumed = frame.stream_frame->data.length();;
|
| EXPECT_EQ(capacity - bytes_free, bytes_consumed);
|
|
|
| - ASSERT_TRUE(creator_.AddSavedFrame(frame));
|
| // BytesFree() returns bytes available for the next frame. Since stream
|
| // frame does not grow for FEC protected packets, this should be the same
|
| // as bytes_free (bound by 0).
|
| @@ -800,11 +798,11 @@ TEST_P(QuicPacketCreatorTest, CryptoStreamFramePacketPadding) {
|
|
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector(data));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t bytes_consumed = creator_.CreateStreamFrame(
|
| - kCryptoStreamId, io_vector, 0u, kOffset, false, &frame, &stream_buffer);
|
| + ASSERT_TRUE(creator_.ConsumeData(kCryptoStreamId, io_vector, 0u, kOffset,
|
| + false, true, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t bytes_consumed = frame.stream_frame->data.length();
|
| EXPECT_LT(0u, bytes_consumed);
|
| - ASSERT_TRUE(creator_.AddPaddedSavedFrame(frame, nullptr));
|
| char buffer[kMaxPacketSize];
|
| SerializedPacket serialized_packet =
|
| creator_.SerializePacket(buffer, kMaxPacketSize);
|
| @@ -836,12 +834,11 @@ TEST_P(QuicPacketCreatorTest, NonCryptoStreamFramePacketNonPadding) {
|
|
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector(data));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t bytes_consumed =
|
| - creator_.CreateStreamFrame(kClientDataStreamId1, io_vector, 0u, kOffset,
|
| - false, &frame, &stream_buffer);
|
| + ASSERT_TRUE(creator_.ConsumeData(kClientDataStreamId1, io_vector, 0u,
|
| + kOffset, false, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t bytes_consumed = frame.stream_frame->data.length();
|
| EXPECT_LT(0u, bytes_consumed);
|
| - ASSERT_TRUE(creator_.AddSavedFrame(frame));
|
| char buffer[kMaxPacketSize];
|
| SerializedPacket serialized_packet =
|
| creator_.SerializePacket(buffer, kMaxPacketSize);
|
| @@ -958,7 +955,7 @@ TEST_P(QuicPacketCreatorTest, SerializeFrame) {
|
| delete serialized.packet;
|
| }
|
|
|
| -TEST_P(QuicPacketCreatorTest, CreateStreamFrameTooLarge) {
|
| +TEST_P(QuicPacketCreatorTest, ConsumeDataLargerThanOneStreamFrame) {
|
| if (!GetParam().version_serialization) {
|
| creator_.StopSendingVersion();
|
| }
|
| @@ -972,14 +969,12 @@ TEST_P(QuicPacketCreatorTest, CreateStreamFrameTooLarge) {
|
| QuicFrame frame;
|
| const string too_long_payload(payload_length * 2, 'a');
|
| QuicIOVector io_vector(MakeIOVector(too_long_payload));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t consumed = creator_.CreateStreamFrame(1u, io_vector, 0u, 0u, true,
|
| - &frame, &stream_buffer);
|
| + ASSERT_TRUE(creator_.ConsumeData(1u, io_vector, 0u, 0u, true, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t consumed = frame.stream_frame->data.length();
|
| EXPECT_EQ(payload_length, consumed);
|
| const string payload(payload_length, 'a');
|
| CheckStreamFrame(frame, 1u, payload, 0u, false);
|
| - RetransmittableFrames cleanup_frames(ENCRYPTION_NONE);
|
| - cleanup_frames.AddFrame(frame);
|
| }
|
|
|
| TEST_P(QuicPacketCreatorTest, AddFrameAndSerialize) {
|
| @@ -1003,12 +998,11 @@ TEST_P(QuicPacketCreatorTest, AddFrameAndSerialize) {
|
|
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector("test"));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t consumed = creator_.CreateStreamFrame(1u, io_vector, 0u, 0u, false,
|
| - &frame, &stream_buffer);
|
| - EXPECT_EQ(4u, consumed);
|
| + ASSERT_TRUE(
|
| + creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
|
| ASSERT_TRUE(frame.stream_frame);
|
| - EXPECT_TRUE(creator_.AddSavedFrame(frame));
|
| + size_t consumed = frame.stream_frame->data.length();
|
| + EXPECT_EQ(4u, consumed);
|
| EXPECT_TRUE(creator_.HasPendingFrames());
|
|
|
| QuicPaddingFrame padding_frame;
|
| @@ -1062,14 +1056,13 @@ TEST_P(QuicPacketCreatorTest, SerializeTruncatedAckFrameWithLargePacketSize) {
|
| EXPECT_LT(0u, creator_.BytesFree());
|
|
|
| // Make sure that an additional stream frame can be added to the packet.
|
| - QuicFrame stream_frame;
|
| + QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector("test"));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t consumed = creator_.CreateStreamFrame(2u, io_vector, 0u, 0u, false,
|
| - &stream_frame, &stream_buffer);
|
| + ASSERT_TRUE(
|
| + creator_.ConsumeData(2u, io_vector, 0u, 0u, false, false, &frame));
|
| + ASSERT_TRUE(frame.stream_frame);
|
| + size_t consumed = frame.stream_frame->data.length();
|
| EXPECT_EQ(4u, consumed);
|
| - ASSERT_TRUE(stream_frame.stream_frame);
|
| - EXPECT_TRUE(creator_.AddSavedFrame(stream_frame));
|
| EXPECT_TRUE(creator_.HasPendingFrames());
|
|
|
| // Ensure the packet is successfully created, and the packet size estimate
|
| @@ -1210,12 +1203,11 @@ TEST_P(QuicPacketCreatorTest, ResetFecGroupWithQueuedFrames) {
|
| // Add a stream frame to the creator.
|
| QuicFrame frame;
|
| QuicIOVector io_vector(MakeIOVector("test"));
|
| - UniqueStreamBuffer stream_buffer;
|
| - size_t consumed = creator_.CreateStreamFrame(1u, io_vector, 0u, 0u, false,
|
| - &frame, &stream_buffer);
|
| - EXPECT_EQ(4u, consumed);
|
| + ASSERT_TRUE(
|
| + creator_.ConsumeData(1u, io_vector, 0u, 0u, false, false, &frame));
|
| ASSERT_TRUE(frame.stream_frame);
|
| - EXPECT_TRUE(creator_.AddSavedFrame(frame));
|
| + size_t consumed = frame.stream_frame->data.length();
|
| + EXPECT_EQ(4u, consumed);
|
| EXPECT_TRUE(creator_.HasPendingFrames());
|
| EXPECT_DFATAL(creator_.ResetFecGroup(),
|
| "Cannot reset FEC group with pending frames.");
|
|
|