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

Unified Diff: net/quic/reliable_quic_stream_test.cc

Issue 1470713003: Landing Recent QUIC changes until and including Mon Nov 16 14:15:48 2015 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding NET_EXPORT_PRIVATE to DelegateInterface. Created 5 years, 1 month 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
Index: net/quic/reliable_quic_stream_test.cc
diff --git a/net/quic/reliable_quic_stream_test.cc b/net/quic/reliable_quic_stream_test.cc
index 46a3fff525ccabc56c2f1ecb0457ceac6aed028a..03442b37fe7b0ec68e93f26cc9a1611c669da9f8 100644
--- a/net/quic/reliable_quic_stream_test.cc
+++ b/net/quic/reliable_quic_stream_test.cc
@@ -27,6 +27,7 @@ using testing::AtLeast;
using testing::CreateFunctor;
using testing::InSequence;
using testing::Invoke;
+using testing::DoAll;
using testing::Return;
using testing::StrictMock;
using testing::WithArgs;
@@ -59,9 +60,7 @@ class TestStream : public ReliableQuicStream {
return should_process_data_ ? data_len : 0;
}
- QuicPriority EffectivePriority() const override {
- return QuicUtils::HighestPriority();
- }
+ SpdyPriority Priority() const override { return net::kHighestPriority; }
using ReliableQuicStream::WriteOrBufferData;
using ReliableQuicStream::CloseWriteSide;
@@ -140,6 +139,17 @@ class ReliableQuicStreamTest : public ::testing::TestWithParam<bool> {
write_blocked_list_->HasWriteBlockedDataStreams();
}
+ QuicConsumedData CloseStreamOnWriteError(
+ QuicStreamId id,
+ QuicIOVector /*iov*/,
+ QuicStreamOffset /*offset*/,
+ bool /*fin*/,
+ FecProtection /*fec_protection*/,
+ QuicAckListenerInterface* /*ack_notifier_delegate*/) {
+ session_->CloseStream(id);
+ return QuicConsumedData(1, false);
+ }
+
protected:
MockConnectionHelper helper_;
MockConnection* connection_;
@@ -211,6 +221,18 @@ TEST_F(ReliableQuicStreamTest, BlockIfSoloFinNotConsumed) {
ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams());
}
+TEST_F(ReliableQuicStreamTest, CloseOnPartialWrite) {
+ Initialize(kShouldProcessData);
+
+ // Write some data and no fin. However, while writing the data
+ // close the stream and verify that MarkConnectionLevelWriteBlocked does not
+ // crash with an unknown stream.
+ EXPECT_CALL(*session_, WritevData(kTestStreamId, _, _, _, _, _))
+ .WillOnce(Invoke(this, &ReliableQuicStreamTest::CloseStreamOnWriteError));
+ stream_->WriteOrBufferData(StringPiece(kData1, 2), false, nullptr);
+ ASSERT_EQ(0u, write_blocked_list_->NumBlockedStreams());
+}
+
TEST_F(ReliableQuicStreamTest, WriteOrBufferData) {
Initialize(kShouldProcessData);

Powered by Google App Engine
This is Rietveld 408576698