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

Unified Diff: net/quic/quic_data_stream_test.cc

Issue 100173005: Break out the basic reliable QUIC stream functionality from the (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_data_stream.cc ('k') | net/quic/quic_reliable_client_stream.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_data_stream_test.cc
diff --git a/net/quic/reliable_quic_stream_test.cc b/net/quic/quic_data_stream_test.cc
similarity index 75%
copy from net/quic/reliable_quic_stream_test.cc
copy to net/quic/quic_data_stream_test.cc
index a8bd5c917d50641645f3de2ba748ae47986575ee..3e46aceca9a323a29406b9fa87f470969190596d 100644
--- a/net/quic/reliable_quic_stream_test.cc
+++ b/net/quic/quic_data_stream_test.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "net/quic/reliable_quic_stream.h"
+#include "net/quic/quic_data_stream.h"
#include "net/quic/quic_ack_notifier.h"
#include "net/quic/quic_connection.h"
@@ -27,20 +27,17 @@ namespace net {
namespace test {
namespace {
-const char kData1[] = "FooAndBar";
-const char kData2[] = "EepAndBaz";
-const size_t kDataLen = 9;
const QuicGuid kGuid = 42;
const QuicGuid kStreamId = 3;
const bool kIsServer = true;
const bool kShouldProcessData = true;
-class TestStream : public ReliableQuicStream {
+class TestStream : public QuicDataStream {
public:
TestStream(QuicStreamId id,
QuicSession* session,
bool should_process_data)
- : ReliableQuicStream(id, session),
+ : QuicDataStream(id, session),
should_process_data_(should_process_data) {}
virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE {
@@ -61,9 +58,9 @@ class TestStream : public ReliableQuicStream {
string data_;
};
-class ReliableQuicStreamTest : public ::testing::TestWithParam<bool> {
+class QuicDataStreamTest : public ::testing::TestWithParam<bool> {
public:
- ReliableQuicStreamTest() {
+ QuicDataStreamTest() {
headers_[":host"] = "www.google.com";
headers_[":path"] = "/index.hml";
headers_[":scheme"] = "https";
@@ -119,114 +116,7 @@ class ReliableQuicStreamTest : public ::testing::TestWithParam<bool> {
WriteBlockedList<QuicStreamId>* write_blocked_list_;
};
-TEST_F(ReliableQuicStreamTest, WriteAllData) {
- Initialize(kShouldProcessData);
-
- connection_->options()->max_packet_length =
- 1 + QuicPacketCreator::StreamFramePacketOverhead(
- connection_->version(), PACKET_8BYTE_GUID, !kIncludeVersion,
- PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP);
- EXPECT_CALL(*session_, WritevData(kStreamId, _, 1, _, _, _)).WillOnce(
- Return(QuicConsumedData(kDataLen, true)));
- stream_->WriteOrBufferData(kData1, false);
- EXPECT_FALSE(write_blocked_list_->HasWriteBlockedStreams());
-}
-
-// TODO(rtenneti): Death tests crash on OS_ANDROID.
-#if GTEST_HAS_DEATH_TEST && !defined(NDEBUG) && !defined(OS_ANDROID)
-TEST_F(ReliableQuicStreamTest, NoBlockingIfNoDataOrFin) {
- Initialize(kShouldProcessData);
-
- // Write no data and no fin. If we consume nothing we should not be write
- // blocked.
- EXPECT_DEBUG_DEATH({
- EXPECT_CALL(*session_, WritevData(kStreamId, _, 1, _, _, _)).WillOnce(
- Return(QuicConsumedData(0, false)));
- stream_->WriteOrBufferData(StringPiece(), false);
- EXPECT_FALSE(write_blocked_list_->HasWriteBlockedStreams());
- }, "");
-}
-#endif // GTEST_HAS_DEATH_TEST && !defined(NDEBUG) && !defined(OS_ANDROID)
-
-TEST_F(ReliableQuicStreamTest, BlockIfOnlySomeDataConsumed) {
- Initialize(kShouldProcessData);
-
- // Write some data and no fin. If we consume some but not all of the data,
- // we should be write blocked a not all the data was consumed.
- EXPECT_CALL(*session_, WritevData(kStreamId, _, 1, _, _, _)).WillOnce(
- Return(QuicConsumedData(1, false)));
- stream_->WriteOrBufferData(StringPiece(kData1, 2), false);
- ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
-}
-
-
-TEST_F(ReliableQuicStreamTest, BlockIfFinNotConsumedWithData) {
- Initialize(kShouldProcessData);
-
- // Write some data and no fin. If we consume all the data but not the fin,
- // we should be write blocked because the fin was not consumed.
- // (This should never actually happen as the fin should be sent out with the
- // last data)
- EXPECT_CALL(*session_, WritevData(kStreamId, _, 1, _, _, _)).WillOnce(
- Return(QuicConsumedData(2, false)));
- stream_->WriteOrBufferData(StringPiece(kData1, 2), true);
- ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
-}
-
-TEST_F(ReliableQuicStreamTest, BlockIfSoloFinNotConsumed) {
- Initialize(kShouldProcessData);
-
- // Write no data and a fin. If we consume nothing we should be write blocked,
- // as the fin was not consumed.
- EXPECT_CALL(*session_, WritevData(kStreamId, _, 1, _, _, _)).WillOnce(
- Return(QuicConsumedData(0, false)));
- stream_->WriteOrBufferData(StringPiece(), true);
- ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
-}
-
-TEST_F(ReliableQuicStreamTest, WriteOrBufferData) {
- Initialize(kShouldProcessData);
-
- EXPECT_FALSE(write_blocked_list_->HasWriteBlockedStreams());
- connection_->options()->max_packet_length =
- 1 + QuicPacketCreator::StreamFramePacketOverhead(
- connection_->version(), PACKET_8BYTE_GUID, !kIncludeVersion,
- PACKET_6BYTE_SEQUENCE_NUMBER, NOT_IN_FEC_GROUP);
- EXPECT_CALL(*session_, WritevData(_, _, 1, _, _, _)).WillOnce(
- Return(QuicConsumedData(kDataLen - 1, false)));
- stream_->WriteOrBufferData(kData1, false);
- EXPECT_TRUE(write_blocked_list_->HasWriteBlockedStreams());
-
- // Queue a bytes_consumed write.
- stream_->WriteOrBufferData(kData2, false);
-
- // Make sure we get the tail of the first write followed by the bytes_consumed
- InSequence s;
- EXPECT_CALL(*session_, WritevData(_, _, 1, _, _, _)).
- WillOnce(Return(QuicConsumedData(1, false)));
- EXPECT_CALL(*session_, WritevData(_, _, 1, _, _, _)).
- WillOnce(Return(QuicConsumedData(kDataLen - 2, false)));
- stream_->OnCanWrite();
-
- // And finally the end of the bytes_consumed.
- EXPECT_CALL(*session_, WritevData(_, _, 1, _, _, _)).
- WillOnce(Return(QuicConsumedData(2, true)));
- stream_->OnCanWrite();
-}
-
-TEST_F(ReliableQuicStreamTest, ConnectionCloseAfterStreamClose) {
- Initialize(kShouldProcessData);
-
- stream_->CloseReadSide();
- stream_->CloseWriteSide();
- EXPECT_EQ(QUIC_STREAM_NO_ERROR, stream_->stream_error());
- EXPECT_EQ(QUIC_NO_ERROR, stream_->connection_error());
- stream_->OnConnectionClosed(QUIC_INTERNAL_ERROR, false);
- EXPECT_EQ(QUIC_STREAM_NO_ERROR, stream_->stream_error());
- EXPECT_EQ(QUIC_NO_ERROR, stream_->connection_error());
-}
-
-TEST_F(ReliableQuicStreamTest, ProcessHeaders) {
+TEST_F(QuicDataStreamTest, ProcessHeaders) {
Initialize(kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
@@ -239,7 +129,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeaders) {
stream_->EffectivePriority());
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersWithInvalidHeaderId) {
+TEST_F(QuicDataStreamTest, ProcessHeadersWithInvalidHeaderId) {
Initialize(kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
@@ -251,7 +141,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeadersWithInvalidHeaderId) {
stream_->OnStreamFrame(frame);
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersWithInvalidPriority) {
+TEST_F(QuicDataStreamTest, ProcessHeadersWithInvalidPriority) {
Initialize(kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
@@ -263,7 +153,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeadersWithInvalidPriority) {
stream_->OnStreamFrame(frame);
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersAndBody) {
+TEST_F(QuicDataStreamTest, ProcessHeadersAndBody) {
Initialize(kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
@@ -277,7 +167,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeadersAndBody) {
stream_->data());
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersAndBodyFragments) {
+TEST_F(QuicDataStreamTest, ProcessHeadersAndBodyFragments) {
Initialize(kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
@@ -318,7 +208,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeadersAndBodyFragments) {
stream_->EffectivePriority());
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersAndBodyReadv) {
+TEST_F(QuicDataStreamTest, ProcessHeadersAndBodyReadv) {
Initialize(!kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
@@ -348,7 +238,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeadersAndBodyReadv) {
EXPECT_EQ(body, string(buffer, bytes_read));
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersAndBodyIncrementalReadv) {
+TEST_F(QuicDataStreamTest, ProcessHeadersAndBodyIncrementalReadv) {
Initialize(!kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
@@ -374,7 +264,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeadersAndBodyIncrementalReadv) {
}
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersUsingReadvWithMultipleIovecs) {
+TEST_F(QuicDataStreamTest, ProcessHeadersUsingReadvWithMultipleIovecs) {
Initialize(!kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
@@ -404,7 +294,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeadersUsingReadvWithMultipleIovecs) {
}
}
-TEST_F(ReliableQuicStreamTest, ProcessCorruptHeadersEarly) {
+TEST_F(QuicDataStreamTest, ProcessCorruptHeadersEarly) {
Initialize(kShouldProcessData);
string compressed_headers1 = compressor_->CompressHeadersWithPriority(
@@ -446,7 +336,7 @@ TEST_F(ReliableQuicStreamTest, ProcessCorruptHeadersEarly) {
EXPECT_EQ("", stream2_->data());
}
-TEST_F(ReliableQuicStreamTest, ProcessPartialHeadersEarly) {
+TEST_F(QuicDataStreamTest, ProcessPartialHeadersEarly) {
Initialize(kShouldProcessData);
string compressed_headers1 = compressor_->CompressHeadersWithPriority(
@@ -499,7 +389,7 @@ TEST_F(ReliableQuicStreamTest, ProcessPartialHeadersEarly) {
EXPECT_EQ(decompressed_headers2, stream2_->data());
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersEarly) {
+TEST_F(QuicDataStreamTest, ProcessHeadersEarly) {
Initialize(kShouldProcessData);
string compressed_headers1 = compressor_->CompressHeadersWithPriority(
@@ -537,7 +427,7 @@ TEST_F(ReliableQuicStreamTest, ProcessHeadersEarly) {
EXPECT_EQ(decompressed_headers2, stream2_->data());
}
-TEST_F(ReliableQuicStreamTest, ProcessHeadersDelay) {
+TEST_F(QuicDataStreamTest, ProcessHeadersDelay) {
Initialize(!kShouldProcessData);
string compressed_headers = compressor_->CompressHeadersWithPriority(
« no previous file with comments | « net/quic/quic_data_stream.cc ('k') | net/quic/quic_reliable_client_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698