| Index: net/quic/quic_stream_sequencer_test.cc
|
| diff --git a/net/quic/quic_stream_sequencer_test.cc b/net/quic/quic_stream_sequencer_test.cc
|
| index 2140981ede2072883f30dfa43e715a5623377283..6c2910e696859c4e89920083eec77e33d8e08416 100644
|
| --- a/net/quic/quic_stream_sequencer_test.cc
|
| +++ b/net/quic/quic_stream_sequencer_test.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/logging.h"
|
| #include "base/rand_util.h"
|
| #include "net/base/ip_endpoint.h"
|
| +#include "net/quic/quic_frame_list.h"
|
| #include "net/quic/quic_utils.h"
|
| #include "net/quic/reliable_quic_stream.h"
|
| #include "net/quic/test_tools/mock_clock.h"
|
| @@ -43,8 +44,8 @@ class MockStream : public ReliableQuicStream {
|
|
|
| MOCK_METHOD0(OnFinRead, void());
|
| MOCK_METHOD0(OnDataAvailable, void());
|
| - MOCK_METHOD2(CloseConnectionWithDetails, void(QuicErrorCode error,
|
| - const string& details));
|
| + MOCK_METHOD2(CloseConnectionWithDetails,
|
| + void(QuicErrorCode error, const string& details));
|
| MOCK_METHOD1(Reset, void(QuicRstStreamErrorCode error));
|
| MOCK_METHOD0(OnCanWrite, void());
|
| QuicPriority EffectivePriority() const override {
|
| @@ -78,7 +79,8 @@ class QuicStreamSequencerTest : public ::testing::Test {
|
|
|
| bool VerifyReadableRegion(const char** expected) {
|
| iovec iovecs[1];
|
| - if (sequencer_->GetReadableRegion(iovecs, nullptr)) {
|
| + QuicTime timestamp = clock_.ApproximateNow();
|
| + if (sequencer_->GetReadableRegion(iovecs, ×tamp)) {
|
| return (VerifyIovecs(iovecs, 1, expected, 1));
|
| }
|
| return false;
|
| @@ -111,8 +113,8 @@ class QuicStreamSequencerTest : public ::testing::Test {
|
|
|
| bool VerifyIovec(const iovec& iovec, StringPiece expected) {
|
| if (iovec.iov_len != expected.length()) {
|
| - LOG(ERROR) << "Invalid length: " << iovec.iov_len
|
| - << " vs " << expected.length();
|
| + LOG(ERROR) << "Invalid length: " << iovec.iov_len << " vs "
|
| + << expected.length();
|
| return false;
|
| }
|
| if (memcmp(iovec.iov_base, expected.data(), expected.length()) != 0) {
|
| @@ -141,13 +143,8 @@ class QuicStreamSequencerTest : public ::testing::Test {
|
| sequencer_->OnStreamFrame(frame);
|
| }
|
|
|
| - size_t NumBufferedFrames() {
|
| - return QuicStreamSequencerPeer::GetNumBufferedFrames(sequencer_.get());
|
| - }
|
| -
|
| - bool FrameOverlapsBufferedData(const QuicStreamFrame& frame) {
|
| - return QuicStreamSequencerPeer::FrameOverlapsBufferedData(sequencer_.get(),
|
| - frame);
|
| + size_t NumBufferedBytes() {
|
| + return QuicStreamSequencerPeer::GetNumBufferedBytes(sequencer_.get());
|
| }
|
|
|
| MockHelper helper_;
|
| @@ -167,26 +164,26 @@ TEST_F(QuicStreamSequencerTest, RejectOldFrame) {
|
|
|
| OnFrame(0, "abc");
|
|
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
|
| EXPECT_EQ(3u, stream_.flow_controller()->bytes_consumed());
|
| // Ignore this - it matches a past packet number and we should not see it
|
| // again.
|
| OnFrame(0, "def");
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, RejectBufferedFrame) {
|
| EXPECT_CALL(stream_, OnDataAvailable());
|
|
|
| OnFrame(0, "abc");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
|
|
| // Ignore this - it matches a buffered frame.
|
| // Right now there's no checking that the payload is consistent.
|
| OnFrame(0, "def");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, FullFrameConsumed) {
|
| @@ -195,23 +192,23 @@ TEST_F(QuicStreamSequencerTest, FullFrameConsumed) {
|
| CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3)));
|
|
|
| OnFrame(0, "abc");
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, BlockedThenFullFrameConsumed) {
|
| sequencer_->SetBlockedUntilFlush();
|
|
|
| OnFrame(0, "abc");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
|
|
| EXPECT_CALL(stream_, OnDataAvailable())
|
| .WillOnce(testing::Invoke(
|
| CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3)));
|
| sequencer_->SetUnblocked();
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
|
|
|
| EXPECT_CALL(stream_, OnDataAvailable())
|
| .WillOnce(testing::Invoke(
|
| @@ -225,8 +222,8 @@ TEST_F(QuicStreamSequencerTest, BlockedThenFullFrameAndFinConsumed) {
|
| sequencer_->SetBlockedUntilFlush();
|
|
|
| OnFinFrame(0, "abc");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
|
|
| EXPECT_CALL(stream_, OnDataAvailable())
|
| .WillOnce(testing::Invoke(
|
| @@ -234,23 +231,23 @@ TEST_F(QuicStreamSequencerTest, BlockedThenFullFrameAndFinConsumed) {
|
| EXPECT_FALSE(sequencer_->IsClosed());
|
| sequencer_->SetUnblocked();
|
| EXPECT_TRUE(sequencer_->IsClosed());
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, EmptyFrame) {
|
| EXPECT_CALL(stream_,
|
| CloseConnectionWithDetails(QUIC_INVALID_STREAM_FRAME, _));
|
| OnFrame(0, "");
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, EmptyFinFrame) {
|
| EXPECT_CALL(stream_, OnDataAvailable());
|
| OnFinFrame(0, "");
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, PartialFrameConsumed) {
|
| @@ -259,37 +256,37 @@ TEST_F(QuicStreamSequencerTest, PartialFrameConsumed) {
|
| CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 2)));
|
|
|
| OnFrame(0, "abc");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(2u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(1u, NumBufferedBytes());
|
| + EXPECT_EQ(2u, sequencer_->NumBytesConsumed());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, NextxFrameNotConsumed) {
|
| EXPECT_CALL(stream_, OnDataAvailable());
|
|
|
| OnFrame(0, "abc");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| EXPECT_EQ(0, sequencer_->num_early_frames_received());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, FutureFrameNotProcessed) {
|
| OnFrame(3, "abc");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| EXPECT_EQ(1, sequencer_->num_early_frames_received());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, OutOfOrderFrameProcessed) {
|
| // Buffer the first
|
| OnFrame(6, "ghi");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesBuffered());
|
| // Buffer the second
|
| OnFrame(3, "def");
|
| - EXPECT_EQ(2u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(6u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(6u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(6u, sequencer_->NumBytesBuffered());
|
|
|
| EXPECT_CALL(stream_, OnDataAvailable())
|
| .WillOnce(testing::Invoke(
|
| @@ -297,10 +294,10 @@ TEST_F(QuicStreamSequencerTest, OutOfOrderFrameProcessed) {
|
|
|
| // Now process all of them at once.
|
| OnFrame(0, "abc");
|
| - EXPECT_EQ(9u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(9u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesBuffered());
|
|
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, BasicHalfCloseOrdered) {
|
| @@ -451,12 +448,13 @@ TEST_F(QuicSequencerRandomTest, RandomFramesNoDroppingBackup) {
|
| bool has_bytes = sequencer_->HasBytesToRead();
|
| iovec peek_iov[20];
|
| int iovs_peeked = sequencer_->GetReadableRegions(peek_iov, 20);
|
| + QuicTime timestamp = clock_.ApproximateNow();
|
| if (has_bytes) {
|
| ASSERT_LT(0, iovs_peeked);
|
| - ASSERT_TRUE(sequencer_->GetReadableRegion(peek_iov, nullptr));
|
| + ASSERT_TRUE(sequencer_->GetReadableRegion(peek_iov, ×tamp));
|
| } else {
|
| ASSERT_EQ(0, iovs_peeked);
|
| - ASSERT_FALSE(sequencer_->GetReadableRegion(peek_iov, nullptr));
|
| + ASSERT_FALSE(sequencer_->GetReadableRegion(peek_iov, ×tamp));
|
| }
|
| int total_bytes_to_peek = arraysize(buffer);
|
| for (int i = 0; i < iovs_peeked; ++i) {
|
| @@ -486,7 +484,7 @@ TEST_F(QuicStreamSequencerTest, MarkConsumed) {
|
| OnFrame(6, "ghi");
|
|
|
| // abcdefghi buffered.
|
| - EXPECT_EQ(9u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(9u, sequencer_->NumBytesBuffered());
|
|
|
| // Peek into the data.
|
| const char* expected[] = {"abc", "def", "ghi"};
|
| @@ -498,7 +496,7 @@ TEST_F(QuicStreamSequencerTest, MarkConsumed) {
|
| // Verify data.
|
| const char* expected2[] = {"bc", "def", "ghi"};
|
| ASSERT_TRUE(VerifyReadableRegions(expected2, arraysize(expected2)));
|
| - EXPECT_EQ(8u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(8u, sequencer_->NumBytesBuffered());
|
|
|
| // Consume 2 bytes.
|
| sequencer_->MarkConsumed(2);
|
| @@ -506,7 +504,7 @@ TEST_F(QuicStreamSequencerTest, MarkConsumed) {
|
| // Verify data.
|
| const char* expected3[] = {"def", "ghi"};
|
| ASSERT_TRUE(VerifyReadableRegions(expected3, arraysize(expected3)));
|
| - EXPECT_EQ(6u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(6u, sequencer_->NumBytesBuffered());
|
|
|
| // Consume 5 bytes.
|
| sequencer_->MarkConsumed(5);
|
| @@ -514,7 +512,7 @@ TEST_F(QuicStreamSequencerTest, MarkConsumed) {
|
| // Verify data.
|
| const char* expected4[] = {"i"};
|
| ASSERT_TRUE(VerifyReadableRegions(expected4, arraysize(expected4)));
|
| - EXPECT_EQ(1u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(1u, sequencer_->NumBytesBuffered());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, MarkConsumedError) {
|
| @@ -551,7 +549,9 @@ TEST_F(QuicStreamSequencerTest, MarkConsumedWithMissingPacket) {
|
| sequencer_->MarkConsumed(6);
|
| }
|
|
|
| -TEST_F(QuicStreamSequencerTest, FrameOverlapsBufferedData) {
|
| +TEST(QuicFrameListTest, FrameOverlapsBufferedData) {
|
| + QuicFrameList buffer;
|
| +
|
| // Ensure that FrameOverlapsBufferedData returns appropriate responses when
|
| // there is existing data buffered.
|
| const int kBufferedOffset = 10;
|
| @@ -560,33 +560,40 @@ TEST_F(QuicStreamSequencerTest, FrameOverlapsBufferedData) {
|
| string data(kNewDataLength, '.');
|
|
|
| // No overlap if no buffered frames.
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| + EXPECT_EQ(0u, buffer.BytesBuffered());
|
| + size_t bytes_written;
|
| // Add a buffered frame.
|
| - sequencer_->OnStreamFrame(QuicStreamFrame(1, false, kBufferedOffset,
|
| - string(kBufferedDataLength, '.')));
|
| + buffer.OnStreamData(
|
| + kBufferedOffset,
|
| + StringPiece(string(kBufferedDataLength, '.').data(), kBufferedDataLength),
|
| + QuicTime::Zero(), &bytes_written);
|
|
|
| // New byte range partially overlaps with buffered frame, start offset
|
| // preceding buffered frame.
|
| - EXPECT_TRUE(FrameOverlapsBufferedData(
|
| - QuicStreamFrame(1, false, kBufferedOffset - 1, data)));
|
| - EXPECT_TRUE(FrameOverlapsBufferedData(
|
| + EXPECT_TRUE(QuicStreamSequencerPeer::FrameOverlapsBufferedData(
|
| + &buffer, QuicStreamFrame(1, false, kBufferedOffset - 1, data)));
|
| + EXPECT_TRUE(QuicStreamSequencerPeer::FrameOverlapsBufferedData(
|
| + &buffer,
|
| QuicStreamFrame(1, false, kBufferedOffset - kNewDataLength + 1, data)));
|
|
|
| // New byte range partially overlaps with buffered frame, start offset inside
|
| // existing buffered frame.
|
| - EXPECT_TRUE(FrameOverlapsBufferedData(
|
| - QuicStreamFrame(1, false, kBufferedOffset + 1, data)));
|
| - EXPECT_TRUE(FrameOverlapsBufferedData(QuicStreamFrame(
|
| - 1, false, kBufferedOffset + kBufferedDataLength - 1, data)));
|
| -
|
| - // New byte range entirely outside of buffered frames, start offset preceeding
|
| - // buffered frame.
|
| - EXPECT_FALSE(FrameOverlapsBufferedData(
|
| + EXPECT_TRUE(QuicStreamSequencerPeer::FrameOverlapsBufferedData(
|
| + &buffer, QuicStreamFrame(1, false, kBufferedOffset + 1, data)));
|
| + EXPECT_TRUE(QuicStreamSequencerPeer::FrameOverlapsBufferedData(
|
| + &buffer, QuicStreamFrame(
|
| + 1, false, kBufferedOffset + kBufferedDataLength - 1, data)));
|
| +
|
| + // New byte range entirely outside of buffered frames, start offset
|
| + // preceeding buffered frame.
|
| + EXPECT_FALSE(QuicStreamSequencerPeer::FrameOverlapsBufferedData(
|
| + &buffer,
|
| QuicStreamFrame(1, false, kBufferedOffset - kNewDataLength, data)));
|
|
|
| // New byte range entirely outside of buffered frames, start offset later than
|
| // buffered frame.
|
| - EXPECT_FALSE(FrameOverlapsBufferedData(
|
| + EXPECT_FALSE(QuicStreamSequencerPeer::FrameOverlapsBufferedData(
|
| + &buffer,
|
| QuicStreamFrame(1, false, kBufferedOffset + kBufferedDataLength, data)));
|
| }
|
|
|
| @@ -598,7 +605,6 @@ TEST_F(QuicStreamSequencerTest, DontAcceptOverlappingFrames) {
|
| sequencer_->OnStreamFrame(frame1);
|
|
|
| QuicStreamFrame frame2(kClientDataStreamId1, false, 2, StringPiece("hello"));
|
| - EXPECT_TRUE(FrameOverlapsBufferedData(frame2));
|
| EXPECT_CALL(stream_, CloseConnectionWithDetails(QUIC_INVALID_STREAM_FRAME, _))
|
| .Times(1);
|
| sequencer_->OnStreamFrame(frame2);
|
| @@ -616,16 +622,16 @@ TEST_F(QuicStreamSequencerTest, InOrderTimestamps) {
|
| clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1));
|
| QuicTime t1 = clock_.ApproximateNow();
|
| OnFrame(0, "abc");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesBuffered());
|
| // Buffer the second frame.
|
| QuicTime t2 = clock_.ApproximateNow();
|
| OnFrame(3, "def");
|
| clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1));
|
| - EXPECT_EQ(2u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(6u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(6u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(6u, sequencer_->NumBytesBuffered());
|
|
|
| iovec iovecs[1];
|
| QuicTime timestamp(QuicTime::Zero());
|
| @@ -633,16 +639,16 @@ TEST_F(QuicStreamSequencerTest, InOrderTimestamps) {
|
| EXPECT_TRUE(sequencer_->GetReadableRegion(iovecs, ×tamp));
|
| EXPECT_EQ(timestamp, t1);
|
| QuicStreamSequencerTest::ConsumeData(3);
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesBuffered());
|
|
|
| EXPECT_TRUE(sequencer_->GetReadableRegion(iovecs, ×tamp));
|
| EXPECT_EQ(timestamp, t2);
|
| QuicStreamSequencerTest::ConsumeData(3);
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| - EXPECT_EQ(6u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| + EXPECT_EQ(6u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesBuffered());
|
| }
|
|
|
| TEST_F(QuicStreamSequencerTest, OutOfOrderTimestamps) {
|
| @@ -657,16 +663,16 @@ TEST_F(QuicStreamSequencerTest, OutOfOrderTimestamps) {
|
| clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1));
|
| QuicTime t1 = clock_.ApproximateNow();
|
| OnFrame(3, "def");
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesBuffered());
|
| // Buffer the second frame
|
| QuicTime t2 = clock_.ApproximateNow();
|
| OnFrame(0, "abc");
|
| clock_.AdvanceTime(QuicTime::Delta::FromSeconds(1));
|
| - EXPECT_EQ(2u, NumBufferedFrames());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(6u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(6u, NumBufferedBytes());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(6u, sequencer_->NumBytesBuffered());
|
|
|
| iovec iovecs[1];
|
| QuicTime timestamp(QuicTime::Zero());
|
| @@ -674,16 +680,16 @@ TEST_F(QuicStreamSequencerTest, OutOfOrderTimestamps) {
|
| EXPECT_TRUE(sequencer_->GetReadableRegion(iovecs, ×tamp));
|
| EXPECT_EQ(timestamp, t2);
|
| QuicStreamSequencerTest::ConsumeData(3);
|
| - EXPECT_EQ(1u, NumBufferedFrames());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(3u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(3u, NumBufferedBytes());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(3u, sequencer_->NumBytesBuffered());
|
|
|
| EXPECT_TRUE(sequencer_->GetReadableRegion(iovecs, ×tamp));
|
| EXPECT_EQ(timestamp, t1);
|
| QuicStreamSequencerTest::ConsumeData(3);
|
| - EXPECT_EQ(0u, NumBufferedFrames());
|
| - EXPECT_EQ(6u, sequencer_->num_bytes_consumed());
|
| - EXPECT_EQ(0u, sequencer_->num_bytes_buffered());
|
| + EXPECT_EQ(0u, NumBufferedBytes());
|
| + EXPECT_EQ(6u, sequencer_->NumBytesConsumed());
|
| + EXPECT_EQ(0u, sequencer_->NumBytesBuffered());
|
| }
|
|
|
| } // namespace
|
|
|