Remove RunUntilIdle from WaitForResult.
Remove RunLoop::RunUntilIdle() from
TestCompletionCallbackBaseInternal::WaitForResult()
as suggested by a TODO.
Review-Url: https://codereview.chromium.org/2607123002
Cr-Commit-Position: refs/heads/master@{#441538}
diff --git a/net/spdy/spdy_http_stream_unittest.cc b/net/spdy/spdy_http_stream_unittest.cc
index 8dd3503..812db8d 100644
--- a/net/spdy/spdy_http_stream_unittest.cc
+++ b/net/spdy/spdy_http_stream_unittest.cc
@@ -304,6 +304,10 @@
EXPECT_TRUE(HasSpdySession(http_session_->spdy_session_pool(), key_));
EXPECT_LE(0, callback2.WaitForResult());
+
+ // Perform all async reads.
+ base::RunLoop().RunUntilIdle();
+
TestLoadTimingReused(*http_stream2);
EXPECT_TRUE(http_stream2->GetLoadTimingInfo(&load_timing_info2));
EXPECT_EQ(load_timing_info1.socket_log_id, load_timing_info2.socket_log_id);
@@ -343,7 +347,7 @@
SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0));
MockRead reads[] = {
- CreateMockRead(resp, 2), CreateMockRead(body, 3),
+ CreateMockRead(resp, 2), CreateMockRead(body, 3, SYNCHRONOUS),
MockRead(SYNCHRONOUS, 0, 4) // EOF
};
@@ -401,7 +405,7 @@
SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0));
MockRead reads[] = {
- CreateMockRead(resp, 2), CreateMockRead(chunk, 3),
+ CreateMockRead(resp, 2), CreateMockRead(chunk, 3, SYNCHRONOUS),
MockRead(SYNCHRONOUS, 0, 4) // EOF
};
@@ -950,6 +954,9 @@
int result = http_stream.SendRequest(headers, &response, callback.callback());
EXPECT_THAT(callback.GetResult(result), IsError(ERR_FAILED));
+ // Run posted SpdyHttpStream::ResetStreamInternal() task.
+ base::RunLoop().RunUntilIdle();
+
// Because the server has not closed the connection yet, there shouldn't be
// a stream but a session in the pool
EXPECT_FALSE(HasSpdySession(http_session_->spdy_session_pool(), key_));
@@ -1001,6 +1008,9 @@
EXPECT_THAT(result, IsError(ERR_IO_PENDING));
EXPECT_THAT(callback.GetResult(result), IsError(ERR_FAILED));
+ // Run posted SpdyHttpStream::ResetStreamInternal() task.
+ base::RunLoop().RunUntilIdle();
+
// Because the server has closed the connection, there shouldn't be a session
// in the pool anymore.
EXPECT_FALSE(HasSpdySession(http_session_->spdy_session_pool(), key_));
@@ -1048,6 +1058,9 @@
// The callback cancels |http_stream|.
EXPECT_THAT(callback.WaitForResult(), IsOk());
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_FALSE(HasSpdySession(http_session_->spdy_session_pool(), key_));
}
diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc
index c7a3c2b4..817a2b1 100644
--- a/net/spdy/spdy_network_transaction_unittest.cc
+++ b/net/spdy/spdy_network_transaction_unittest.cc
@@ -148,6 +148,8 @@
void FinishDefaultTest() {
output_.rv = callback_.WaitForResult();
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
if (output_.rv != OK) {
session_->spdy_session_pool()->CloseCurrentSessions(ERR_ABORTED);
return;
@@ -171,6 +173,8 @@
void FinishDefaultTestWithoutVerification() {
output_.rv = callback_.WaitForResult();
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
if (output_.rv != OK)
session_->spdy_session_pool()->CloseCurrentSessions(ERR_ABORTED);
}
@@ -454,6 +458,9 @@
EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
rv = callback.WaitForResult();
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
+
// Request the pushed path.
HttpNetworkTransaction trans2(DEFAULT_PRIORITY, helper.session());
rv = trans2.Start(&CreateGetPushRequest(), callback.callback(),
@@ -1119,6 +1126,9 @@
out.rv = callback1.WaitForResult();
ASSERT_THAT(out.rv, IsOk());
+ // Finish async network reads and writes associated with |trans1|.
+ base::RunLoop().RunUntilIdle();
+
out.rv = trans2.Start(&httpreq2, callback2.callback(), log);
ASSERT_THAT(out.rv, IsError(ERR_IO_PENDING));
out.rv = trans3.Start(&httpreq3, callback3.callback(), log);
@@ -1750,6 +1760,9 @@
std::string response_body;
EXPECT_THAT(ReadTransaction(helper.trans(), &response_body), IsOk());
EXPECT_EQ(kUploadData, response_body);
+
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
helper.VerifyDataConsumed();
}
@@ -2005,7 +2018,8 @@
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
MockWrite writes[] = {CreateMockWrite(req)};
- MockWrite writes2[] = {CreateMockWrite(req, 0)};
+ MockWrite writes2[] = {CreateMockWrite(req, 0),
+ MockWrite(SYNCHRONOUS, ERR_IO_PENDING, 3)};
// The indicated length of this frame is longer than its actual length. When
// the session receives an empty frame after this one, it shuts down the
@@ -2528,8 +2542,8 @@
spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR));
MockRead reads[] = {
CreateMockRead(stream1_reply, 1),
- CreateMockRead(stream2_syn, 2),
- CreateMockRead(stream2_rst, 3),
+ CreateMockRead(stream2_syn, 2, SYNCHRONOUS),
+ CreateMockRead(stream2_rst, 3, SYNCHRONOUS),
CreateMockRead(stream1_body, 4, SYNCHRONOUS),
MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a pause
};
@@ -2744,6 +2758,9 @@
rv = callback.WaitForResult();
EXPECT_THAT(rv, IsOk());
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
+
// Verify that we consumed all test data.
EXPECT_TRUE(data.AllReadDataConsumed());
EXPECT_TRUE(data.AllWriteDataConsumed());
@@ -2791,6 +2808,9 @@
rv = callback.WaitForResult();
EXPECT_THAT(rv, IsOk());
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
+
// Verify that we consumed all test data.
EXPECT_TRUE(data.AllReadDataConsumed());
EXPECT_TRUE(data.AllWriteDataConsumed());
@@ -2841,6 +2861,9 @@
rv = callback.WaitForResult();
EXPECT_THAT(rv, IsOk());
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
+
// Verify that we consumed all test data.
EXPECT_TRUE(data.AllReadDataConsumed());
EXPECT_TRUE(data.AllWriteDataConsumed());
@@ -2911,6 +2934,10 @@
NetLogWithSource());
rv = callback.GetResult(rv);
EXPECT_THAT(rv, IsOk());
+
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
+
HttpResponseInfo response = *trans->GetResponseInfo();
EXPECT_TRUE(response.headers);
EXPECT_EQ("HTTP/1.1 200", response.headers->GetStatusLine());
@@ -4366,7 +4393,7 @@
SpdySerializedFrame body_data(spdy_util_.ConstructSpdyDataFrame(3, true));
MockRead spdy_reads[] = {
CreateMockRead(resp_authentication, 1),
- CreateMockRead(body_authentication, 2),
+ CreateMockRead(body_authentication, 2, SYNCHRONOUS),
CreateMockRead(resp_data, 4),
CreateMockRead(body_data, 5),
MockRead(ASYNC, 0, 6),
@@ -4724,6 +4751,9 @@
EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
rv = callback.WaitForResult();
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
+
// Read the response body.
std::string result;
ReadResult(trans, &result);
@@ -4766,9 +4796,9 @@
2, kPushedData, strlen(kPushedData), true));
MockRead reads[] = {
CreateMockRead(reply, 1),
- CreateMockRead(push, 2),
- CreateMockRead(body, 3),
- CreateMockRead(pushed_body, 4),
+ CreateMockRead(push, 2, SYNCHRONOUS),
+ CreateMockRead(body, 3, SYNCHRONOUS),
+ CreateMockRead(pushed_body, 4, SYNCHRONOUS),
MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5),
};
@@ -4879,9 +4909,9 @@
MockRead reads1[] = {
CreateMockRead(reply1, 1),
- CreateMockRead(push, 2),
- CreateMockRead(body1, 3),
- CreateMockRead(pushed_body, 4),
+ CreateMockRead(push, 2, SYNCHRONOUS),
+ CreateMockRead(body1, 3, SYNCHRONOUS),
+ CreateMockRead(pushed_body, 4, SYNCHRONOUS),
MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5),
};
@@ -5080,6 +5110,9 @@
rv = callback.WaitForResult();
EXPECT_THAT(rv, IsOk());
+ // Finish async network reads.
+ base::RunLoop().RunUntilIdle();
+
// Verify that we consumed all test data.
EXPECT_TRUE(data.AllReadDataConsumed());
EXPECT_TRUE(data.AllWriteDataConsumed());
@@ -5392,6 +5425,9 @@
rv = callback.WaitForResult();
EXPECT_THAT(rv, IsOk());
+ // Finish async network reads.
+ base::RunLoop().RunUntilIdle();
+
SpdyHttpStream* stream =
static_cast<SpdyHttpStream*>(trans->stream_.get());
ASSERT_TRUE(stream);
@@ -5638,6 +5674,10 @@
data.Resume(); // Read in WINDOW_UPDATE frame.
rv = callback.WaitForResult();
+ EXPECT_THAT(rv, IsOk());
+
+ // Finish async network reads.
+ base::RunLoop().RunUntilIdle();
helper.VerifyDataConsumed();
}
diff --git a/net/spdy/spdy_proxy_client_socket_unittest.cc b/net/spdy/spdy_proxy_client_socket_unittest.cc
index 7c09e576..23e030b7 100644
--- a/net/spdy/spdy_proxy_client_socket_unittest.cc
+++ b/net/spdy/spdy_proxy_client_socket_unittest.cc
@@ -837,8 +837,8 @@
SpdySerializedFrame msg1(ConstructBodyFrame(kMsg1, kLen1));
SpdySerializedFrame msg2(ConstructBodyFrame(kMsg2, kLen2));
MockRead reads[] = {
- CreateMockRead(resp, 1, ASYNC), CreateMockRead(msg1, 2, ASYNC),
- CreateMockRead(msg2, 3, ASYNC), MockRead(ASYNC, 0, 4), // EOF
+ CreateMockRead(resp, 1, ASYNC), CreateMockRead(msg1, 2, SYNCHRONOUS),
+ CreateMockRead(msg2, 3, SYNCHRONOUS), MockRead(SYNCHRONOUS, 0, 4), // EOF
};
Initialize(reads, arraysize(reads), writes, arraysize(writes));
diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc
index 4d10961f..dc7d422 100644
--- a/net/spdy/spdy_session_unittest.cc
+++ b/net/spdy/spdy_session_unittest.cc
@@ -1213,6 +1213,11 @@
EXPECT_THAT(delegate.WaitForClose(), IsOk());
EXPECT_EQ("hello!", delegate.TakeReceivedData());
+ // Finish async network reads/writes.
+ base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(data.AllWriteDataConsumed());
+ EXPECT_TRUE(data.AllReadDataConsumed());
+
// Session is destroyed.
EXPECT_FALSE(session_);
}
@@ -4362,6 +4367,10 @@
EXPECT_TRUE(delegate.send_headers_completed());
EXPECT_EQ("200", delegate.GetResponseHeaderValue(":status"));
EXPECT_EQ(std::string(), delegate.TakeReceivedData());
+
+ // Run SpdySession::PumpWriteLoop which destroys |session_|.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_FALSE(session_);
EXPECT_TRUE(data.AllWriteDataConsumed());
}
diff --git a/net/spdy/spdy_stream_unittest.cc b/net/spdy/spdy_stream_unittest.cc
index 330f75e..d9d58a6 100644
--- a/net/spdy/spdy_stream_unittest.cc
+++ b/net/spdy/spdy_stream_unittest.cc
@@ -591,6 +591,9 @@
EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_SPDY_PROTOCOL_ERROR));
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}
@@ -706,6 +709,9 @@
EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_SPDY_PROTOCOL_ERROR));
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}
@@ -772,6 +778,9 @@
EXPECT_EQ(std::string(kPostBody, kPostBodyLength),
delegate.TakeReceivedData());
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}
@@ -875,6 +884,9 @@
EXPECT_EQ(std::string(kPostBody, kPostBodyLength),
delegate.TakeReceivedData());
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}
@@ -934,6 +946,9 @@
EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_SPDY_PROTOCOL_ERROR));
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}
@@ -991,6 +1006,9 @@
EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_SPDY_PROTOCOL_ERROR));
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}
@@ -1045,6 +1063,9 @@
EXPECT_EQ(std::string(kPostBody, kPostBodyLength),
delegate.TakeReceivedData());
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}
@@ -1092,6 +1113,9 @@
EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_SPDY_PROTOCOL_ERROR));
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}
@@ -1144,6 +1168,9 @@
EXPECT_EQ(std::string(kPostBody, kPostBodyLength),
delegate.TakeReceivedData());
+ // Finish async network reads and writes.
+ base::RunLoop().RunUntilIdle();
+
EXPECT_TRUE(data.AllWriteDataConsumed());
EXPECT_TRUE(data.AllReadDataConsumed());
}