Chromium Code Reviews| Index: net/spdy/spdy_network_transaction_unittest.cc |
| diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc |
| index 3c2073cfec610c66fbcb777871c978946eadfe69..f5ceb0c27d506f0af3f160ecfaea3a154e23ca11 100644 |
| --- a/net/spdy/spdy_network_transaction_unittest.cc |
| +++ b/net/spdy/spdy_network_transaction_unittest.cc |
| @@ -268,14 +268,9 @@ class SpdyNetworkTransactionTest |
| // should end with an empty read, and that read needs to be processed to |
| // ensure proper deletion of the spdy_session_pool. |
| void VerifyDataConsumed() { |
| - for (DataVector::iterator it = data_vector_.begin(); |
| - it != data_vector_.end(); ++it) { |
| - EXPECT_TRUE((*it)->AllReadDataConsumed()) |
| - << "Read count: " << (*it)->read_count() |
| - << " Read index: " << (*it)->read_index(); |
| - EXPECT_TRUE((*it)->AllWriteDataConsumed()) |
| - << "Write count: " << (*it)->write_count() |
| - << " Write index: " << (*it)->write_index(); |
| + for (const SocketDataProvider* provider : data_vector_) { |
| + EXPECT_TRUE(provider->AllReadDataConsumed()); |
| + EXPECT_TRUE(provider->AllWriteDataConsumed()); |
| } |
| } |
| @@ -283,18 +278,13 @@ class SpdyNetworkTransactionTest |
| // processed. In that case we want to explicitly ensure that the reads were |
| // not processed. |
| void VerifyDataNotConsumed() { |
| - for (DataVector::iterator it = data_vector_.begin(); |
| - it != data_vector_.end(); ++it) { |
| - EXPECT_TRUE(!(*it)->AllReadDataConsumed()) |
| - << "Read count: " << (*it)->read_count() |
| - << " Read index: " << (*it)->read_index(); |
| - EXPECT_TRUE(!(*it)->AllWriteDataConsumed()) |
| - << "Write count: " << (*it)->write_count() |
| - << " Write index: " << (*it)->write_index(); |
| + for (const SocketDataProvider* provider : data_vector_) { |
| + EXPECT_FALSE(provider->AllReadDataConsumed()); |
| + EXPECT_FALSE(provider->AllWriteDataConsumed()); |
| } |
| } |
| - void RunToCompletion(StaticSocketDataProvider* data) { |
| + void RunToCompletion(SocketDataProvider* data) { |
| RunPreTestSetup(); |
| AddData(data); |
| RunDefaultTest(); |
| @@ -302,7 +292,7 @@ class SpdyNetworkTransactionTest |
| } |
| void RunToCompletionWithSSLData( |
| - StaticSocketDataProvider* data, |
| + SocketDataProvider* data, |
| scoped_ptr<SSLSocketDataProvider> ssl_provider) { |
| RunPreTestSetup(); |
| AddDataWithSSLSocketDataProvider(data, ssl_provider.Pass()); |
| @@ -310,7 +300,7 @@ class SpdyNetworkTransactionTest |
| VerifyDataConsumed(); |
| } |
| - void AddData(StaticSocketDataProvider* data) { |
| + void AddData(SocketDataProvider* data) { |
| scoped_ptr<SSLSocketDataProvider> ssl_provider( |
| new SSLSocketDataProvider(ASYNC, OK)); |
| ssl_provider->cert = |
| @@ -319,7 +309,7 @@ class SpdyNetworkTransactionTest |
| } |
| void AddDataWithSSLSocketDataProvider( |
| - StaticSocketDataProvider* data, |
| + SocketDataProvider* data, |
| scoped_ptr<SSLSocketDataProvider> ssl_provider) { |
| DCHECK(!deterministic_); |
| data_vector_.push_back(data); |
| @@ -387,16 +377,16 @@ class SpdyNetworkTransactionTest |
| } |
| private: |
| - typedef std::vector<StaticSocketDataProvider*> DataVector; |
| + typedef std::vector<SocketDataProvider*> DataVector; |
| typedef ScopedVector<SSLSocketDataProvider> SSLVector; |
| - typedef ScopedVector<StaticSocketDataProvider> AlternateVector; |
| + typedef ScopedVector<SocketDataProvider> AlternateVector; |
| typedef ScopedVector<DeterministicSocketData> AlternateDeterministicVector; |
| HttpRequestInfo request_; |
| RequestPriority priority_; |
| scoped_ptr<SpdySessionDependencies> session_deps_; |
| scoped_refptr<HttpNetworkSession> session_; |
| TransactionHelperResult output_; |
| - scoped_ptr<StaticSocketDataProvider> first_transaction_; |
| + scoped_ptr<SocketDataProvider> first_transaction_; |
| SSLVector ssl_vector_; |
| TestCompletionCallback callback_; |
| scoped_ptr<HttpNetworkTransaction> trans_; |
| @@ -563,7 +553,7 @@ class SpdyNetworkTransactionTest |
| // to skip over data destined for other transactions while we consume |
| // the data for |trans|. |
| int ReadResult(HttpNetworkTransaction* trans, |
| - StaticSocketDataProvider* data, |
| + SocketDataProvider* data, |
| std::string* result) { |
| const int kSize = 3000; |
| @@ -573,12 +563,6 @@ class SpdyNetworkTransactionTest |
| while (true) { |
| int rv = trans->Read(buf.get(), kSize, callback.callback()); |
| if (rv == ERR_IO_PENDING) { |
| - // Multiple transactions may be in the data set. Keep pulling off |
| - // reads until we complete our callback. |
| - while (!callback.have_result()) { |
| - data->CompleteRead(); |
| - base::RunLoop().RunUntilIdle(); |
| - } |
| rv = callback.WaitForResult(); |
| } else if (rv <= 0) { |
| break; |
| @@ -606,7 +590,7 @@ class SpdyNetworkTransactionTest |
| EXPECT_EQ(0u, spdy_session->num_unclaimed_pushed_streams()); |
| } |
| - void RunServerPushTest(OrderedSocketData* data, |
| + void RunServerPushTest(SequencedSocketData* data, |
| HttpResponseInfo* response, |
| HttpResponseInfo* push_response, |
| const std::string& expected) { |
| @@ -747,18 +731,17 @@ TEST_P(SpdyNetworkTransactionTest, Get) { |
| // Construct the request. |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -774,7 +757,7 @@ TEST_P(SpdyNetworkTransactionTest, GetAtEachPriority) { |
| // Construct the request. |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, p, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| SpdyPriority spdy_prio = 0; |
| EXPECT_TRUE(GetSpdyPriority(spdy_util_.spdy_version(), *req, &spdy_prio)); |
| @@ -824,13 +807,13 @@ TEST_P(SpdyNetworkTransactionTest, GetAtEachPriority) { |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, |
| + arraysize(writes)); |
| HttpRequestInfo http_req = CreateGetRequest(); |
| NormalSpdyTransactionHelper helper(http_req, p, BoundNetLog(), |
| @@ -873,27 +856,26 @@ TEST_P(SpdyNetworkTransactionTest, ThreeGets) { |
| scoped_ptr<SpdyFrame> fbody3(spdy_util_.ConstructSpdyBodyFrame(5, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*req2), |
| - CreateMockWrite(*req3), |
| + CreateMockWrite(*req, 0), |
| + CreateMockWrite(*req2, 3), |
| + CreateMockWrite(*req3, 6), |
| }; |
| MockRead reads[] = { |
| - CreateMockRead(*resp, 1), |
| - CreateMockRead(*body), |
| - CreateMockRead(*resp2, 4), |
| - CreateMockRead(*body2), |
| - CreateMockRead(*resp3, 7), |
| - CreateMockRead(*body3), |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + CreateMockRead(*resp2, 4), |
| + CreateMockRead(*body2, 5), |
| + CreateMockRead(*resp3, 7), |
| + CreateMockRead(*body3, 8), |
| - CreateMockRead(*fbody), |
| - CreateMockRead(*fbody2), |
| - CreateMockRead(*fbody3), |
| + CreateMockRead(*fbody, 9), |
| + CreateMockRead(*fbody2, 10), |
| + CreateMockRead(*fbody3, 11), |
| - MockRead(ASYNC, 0, 0), // EOF |
| + MockRead(ASYNC, 0, 12), // EOF |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| - OrderedSocketData data_placeholder(NULL, 0, NULL, 0); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data_placeholder(NULL, 0, NULL, 0); |
| BoundNetLog log; |
| TransactionHelperResult out; |
| @@ -964,23 +946,21 @@ TEST_P(SpdyNetworkTransactionTest, TwoGetsLateBinding) { |
| scoped_ptr<SpdyFrame> fbody2(spdy_util_.ConstructSpdyBodyFrame(3, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*req2), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*req2, 3), |
| }; |
| MockRead reads[] = { |
| - CreateMockRead(*resp, 1), |
| - CreateMockRead(*body), |
| - CreateMockRead(*resp2, 4), |
| - CreateMockRead(*body2), |
| - CreateMockRead(*fbody), |
| - CreateMockRead(*fbody2), |
| - MockRead(ASYNC, 0, 0), // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + CreateMockRead(*resp2, 4), |
| + CreateMockRead(*body2, 5), |
| + CreateMockRead(*fbody, 6), |
| + CreateMockRead(*fbody2, 7), |
| + MockRead(ASYNC, 0, 8), // EOF |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); |
| - OrderedSocketData data_placeholder(NULL, 0, NULL, 0); |
| + SequencedSocketData data_placeholder(NULL, 0, NULL, 0); |
| data_placeholder.set_connect_data(never_finishing_connect); |
| BoundNetLog log; |
| @@ -1051,24 +1031,23 @@ TEST_P(SpdyNetworkTransactionTest, TwoGetsLateBindingFromPreconnect) { |
| scoped_ptr<SpdyFrame> fbody2(spdy_util_.ConstructSpdyBodyFrame(3, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*req2), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*req2, 3), |
| }; |
| MockRead reads[] = { |
| - CreateMockRead(*resp, 1), |
| - CreateMockRead(*body), |
| - CreateMockRead(*resp2, 4), |
| - CreateMockRead(*body2), |
| - CreateMockRead(*fbody), |
| - CreateMockRead(*fbody2), |
| - MockRead(ASYNC, 0, 0), // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + CreateMockRead(*resp2, 4), |
| + CreateMockRead(*body2, 5), |
| + CreateMockRead(*fbody, 6), |
| + CreateMockRead(*fbody2, 7), |
| + MockRead(ASYNC, 0, 8), // EOF |
| }; |
| - OrderedSocketData preconnect_data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData preconnect_data(reads, arraysize(reads), writes, |
| + arraysize(writes)); |
| MockConnect never_finishing_connect(ASYNC, ERR_IO_PENDING); |
| - OrderedSocketData data_placeholder(NULL, 0, NULL, 0); |
| + SequencedSocketData data_placeholder(NULL, 0, NULL, 0); |
| data_placeholder.set_connect_data(never_finishing_connect); |
| BoundNetLog log; |
| @@ -1170,29 +1149,28 @@ TEST_P(SpdyNetworkTransactionTest, ThreeGetsWithMaxConcurrent) { |
| scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*settings_ack, 2), |
| - CreateMockWrite(*req2), |
| - CreateMockWrite(*req3), |
| + CreateMockWrite(*req, 0), |
| + CreateMockWrite(*settings_ack, 5), |
| + CreateMockWrite(*req2, 6), |
| + CreateMockWrite(*req3, 10), |
| }; |
| MockRead reads[] = { |
| - CreateMockRead(*settings_frame, 1), |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - CreateMockRead(*fbody), |
| - CreateMockRead(*resp2, 8), |
| - CreateMockRead(*body2), |
| - CreateMockRead(*fbody2), |
| - CreateMockRead(*resp3, 13), |
| - CreateMockRead(*body3), |
| - CreateMockRead(*fbody3), |
| + CreateMockRead(*settings_frame, 1), |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + CreateMockRead(*fbody, 4), |
| + CreateMockRead(*resp2, 7), |
| + CreateMockRead(*body2, 8), |
| + CreateMockRead(*fbody2, 9), |
| + CreateMockRead(*resp3, 11), |
| + CreateMockRead(*body3, 12), |
| + CreateMockRead(*fbody3, 13), |
| - MockRead(ASYNC, 0, 0), // EOF |
| + MockRead(ASYNC, 0, 14), // EOF |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| BoundNetLog log; |
| TransactionHelperResult out; |
| @@ -1229,7 +1207,6 @@ TEST_P(SpdyNetworkTransactionTest, ThreeGetsWithMaxConcurrent) { |
| ASSERT_EQ(out.rv, ERR_IO_PENDING); |
| out.rv = callback2.WaitForResult(); |
| ASSERT_EQ(OK, out.rv); |
| - EXPECT_EQ(7U, data.read_index()); // i.e. the third trans was queued |
| out.rv = callback3.WaitForResult(); |
| ASSERT_EQ(OK, out.rv); |
| @@ -1303,39 +1280,40 @@ TEST_P(SpdyNetworkTransactionTest, FourGetsWithMaxConcurrentPriority) { |
| scoped_ptr<SpdyFrame> settings_frame( |
| spdy_util_.ConstructSpdySettings(settings)); |
| scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
| - |
| - MockWrite writes[] = { CreateMockWrite(*req), |
| - CreateMockWrite(*settings_ack, 2), |
| - CreateMockWrite(*req2), |
| - CreateMockWrite(*req4), |
| - CreateMockWrite(*req3), |
| + MockWrite writes[] = { |
| + CreateMockWrite(*req, 0), |
| + CreateMockWrite(*settings_ack, 5), |
| + // By making these synchronous, it guarantees that they are not *started* |
| + // before their sequence number, which in turn verifies that only a single |
| + // request is in-flight at a time. |
| + CreateMockWrite(*req2, 6, SYNCHRONOUS), |
| + CreateMockWrite(*req4, 10, SYNCHRONOUS), |
| + CreateMockWrite(*req3, 13, SYNCHRONOUS), |
| }; |
| MockRead reads[] = { |
| - CreateMockRead(*settings_frame, 1), |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - CreateMockRead(*fbody), |
| - CreateMockRead(*resp2, 8), |
| - CreateMockRead(*body2), |
| - CreateMockRead(*fbody2), |
| - CreateMockRead(*resp4, 14), |
| - CreateMockRead(*fbody4), |
| - CreateMockRead(*resp3, 17), |
| - CreateMockRead(*body3), |
| - CreateMockRead(*fbody3), |
| - |
| - MockRead(ASYNC, 0, 0), // EOF |
| - }; |
| - |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| - |
| + CreateMockRead(*settings_frame, 1), |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + CreateMockRead(*fbody, 4), |
| + CreateMockRead(*resp2, 7), |
| + CreateMockRead(*body2, 8), |
| + CreateMockRead(*fbody2, 9), |
| + CreateMockRead(*resp4, 11), |
| + CreateMockRead(*fbody4, 12), |
| + CreateMockRead(*resp3, 14), |
| + CreateMockRead(*body3, 15), |
| + CreateMockRead(*fbody3, 16), |
| + |
| + MockRead(ASYNC, 0, 17), // EOF |
| + }; |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| BoundNetLog log; |
| TransactionHelperResult out; |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunPreTestSetup(); |
| helper.AddData(&data); |
| + |
| scoped_ptr<HttpNetworkTransaction> trans1( |
| new HttpNetworkTransaction(DEFAULT_PRIORITY, helper.session().get())); |
| scoped_ptr<HttpNetworkTransaction> trans2( |
| @@ -1370,7 +1348,6 @@ TEST_P(SpdyNetworkTransactionTest, FourGetsWithMaxConcurrentPriority) { |
| out.rv = callback2.WaitForResult(); |
| ASSERT_EQ(OK, out.rv); |
| - EXPECT_EQ(data.read_index(), 7U); // i.e. the third & fourth trans queued |
| out.rv = callback3.WaitForResult(); |
| ASSERT_EQ(OK, out.rv); |
| @@ -1417,7 +1394,7 @@ TEST_P(SpdyNetworkTransactionTest, FourGetsWithMaxConcurrentPriority) { |
| } |
| // Similar to ThreeGetsMaxConcurrrent above, however, this test |
| -// deletes a session in the middle of the transaction to insure |
| +// deletes a session in the middle of the transaction to ensure |
| // that we properly remove pendingcreatestream objects from |
| // the spdy_session |
| TEST_P(SpdyNetworkTransactionTest, ThreeGetsWithMaxConcurrentDelete) { |
| @@ -1443,23 +1420,22 @@ TEST_P(SpdyNetworkTransactionTest, ThreeGetsWithMaxConcurrentDelete) { |
| scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*settings_ack, 2), |
| - CreateMockWrite(*req2), |
| + CreateMockWrite(*req, 0), |
| + CreateMockWrite(*settings_ack, 5), |
| + CreateMockWrite(*req2, 6), |
| }; |
| MockRead reads[] = { |
| - CreateMockRead(*settings_frame, 1), |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - CreateMockRead(*fbody), |
| - CreateMockRead(*resp2, 8), |
| - CreateMockRead(*body2), |
| - CreateMockRead(*fbody2), |
| - MockRead(ASYNC, 0, 0), // EOF |
| + CreateMockRead(*settings_frame, 1), |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + CreateMockRead(*fbody, 4), |
| + CreateMockRead(*resp2, 7), |
| + CreateMockRead(*body2, 8), |
| + CreateMockRead(*fbody2, 9), |
| + MockRead(ASYNC, 0, 10), // EOF |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| BoundNetLog log; |
| TransactionHelperResult out; |
| @@ -1496,8 +1472,6 @@ TEST_P(SpdyNetworkTransactionTest, ThreeGetsWithMaxConcurrentDelete) { |
| out.rv = callback2.WaitForResult(); |
| ASSERT_EQ(OK, out.rv); |
| - EXPECT_EQ(8U, data.read_index()); |
| - |
| const HttpResponseInfo* response1 = trans1->GetResponseInfo(); |
| ASSERT_TRUE(response1 != NULL); |
| EXPECT_TRUE(response1->headers.get() != NULL); |
| @@ -1575,22 +1549,21 @@ TEST_P(SpdyNetworkTransactionTest, ThreeGetsWithMaxConcurrentSocketClose) { |
| scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*settings_ack, 2), |
| - CreateMockWrite(*req2), |
| + CreateMockWrite(*req, 0), |
| + CreateMockWrite(*settings_ack, 5), |
| + CreateMockWrite(*req2, 6), |
| }; |
| MockRead reads[] = { |
| - CreateMockRead(*settings_frame, 1), |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - CreateMockRead(*fin_body), |
| - CreateMockRead(*resp2, 8), |
| - MockRead(ASYNC, ERR_CONNECTION_RESET, 0), // Abort! |
| + CreateMockRead(*settings_frame, 1), |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + CreateMockRead(*fin_body, 4), |
| + CreateMockRead(*resp2, 7), |
| + MockRead(ASYNC, ERR_CONNECTION_RESET, 8), // Abort! |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| - OrderedSocketData data_placeholder(NULL, 0, NULL, 0); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data_placeholder(NULL, 0, NULL, 0); |
| BoundNetLog log; |
| TransactionHelperResult out; |
| @@ -1628,8 +1601,6 @@ TEST_P(SpdyNetworkTransactionTest, ThreeGetsWithMaxConcurrentSocketClose) { |
| out.rv = callback3.WaitForResult(); |
| ASSERT_EQ(ERR_ABORTED, out.rv); |
| - EXPECT_EQ(6U, data.read_index()); |
| - |
| const HttpResponseInfo* response1 = trans1.GetResponseInfo(); |
| ASSERT_TRUE(response1 != NULL); |
| EXPECT_TRUE(response1->headers.get() != NULL); |
| @@ -1661,19 +1632,18 @@ TEST_P(SpdyNetworkTransactionTest, Put) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdySyn(1, *put_headers, LOWEST, false, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| + CreateMockWrite(*req, 0), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(request, DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -1695,19 +1665,18 @@ TEST_P(SpdyNetworkTransactionTest, Head) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdySyn(1, *head_headers, LOWEST, false, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| + CreateMockWrite(*req, 0), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(request, DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -1723,19 +1692,17 @@ TEST_P(SpdyNetworkTransactionTest, Post) { |
| GetDefaultUrl(), 1, kUploadDataSize, LOWEST, NULL, 0)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*body), // POST upload frame |
| + CreateMockWrite(*req, 0), CreateMockWrite(*body, 1), // POST upload frame |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + MockRead(ASYNC, 0, 4) // EOF |
| }; |
| - DelayedSocketData data(2, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreatePostRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -1751,19 +1718,17 @@ TEST_P(SpdyNetworkTransactionTest, FilePost) { |
| GetDefaultUrl(), 1, kUploadDataSize, LOWEST, NULL, 0)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*body), // POST upload frame |
| + CreateMockWrite(*req, 0), CreateMockWrite(*body, 1), // POST upload frame |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + MockRead(ASYNC, 0, 4) // EOF |
| }; |
| - DelayedSocketData data(2, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateFilePostRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -1779,10 +1744,10 @@ TEST_P(SpdyNetworkTransactionTest, UnreadableFilePost) { |
| MockWrite(ASYNC, 0, 0) // EOF |
|
ramant (doing other things)
2015/05/01 22:03:13
overly nit: consider making the indentation to be
Ryan Hamilton
2015/05/03 14:13:39
Done.
|
| }; |
| MockRead reads[] = { |
| - MockRead(ASYNC, 0, 0) // EOF |
| + MockRead(ASYNC, 0, 1) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateUnreadableFilePostRequest(), |
| DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -1801,19 +1766,17 @@ TEST_P(SpdyNetworkTransactionTest, ComplexPost) { |
| GetDefaultUrl(), 1, kUploadDataSize, LOWEST, NULL, 0)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*body), // POST upload frame |
| + CreateMockWrite(*req, 0), CreateMockWrite(*body, 1), // POST upload frame |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + MockRead(ASYNC, 0, 4) // EOF |
| }; |
| - DelayedSocketData data(2, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateComplexPostRequest(), |
| DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -1829,19 +1792,17 @@ TEST_P(SpdyNetworkTransactionTest, ChunkedPost) { |
| scoped_ptr<SpdyFrame> req(spdy_util_.ConstructChunkedSpdyPost(NULL, 0)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*body), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*body, 1), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + MockRead(ASYNC, 0, 4) // EOF |
| }; |
| - DelayedSocketData data(2, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(), |
| DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -1866,23 +1827,22 @@ TEST_P(SpdyNetworkTransactionTest, DelayedChunkedPost) { |
| scoped_ptr<SpdyFrame> chunk2(spdy_util_.ConstructSpdyBodyFrame(1, false)); |
| scoped_ptr<SpdyFrame> chunk3(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*chunk1), |
| - CreateMockWrite(*chunk2), |
| - CreateMockWrite(*chunk3), |
| + CreateMockWrite(*req, 0), |
| + CreateMockWrite(*chunk1, 1), |
| + CreateMockWrite(*chunk2, 2), |
| + CreateMockWrite(*chunk3, 3), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*chunk1), |
| - CreateMockRead(*chunk2), |
| - CreateMockRead(*chunk3), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 4), |
| + CreateMockRead(*chunk1, 5), |
| + CreateMockRead(*chunk2, 6), |
| + CreateMockRead(*chunk3, 7), |
| + MockRead(ASYNC, 0, 8) // EOF |
| }; |
| - DelayedSocketData data(4, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateChunkedPostRequest(), |
| DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -1930,19 +1890,18 @@ TEST_P(SpdyNetworkTransactionTest, NullPost) { |
| spdy_util_.ConstructSpdySyn(1, *req_block, LOWEST, false, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| + CreateMockWrite(*req, 0), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(request, DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -1974,18 +1933,18 @@ TEST_P(SpdyNetworkTransactionTest, EmptyPost) { |
| spdy_util_.ConstructSpdySyn(1, *req_block, LOWEST, false, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| + CreateMockWrite(*req, 0), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(request, DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -2088,11 +2047,17 @@ TEST_P(SpdyNetworkTransactionTest, SocketWriteReturnsZero) { |
| TEST_P(SpdyNetworkTransactionTest, ResponseWithoutSynReply) { |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*body, 1), MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), NULL, 0); |
| + scoped_ptr<SpdyFrame> req( |
| + spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| + scoped_ptr<SpdyFrame> rst( |
| + spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| + MockWrite writes[] = { |
| + CreateMockWrite(*req, 0), CreateMockWrite(*rst, 2), |
| + }; |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -2108,21 +2073,19 @@ TEST_P(SpdyNetworkTransactionTest, ResponseWithTwoSynReplies) { |
| scoped_ptr<SpdyFrame> rst( |
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*rst), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*resp, 2), |
| + CreateMockRead(*body, 3), |
| + MockRead(ASYNC, 0, 5) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -2155,8 +2118,7 @@ TEST_P(SpdyNetworkTransactionTest, ResetReplyWithTransferEncoding) { |
| scoped_ptr<SpdyFrame> rst( |
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*rst), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*rst, 2), |
| }; |
| const char* const headers[] = { |
| @@ -2167,13 +2129,12 @@ TEST_P(SpdyNetworkTransactionTest, ResetReplyWithTransferEncoding) { |
| scoped_ptr<SpdyFrame> body( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 3), |
| + MockRead(ASYNC, 0, 4) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -2191,8 +2152,7 @@ TEST_P(SpdyNetworkTransactionTest, ResetPushWithTransferEncoding) { |
| scoped_ptr<SpdyFrame> rst( |
| spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*rst), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| @@ -2204,14 +2164,13 @@ TEST_P(SpdyNetworkTransactionTest, ResetPushWithTransferEncoding) { |
| GetDefaultUrlWithPath("/1").c_str())); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*push), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*push, 2), |
| + CreateMockRead(*body, 3), |
| + MockRead(ASYNC, 0, 5) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -2313,7 +2272,7 @@ TEST_P(SpdyNetworkTransactionTest, StartTransactionOnReadCallback) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| MockWrite writes[] = { CreateMockWrite(*req) }; |
|
ramant (doing other things)
2015/05/01 22:03:13
overly nit: consider making line# 2274 similar to
Ryan Hamilton
2015/05/03 14:13:39
Done.
|
| - MockWrite writes2[] = { CreateMockWrite(*req) }; |
| + MockWrite writes2[] = {CreateMockWrite(*req, 0)}; |
| // 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 |
| @@ -2334,14 +2293,13 @@ TEST_P(SpdyNetworkTransactionTest, StartTransactionOnReadCallback) { |
| MockRead(ASYNC, 0, 0, 6), // EOF |
| }; |
| MockRead reads2[] = { |
| - CreateMockRead(*resp, 2), |
| - MockRead(ASYNC, 0, 0, 3), // EOF |
| + CreateMockRead(*resp, 1), MockRead(ASYNC, 0, 0, 2), // EOF |
| }; |
| OrderedSocketData data(reads, arraysize(reads), |
| writes, arraysize(writes)); |
| - DelayedSocketData data2(1, reads2, arraysize(reads2), |
| - writes2, arraysize(writes2)); |
| + SequencedSocketData data2(reads2, arraysize(reads2), writes2, |
| + arraysize(writes2)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -2454,10 +2412,9 @@ TEST_P(SpdyNetworkTransactionTest, DISABLED_RedirectGetRequest) { |
| CreateMockRead(*body2, 3), |
| MockRead(ASYNC, 0, 0, 4) // EOF |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| - OrderedSocketData data2(reads2, arraysize(reads2), |
| - writes2, arraysize(writes2)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data2(reads2, arraysize(reads2), writes2, |
| + arraysize(writes2)); |
| // TODO(erikchen): Make test support SPDYSSL, SPDYNPN |
| TestDelegate d; |
| @@ -2537,10 +2494,9 @@ TEST_P(SpdyNetworkTransactionTest, DISABLED_RedirectServerPush) { |
| CreateMockRead(*body2, 3), |
| MockRead(ASYNC, 0, 0, 5) // EOF |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| - OrderedSocketData data2(reads2, arraysize(reads2), |
| - writes2, arraysize(writes2)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data2(reads2, arraysize(reads2), writes2, |
| + arraysize(writes2)); |
| // TODO(erikchen): Make test support SPDYSSL, SPDYNPN |
| TestDelegate d; |
| @@ -2577,8 +2533,6 @@ TEST_P(SpdyNetworkTransactionTest, DISABLED_RedirectServerPush) { |
| std::string contents2("hello!"); |
| EXPECT_EQ(contents2, d2.data_received()); |
| } |
| - data.CompleteRead(); |
| - data2.CompleteRead(); |
| EXPECT_TRUE(data.AllReadDataConsumed()); |
| EXPECT_TRUE(data.AllWriteDataConsumed()); |
| EXPECT_TRUE(data2.AllReadDataConsumed()); |
| @@ -2591,7 +2545,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushSingleDataFrame) { |
| scoped_ptr<SpdyFrame> stream1_body( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| + CreateMockWrite(*stream1_syn, 0), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -2603,18 +2557,17 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushSingleDataFrame) { |
| spdy_util_.ConstructSpdyBodyFrame( |
| 2, kPushedData, strlen(kPushedData), true)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream1_body, 4, SYNCHRONOUS), |
| - CreateMockRead(*stream2_body, 5), |
| - MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream1_body, 3, SYNCHRONOUS), |
| + CreateMockRead(*stream2_body, 4), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a pause |
| }; |
| HttpResponseInfo response; |
| HttpResponseInfo response2; |
| std::string expected_push_result("pushed"); |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| RunServerPushTest(&data, |
| &response, |
| &response2, |
| @@ -2635,7 +2588,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushBeforeSynReply) { |
| scoped_ptr<SpdyFrame> stream1_body( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| + CreateMockWrite(*stream1_syn, 0), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -2647,18 +2600,17 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushBeforeSynReply) { |
| spdy_util_.ConstructSpdyBodyFrame( |
| 2, kPushedData, strlen(kPushedData), true)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream2_syn, 2), |
| - CreateMockRead(*stream1_reply, 3), |
| - CreateMockRead(*stream1_body, 4, SYNCHRONOUS), |
| - CreateMockRead(*stream2_body, 5), |
| - MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| + CreateMockRead(*stream2_syn, 1), |
| + CreateMockRead(*stream1_reply, 2), |
| + CreateMockRead(*stream1_body, 3, SYNCHRONOUS), |
| + CreateMockRead(*stream2_body, 4), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a pause |
| }; |
| HttpResponseInfo response; |
| HttpResponseInfo response2; |
| std::string expected_push_result("pushed"); |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| RunServerPushTest(&data, |
| &response, |
| &response2, |
| @@ -2676,7 +2628,9 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushBeforeSynReply) { |
| TEST_P(SpdyNetworkTransactionTest, ServerPushSingleDataFrame2) { |
| scoped_ptr<SpdyFrame> stream1_syn( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*stream1_syn, 1), }; |
| + MockWrite writes[] = { |
| + CreateMockWrite(*stream1_syn, 0), |
| + }; |
| scoped_ptr<SpdyFrame> |
| stream1_reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| @@ -2689,18 +2643,17 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushSingleDataFrame2) { |
| scoped_ptr<SpdyFrame> |
| stream1_body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream2_body, 4), |
| - CreateMockRead(*stream1_body, 5, SYNCHRONOUS), |
| - MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream2_body, 3), |
| + CreateMockRead(*stream1_body, 4, SYNCHRONOUS), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a pause |
| }; |
| HttpResponseInfo response; |
| HttpResponseInfo response2; |
| std::string expected_push_result("pushed"); |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| RunServerPushTest(&data, |
| &response, |
| &response2, |
| @@ -2721,7 +2674,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushServerAborted) { |
| scoped_ptr<SpdyFrame> stream1_body( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| + CreateMockWrite(*stream1_syn, 0), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -2731,15 +2684,14 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushServerAborted) { |
| scoped_ptr<SpdyFrame> stream2_rst( |
| spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream2_rst, 4), |
| - CreateMockRead(*stream1_body, 5, SYNCHRONOUS), |
| - MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream2_rst, 3), |
| + CreateMockRead(*stream1_body, 4, SYNCHRONOUS), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a pause |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -2757,12 +2709,8 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushServerAborted) { |
| EXPECT_EQ(OK, rv); |
| // Verify that we consumed all test data. |
| - EXPECT_TRUE(data.AllReadDataConsumed()) |
| - << "Read count: " << data.read_count() |
| - << " Read index: " << data.read_index(); |
| - EXPECT_TRUE(data.AllWriteDataConsumed()) |
| - << "Write count: " << data.write_count() |
| - << " Write index: " << data.write_index(); |
| + EXPECT_TRUE(data.AllReadDataConsumed()); |
| + EXPECT_TRUE(data.AllWriteDataConsumed()); |
| // Verify the SYN_REPLY. |
| HttpResponseInfo response = *trans->GetResponseInfo(); |
| @@ -2780,8 +2728,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushDuplicate) { |
| scoped_ptr<SpdyFrame> stream3_rst( |
| spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| - CreateMockWrite(*stream3_rst, 5), |
| + CreateMockWrite(*stream1_syn, 0), CreateMockWrite(*stream3_rst, 4), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -2795,19 +2742,18 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushDuplicate) { |
| scoped_ptr<SpdyFrame> stream3_syn(spdy_util_.ConstructSpdyPush( |
| NULL, 0, 4, 1, GetDefaultUrlWithPath("/foo.dat").c_str())); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream3_syn, 4), |
| - CreateMockRead(*stream1_body, 6, SYNCHRONOUS), |
| - CreateMockRead(*stream2_body, 7), |
| - MockRead(ASYNC, ERR_IO_PENDING, 8), // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream3_syn, 3), |
| + CreateMockRead(*stream1_body, 5), |
| + CreateMockRead(*stream2_body, 6), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 7), // Force a pause |
| }; |
| HttpResponseInfo response; |
| HttpResponseInfo response2; |
| std::string expected_push_result("pushed"); |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| RunServerPushTest(&data, |
| &response, |
| &response2, |
| @@ -2828,7 +2774,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushMultipleDataFrame) { |
| scoped_ptr<SpdyFrame> stream1_body( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| + CreateMockWrite(*stream1_syn, 0), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -2851,21 +2797,20 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushMultipleDataFrame) { |
| new SpdyFrame(stream2_body_base->data() + 3 * kChunkSize, |
| stream2_body_base->size() - 3 * kChunkSize, false)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream2_body1, 4), |
| - CreateMockRead(*stream2_body2, 5), |
| - CreateMockRead(*stream2_body3, 6), |
| - CreateMockRead(*stream2_body4, 7), |
| - CreateMockRead(*stream1_body, 8, SYNCHRONOUS), |
| - MockRead(ASYNC, ERR_IO_PENDING, 9), // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream2_body1, 3), |
| + CreateMockRead(*stream2_body2, 4), |
| + CreateMockRead(*stream2_body3, 5), |
| + CreateMockRead(*stream2_body4, 6), |
| + CreateMockRead(*stream1_body, 7, SYNCHRONOUS), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 8), // Force a pause |
| }; |
| HttpResponseInfo response; |
| HttpResponseInfo response2; |
| std::string expected_push_result("pushed my darling hello my baby"); |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| RunServerPushTest(&data, &response, &response2, kPushedData); |
| // Verify the SYN_REPLY. |
| @@ -2883,7 +2828,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushMultipleDataFrameInterrupted) { |
| scoped_ptr<SpdyFrame> stream1_body( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| + CreateMockWrite(*stream1_syn, 0), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -2906,21 +2851,19 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushMultipleDataFrameInterrupted) { |
| new SpdyFrame(stream2_body_base->data() + 3 * kChunkSize, |
| stream2_body_base->size() - 3 * kChunkSize, false)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream2_body1, 4), |
| - CreateMockRead(*stream2_body2, 5), |
| - MockRead(ASYNC, ERR_IO_PENDING, 6), // Force a pause |
| - CreateMockRead(*stream2_body3, 7), |
| - CreateMockRead(*stream2_body4, 8), |
| - CreateMockRead(*stream1_body.get(), 9, SYNCHRONOUS), |
| - MockRead(ASYNC, ERR_IO_PENDING, 10) // Force a pause. |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream2_body1, 3), |
| + CreateMockRead(*stream2_body2, 4), |
| + CreateMockRead(*stream2_body3, 5), |
| + CreateMockRead(*stream2_body4, 6), |
| + CreateMockRead(*stream1_body.get(), 7, SYNCHRONOUS), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 8) // Force a pause. |
| }; |
| HttpResponseInfo response; |
| HttpResponseInfo response2; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| RunServerPushTest(&data, &response, &response2, kPushedData); |
| // Verify the SYN_REPLY. |
| @@ -2946,8 +2889,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushInvalidAssociatedStreamID0) { |
| scoped_ptr<SpdyFrame> stream2_rst( |
| spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| - CreateMockWrite(*stream2_rst, 4), |
| + CreateMockWrite(*stream1_syn, 0), CreateMockWrite(*stream2_rst, 3), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -2955,14 +2897,13 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushInvalidAssociatedStreamID0) { |
| scoped_ptr<SpdyFrame> stream2_syn(spdy_util_.ConstructSpdyPush( |
| NULL, 0, 2, 0, GetDefaultUrlWithPath("/foo.dat").c_str())); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream1_body, 4), |
| - MockRead(ASYNC, ERR_IO_PENDING, 5) // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream1_body, 4), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5) // Force a pause |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -2980,12 +2921,8 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushInvalidAssociatedStreamID0) { |
| EXPECT_EQ(OK, rv); |
| // Verify that we consumed all test data. |
| - EXPECT_TRUE(data.AllReadDataConsumed()) |
| - << "Read count: " << data.read_count() |
| - << " Read index: " << data.read_index(); |
| - EXPECT_TRUE(data.AllWriteDataConsumed()) |
| - << "Write count: " << data.write_count() |
| - << " Write index: " << data.write_index(); |
| + EXPECT_TRUE(data.AllReadDataConsumed()); |
| + EXPECT_TRUE(data.AllWriteDataConsumed()); |
| // Verify the SYN_REPLY. |
| HttpResponseInfo response = *trans->GetResponseInfo(); |
| @@ -3001,8 +2938,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushInvalidAssociatedStreamID9) { |
| scoped_ptr<SpdyFrame> stream2_rst( |
| spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_INVALID_STREAM)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| - CreateMockWrite(*stream2_rst, 4), |
| + CreateMockWrite(*stream1_syn, 0), CreateMockWrite(*stream2_rst, 3), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -3010,14 +2946,13 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushInvalidAssociatedStreamID9) { |
| scoped_ptr<SpdyFrame> stream2_syn(spdy_util_.ConstructSpdyPush( |
| NULL, 0, 2, 9, GetDefaultUrlWithPath("/foo.dat").c_str())); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream1_body, 4), |
| - MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream1_body, 4), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a pause |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -3035,12 +2970,8 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushInvalidAssociatedStreamID9) { |
| EXPECT_EQ(OK, rv); |
| // Verify that we consumed all test data. |
| - EXPECT_TRUE(data.AllReadDataConsumed()) |
| - << "Read count: " << data.read_count() |
| - << " Read index: " << data.read_index(); |
| - EXPECT_TRUE(data.AllWriteDataConsumed()) |
| - << "Write count: " << data.write_count() |
| - << " Write index: " << data.write_index(); |
| + EXPECT_TRUE(data.AllReadDataConsumed()); |
| + EXPECT_TRUE(data.AllWriteDataConsumed()); |
| // Verify the SYN_REPLY. |
| HttpResponseInfo response = *trans->GetResponseInfo(); |
| @@ -3056,8 +2987,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushNoURL) { |
| scoped_ptr<SpdyFrame> stream2_rst( |
| spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| - CreateMockWrite(*stream2_rst, 4), |
| + CreateMockWrite(*stream1_syn, 0), CreateMockWrite(*stream2_rst, 3), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -3069,14 +2999,13 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushNoURL) { |
| scoped_ptr<SpdyFrame> stream2_syn(spdy_util_.ConstructInitialSpdyPushFrame( |
| incomplete_headers.Pass(), 2, 1)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream1_body, 4), |
| - MockRead(ASYNC, ERR_IO_PENDING, 5) // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream1_body, 4), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5) // Force a pause |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -3092,13 +3021,10 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushNoURL) { |
| EXPECT_EQ(ERR_IO_PENDING, rv); |
| rv = callback.WaitForResult(); |
| EXPECT_EQ(OK, rv); |
| + |
| // Verify that we consumed all test data. |
| - EXPECT_TRUE(data.AllReadDataConsumed()) |
| - << "Read count: " << data.read_count() |
| - << " Read index: " << data.read_index(); |
| - EXPECT_TRUE(data.AllWriteDataConsumed()) |
| - << "Write count: " << data.write_count() |
| - << " Write index: " << data.write_index(); |
| + EXPECT_TRUE(data.AllReadDataConsumed()); |
| + EXPECT_TRUE(data.AllWriteDataConsumed()); |
| // Verify the SYN_REPLY. |
| HttpResponseInfo response = *trans->GetResponseInfo(); |
| @@ -3156,7 +3082,7 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeaders) { |
| for (size_t i = 0; i < arraysize(test_cases); ++i) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> resp( |
| spdy_util_.ConstructSpdyGetSynReply(test_cases[i].extra_headers, |
| @@ -3164,13 +3090,13 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeaders) { |
| 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, |
| + arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -3274,7 +3200,7 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) { |
| false, 1, LOWEST, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*frame_req), |
| + CreateMockWrite(*frame_req, 0), |
| }; |
| // Construct the reply. |
| @@ -3287,9 +3213,9 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) { |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*frame_reply), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*frame_reply, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| // Attach the headers to the request. |
| @@ -3302,8 +3228,8 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) { |
| request.extra_headers.SetHeader(header_key, header_value); |
| } |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, |
| + arraysize(writes)); |
| NormalSpdyTransactionHelper helper(request, DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -3376,8 +3302,7 @@ TEST_P(SpdyNetworkTransactionTest, InvalidSynReply) { |
| scoped_ptr<SpdyFrame> rst( |
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*rst), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*rst, 2), |
| }; |
| // Construct the reply. |
| @@ -3386,12 +3311,11 @@ TEST_P(SpdyNetworkTransactionTest, InvalidSynReply) { |
| test_cases[i].headers, test_cases[i].num_headers, &reply_headers); |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyReply(1, reply_headers)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, |
| + arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -3432,19 +3356,18 @@ TEST_P(SpdyNetworkTransactionTest, CorruptFrameSessionError) { |
| scoped_ptr<SpdyFrame> rst( |
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*rst), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*rst, 3), |
| }; |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - MockRead(ASYNC, test_cases[i].syn_reply->data(), wrong_size), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + MockRead(ASYNC, test_cases[i].syn_reply->data(), wrong_size, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 4) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, |
| + arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -3473,16 +3396,15 @@ TEST_P(SpdyNetworkTransactionTest, CorruptFrameSessionErrorSpdy4) { |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway( |
| 0, GOAWAY_COMPRESSION_ERROR, "Framer error: 5 (DECOMPRESS_FAILURE).")); |
| - MockWrite writes[] = {CreateMockWrite(*req), CreateMockWrite(*goaway)}; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0), CreateMockWrite(*goaway, 2)}; |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - MockRead(ASYNC, syn_reply_wrong_length->data(), |
| - syn_reply_wrong_length->size() - 4), |
| + MockRead(ASYNC, syn_reply_wrong_length->data(), |
| + syn_reply_wrong_length->size() - 4, 1), |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -3499,14 +3421,14 @@ TEST_P(SpdyNetworkTransactionTest, GoAwayOnDecompressionFailure) { |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway( |
| 0, GOAWAY_COMPRESSION_ERROR, "Framer error: 5 (DECOMPRESS_FAILURE).")); |
| - MockWrite writes[] = {CreateMockWrite(*req), CreateMockWrite(*goaway)}; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0), CreateMockWrite(*goaway, 2)}; |
| // Read HEADERS with corrupted payload. |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| memset(resp->data() + 12, 0xff, resp->size() - 12); |
| - MockRead reads[] = {CreateMockRead(*resp)}; |
| + MockRead reads[] = {CreateMockRead(*resp, 1)}; |
| - DelayedSocketData data(1, reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper( |
| CreateGetRequest(), DEFAULT_PRIORITY, BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -3519,7 +3441,7 @@ TEST_P(SpdyNetworkTransactionTest, GoAwayOnFrameSizeError) { |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway( |
| 0, GOAWAY_PROTOCOL_ERROR, "Framer error: 1 (INVALID_CONTROL_FRAME).")); |
| - MockWrite writes[] = {CreateMockWrite(*req), CreateMockWrite(*goaway)}; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0), CreateMockWrite(*goaway, 2)}; |
| // Read WINDOW_UPDATE with incorrectly-sized payload. |
| // TODO(jgraettinger): SpdyFramer signals this as an INVALID_CONTROL_FRAME, |
| @@ -3529,9 +3451,9 @@ TEST_P(SpdyNetworkTransactionTest, GoAwayOnFrameSizeError) { |
| test::SetFrameLength(bad_window_update.get(), |
| bad_window_update->size() - 1, |
| spdy_util_.spdy_version()); |
| - MockRead reads[] = {CreateMockRead(*bad_window_update)}; |
| + MockRead reads[] = {CreateMockRead(*bad_window_update, 1)}; |
| - DelayedSocketData data(1, reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper( |
| CreateGetRequest(), DEFAULT_PRIORITY, BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -3580,17 +3502,19 @@ TEST_P(SpdyNetworkTransactionTest, PartialWrite) { |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| const int kChunks = 5; |
| scoped_ptr<MockWrite[]> writes(ChopWriteFrame(*req.get(), kChunks)); |
| + for (int i = 0; i < kChunks; ++i) { |
| + writes[i].sequence_number = i; |
| + } |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, kChunks), |
| + CreateMockRead(*body, kChunks + 1), |
| + MockRead(ASYNC, 0, kChunks + 2) // EOF |
| }; |
| - DelayedSocketData data(kChunks, reads, arraysize(reads), |
| - writes.get(), kChunks); |
| + SequencedSocketData data(reads, arraysize(reads), writes.get(), kChunks); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -3611,16 +3535,16 @@ TEST_P(SpdyNetworkTransactionTest, DecompressFailureOnSynReply) { |
| spdy_util_.ConstructSpdyGet(NULL, 0, true, 1, LOWEST, true)); |
| scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway( |
| 0, GOAWAY_COMPRESSION_ERROR, "Framer error: 5 (DECOMPRESS_FAILURE).")); |
| - MockWrite writes[] = {CreateMockWrite(*compressed), CreateMockWrite(*goaway)}; |
| + MockWrite writes[] = {CreateMockWrite(*compressed, 0), |
| + CreateMockWrite(*goaway, 2)}; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| + CreateMockRead(*resp, 1), |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| SpdySessionDependencies* session_deps = |
| CreateSpdySessionDependencies(GetParam()); |
| session_deps->enable_compression = true; |
| @@ -3639,20 +3563,19 @@ TEST_P(SpdyNetworkTransactionTest, NetLog) { |
| }; |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(kExtraHeaders, 1, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| BoundTestNetLog log; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequestWithUserAgent(), |
| DEFAULT_PRIORITY, |
| log.bound(), GetParam(), NULL); |
| @@ -3731,7 +3654,7 @@ TEST_P(SpdyNetworkTransactionTest, BufferFull) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| // 2 data frames in a single read. |
| scoped_ptr<SpdyFrame> data_frame_1( |
| @@ -3920,7 +3843,7 @@ TEST_P(SpdyNetworkTransactionTest, BufferedAll) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| // 5 data frames in a single read. |
| scoped_ptr<SpdyFrame> reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| @@ -3936,12 +3859,11 @@ TEST_P(SpdyNetworkTransactionTest, BufferedAll) { |
| combined_frames, arraysize(combined_frames)); |
| MockRead reads[] = { |
| - MockRead(ASYNC, combined_frames, combined_frames_len), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + MockRead(ASYNC, combined_frames, combined_frames_len, 1), |
| + MockRead(ASYNC, 0, 2) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -4194,7 +4116,7 @@ TEST_P(SpdyNetworkTransactionTest, SettingsSaved) { |
| // Construct the request. |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| // Construct the reply. |
| scoped_ptr<SpdyHeaderBlock> reply_headers(new SpdyHeaderBlock()); |
| @@ -4227,14 +4149,13 @@ TEST_P(SpdyNetworkTransactionTest, SettingsSaved) { |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*reply), |
| - CreateMockRead(*body), |
| - CreateMockRead(*settings_frame), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*reply, 1), |
| + CreateMockRead(*body, 2), |
| + CreateMockRead(*settings_frame, 3), |
| + MockRead(ASYNC, 0, 4) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| helper.AddData(&data); |
| helper.RunDefaultTest(); |
| helper.VerifyDataConsumed(); |
| @@ -4405,15 +4326,14 @@ TEST_P(SpdyNetworkTransactionTest, SettingsPlayback) { |
| TEST_P(SpdyNetworkTransactionTest, GoAwayWithActiveStream) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> go_away(spdy_util_.ConstructSpdyGoAway()); |
| MockRead reads[] = { |
| - CreateMockRead(*go_away), |
| + CreateMockRead(*go_away, 1), |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.AddData(&data); |
| @@ -4425,16 +4345,14 @@ TEST_P(SpdyNetworkTransactionTest, GoAwayWithActiveStream) { |
| TEST_P(SpdyNetworkTransactionTest, CloseWithActiveStream) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = { CreateMockWrite(*req) }; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - MockRead(SYNCHRONOUS, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), MockRead(SYNCHRONOUS, 0, 2) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| BoundNetLog log; |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| log, GetParam(), NULL); |
| @@ -4472,9 +4390,9 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredError) { |
| scoped_ptr<SpdyFrame> go_away(spdy_util_.ConstructSpdyGoAway( |
| 0, GOAWAY_HTTP_1_1_REQUIRED, "Try again using HTTP/1.1 please.")); |
| MockRead reads[] = { |
| - CreateMockRead(*go_away), |
| + CreateMockRead(*go_away, 0), |
| }; |
| - DelayedSocketData data(0, reads, arraysize(reads), nullptr, 0); |
| + SequencedSocketData data(reads, arraysize(reads), nullptr, 0); |
| helper.RunToCompletion(&data); |
| TransactionHelperResult out = helper.output(); |
| @@ -4508,12 +4426,12 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredRetry) { |
| scoped_ptr<SpdyHeaderBlock> headers(spdy_util_.ConstructGetHeaderBlock(url)); |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdySyn(1, *headers, LOWEST, false, true)); |
| - MockWrite writes0[] = {CreateMockWrite(*req)}; |
| + MockWrite writes0[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> go_away(spdy_util_.ConstructSpdyGoAway( |
| 0, GOAWAY_HTTP_1_1_REQUIRED, "Try again using HTTP/1.1 please.")); |
| - MockRead reads0[] = {CreateMockRead(*go_away)}; |
| - DelayedSocketData data0(1, reads0, arraysize(reads0), writes0, |
| - arraysize(writes0)); |
| + MockRead reads0[] = {CreateMockRead(*go_away, 1)}; |
| + SequencedSocketData data0(reads0, arraysize(reads0), writes0, |
| + arraysize(writes0)); |
| scoped_ptr<SSLSocketDataProvider> ssl_provider0( |
| new SSLSocketDataProvider(ASYNC, OK)); |
| @@ -4527,16 +4445,16 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredRetry) { |
| helper.AddDataWithSSLSocketDataProvider(&data0, ssl_provider0.Pass()); |
| // Second socket: falling back to HTTP/1.1. |
| - MockWrite writes1[] = {MockWrite( |
| - "GET / HTTP/1.1\r\n" |
| - "Host: www.example.org\r\n" |
| - "Connection: keep-alive\r\n\r\n")}; |
| - MockRead reads1[] = {MockRead( |
| - "HTTP/1.1 200 OK\r\n" |
| - "Content-Length: 5\r\n\r\n" |
| - "hello")}; |
| - DelayedSocketData data1(1, reads1, arraysize(reads1), writes1, |
| - arraysize(writes1)); |
| + MockWrite writes1[] = {MockWrite(ASYNC, 0, |
| + "GET / HTTP/1.1\r\n" |
| + "Host: www.example.org\r\n" |
| + "Connection: keep-alive\r\n\r\n")}; |
| + MockRead reads1[] = {MockRead(ASYNC, 1, |
| + "HTTP/1.1 200 OK\r\n" |
| + "Content-Length: 5\r\n\r\n" |
| + "hello")}; |
| + SequencedSocketData data1(reads1, arraysize(reads1), writes1, |
| + arraysize(writes1)); |
| scoped_ptr<SSLSocketDataProvider> ssl_provider1( |
| new SSLSocketDataProvider(ASYNC, OK)); |
| @@ -4599,12 +4517,12 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredProxyRetry) { |
| // First socket: HTTP/2 CONNECT rejected with HTTP_1_1_REQUIRED. |
| scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyConnect( |
| nullptr, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| - MockWrite writes0[] = {CreateMockWrite(*req)}; |
| + MockWrite writes0[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> go_away(spdy_util_.ConstructSpdyGoAway( |
| 0, GOAWAY_HTTP_1_1_REQUIRED, "Try again using HTTP/1.1 please.")); |
| - MockRead reads0[] = {CreateMockRead(*go_away)}; |
| - DelayedSocketData data0(1, reads0, arraysize(reads0), writes0, |
| - arraysize(writes0)); |
| + MockRead reads0[] = {CreateMockRead(*go_away, 1)}; |
| + SequencedSocketData data0(reads0, arraysize(reads0), writes0, |
| + arraysize(writes0)); |
| scoped_ptr<SSLSocketDataProvider> ssl_provider0( |
| new SSLSocketDataProvider(ASYNC, OK)); |
| @@ -4619,25 +4537,25 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredProxyRetry) { |
| // Second socket: retry using HTTP/1.1. |
| MockWrite writes1[] = { |
| - MockWrite(ASYNC, 1, |
| + MockWrite(ASYNC, 0, |
| "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| "Host: www.example.org\r\n" |
| "Proxy-Connection: keep-alive\r\n\r\n"), |
| - MockWrite(ASYNC, 3, |
| + MockWrite(ASYNC, 2, |
| "GET / HTTP/1.1\r\n" |
| "Host: www.example.org\r\n" |
| "Connection: keep-alive\r\n\r\n"), |
| }; |
| MockRead reads1[] = { |
| - MockRead(ASYNC, 2, "HTTP/1.1 200 OK\r\n\r\n"), |
| - MockRead(ASYNC, 4, |
| + MockRead(ASYNC, 1, "HTTP/1.1 200 OK\r\n\r\n"), |
| + MockRead(ASYNC, 3, |
| "HTTP/1.1 200 OK\r\n" |
| "Content-Length: 5\r\n\r\n" |
| "hello"), |
| }; |
| - DelayedSocketData data1(1, reads1, arraysize(reads1), writes1, |
| - arraysize(writes1)); |
| + SequencedSocketData data1(reads1, arraysize(reads1), writes1, |
| + arraysize(writes1)); |
| scoped_ptr<SSLSocketDataProvider> ssl_provider1( |
| new SSLSocketDataProvider(ASYNC, OK)); |
| @@ -4711,7 +4629,7 @@ TEST_P(SpdyNetworkTransactionTest, ProxyConnect) { |
| CreateMockRead(*body.get(), 4), |
| MockRead(ASYNC, 0, 0, 5), |
| }; |
| - scoped_ptr<OrderedSocketData> data(new OrderedSocketData( |
| + scoped_ptr<SequencedSocketData> data(new SequencedSocketData( |
| reads, arraysize(reads), writes, arraysize(writes))); |
| helper.AddData(data.get()); |
| @@ -4761,19 +4679,17 @@ TEST_P(SpdyNetworkTransactionTest, DirectConnectProxyReconnect) { |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req, 1), |
| + CreateMockWrite(*req, 0), |
| }; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp, 2), |
| - CreateMockRead(*body, 3), |
| - MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause |
| - MockRead(ASYNC, 0, 5) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 3), // Force a pause |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| helper.AddData(&data); |
| HttpNetworkTransaction* trans = helper.trans(); |
| @@ -4828,7 +4744,7 @@ TEST_P(SpdyNetworkTransactionTest, DirectConnectProxyReconnect) { |
| MockRead(ASYNC, 0, 5) // EOF |
| }; |
| - scoped_ptr<OrderedSocketData> data_proxy(new OrderedSocketData( |
| + scoped_ptr<SequencedSocketData> data_proxy(new SequencedSocketData( |
| reads2, arraysize(reads2), writes2, arraysize(writes2))); |
| // Create another request to www.example.org, but this time through a proxy. |
| @@ -4868,7 +4784,6 @@ TEST_P(SpdyNetworkTransactionTest, DirectConnectProxyReconnect) { |
| ASSERT_EQ(OK, ReadTransaction(trans_proxy, &response_data)); |
| EXPECT_EQ("hello!", response_data); |
| - data.CompleteRead(); |
| helper_proxy.VerifyDataConsumed(); |
| } |
| @@ -4880,16 +4795,16 @@ TEST_P(SpdyNetworkTransactionTest, VerifyRetryOnConnectionReset) { |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, ERR_IO_PENDING), |
| - MockRead(ASYNC, ERR_CONNECTION_RESET), |
| + CreateMockRead(*resp, 0), |
| + CreateMockRead(*body, 1), |
| + MockRead(ASYNC, ERR_IO_PENDING, 2), |
| + MockRead(ASYNC, ERR_CONNECTION_RESET, 3), |
| }; |
| MockRead reads2[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 0), |
| + CreateMockRead(*body, 1), |
| + MockRead(ASYNC, 0, 2) // EOF |
| }; |
| // This test has a couple of variants. |
| @@ -4958,18 +4873,18 @@ TEST_P(SpdyNetworkTransactionTest, SpdyOnOffToggle) { |
| HttpStreamFactory::set_spdy_enabled(true); |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite spdy_writes[] = { CreateMockWrite(*req) }; |
| + MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead spdy_reads[] = { |
| - CreateMockRead(*resp), |
| - CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data(1, spdy_reads, arraysize(spdy_reads), |
| - spdy_writes, arraysize(spdy_writes)); |
| + SequencedSocketData data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| + arraysize(spdy_writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -4979,12 +4894,20 @@ TEST_P(SpdyNetworkTransactionTest, SpdyOnOffToggle) { |
| EXPECT_EQ("hello!", out.response_data); |
| HttpStreamFactory::set_spdy_enabled(false); |
| + MockWrite http_writes[] = { |
| + MockWrite(SYNCHRONOUS, 0, |
| + "GET / HTTP/1.1\r\n" |
| + "Host: www.example.org\r\n" |
| + "Connection: keep-alive\r\n\r\n"), |
| + }; |
| + |
| MockRead http_reads[] = { |
| - MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| - MockRead("hello from http"), |
| - MockRead(SYNCHRONOUS, OK), |
| + MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 OK\r\n\r\n"), |
| + MockRead(SYNCHRONOUS, 2, "hello from http"), |
| + MockRead(SYNCHRONOUS, OK, 3), |
| }; |
| - DelayedSocketData data2(1, http_reads, arraysize(http_reads), NULL, 0); |
| + SequencedSocketData data2(http_reads, arraysize(http_reads), http_writes, |
| + arraysize(http_writes)); |
| NormalSpdyTransactionHelper helper2(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper2.SetSpdyDisabled(); |
| @@ -5013,8 +4936,7 @@ TEST_P(SpdyNetworkTransactionTest, SpdyBasicAuth) { |
| arraysize(kExtraAuthorizationHeaders) / 2, |
| false, 3, LOWEST, true)); |
| MockWrite spdy_writes[] = { |
| - CreateMockWrite(*req_get, 1), |
| - CreateMockWrite(*req_get_authorization, 4), |
| + CreateMockWrite(*req_get, 0), CreateMockWrite(*req_get_authorization, 3), |
| }; |
| // The first response is a 401 authentication challenge, and the second |
| @@ -5036,15 +4958,15 @@ TEST_P(SpdyNetworkTransactionTest, SpdyBasicAuth) { |
| spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); |
| scoped_ptr<SpdyFrame> body_data(spdy_util_.ConstructSpdyBodyFrame(3, true)); |
| MockRead spdy_reads[] = { |
| - CreateMockRead(*resp_authentication, 2), |
| - CreateMockRead(*body_authentication, 3), |
| - CreateMockRead(*resp_data, 5), |
| - CreateMockRead(*body_data, 6), |
| - MockRead(ASYNC, 0, 7), |
| + CreateMockRead(*resp_authentication, 1), |
| + CreateMockRead(*body_authentication, 2), |
| + CreateMockRead(*resp_data, 4), |
| + CreateMockRead(*body_data, 5), |
| + MockRead(ASYNC, 0, 6), |
| }; |
| - OrderedSocketData data(spdy_reads, arraysize(spdy_reads), |
| - spdy_writes, arraysize(spdy_writes)); |
| + SequencedSocketData data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| + arraysize(spdy_writes)); |
| HttpRequestInfo request(CreateGetRequest()); |
| BoundNetLog net_log; |
| NormalSpdyTransactionHelper helper(request, DEFAULT_PRIORITY, |
| @@ -5095,7 +5017,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushWithHeaders) { |
| scoped_ptr<SpdyFrame> stream1_body( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| + CreateMockWrite(*stream1_syn, 0), |
| }; |
| scoped_ptr<SpdyHeaderBlock> initial_headers(new SpdyHeaderBlock()); |
| @@ -5124,19 +5046,18 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushWithHeaders) { |
| spdy_util_.ConstructSpdyBodyFrame( |
| 2, kPushedData, strlen(kPushedData), true)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream2_headers, 4), |
| - CreateMockRead(*stream1_body, 5, SYNCHRONOUS), |
| - CreateMockRead(*stream2_body, 5), |
| - MockRead(ASYNC, ERR_IO_PENDING, 7), // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream2_headers, 3), |
| + CreateMockRead(*stream1_body, 4, SYNCHRONOUS), |
| + CreateMockRead(*stream2_body, 5), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 6), // Force a pause |
| }; |
| HttpResponseInfo response; |
| HttpResponseInfo response2; |
| std::string expected_push_result("pushed"); |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| RunServerPushTest(&data, |
| &response, |
| &response2, |
| @@ -5523,7 +5444,7 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyWithHeaders) { |
| scoped_ptr<SpdyFrame> rst( |
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), CreateMockWrite(*rst), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4), |
| }; |
| scoped_ptr<SpdyFrame> stream1_reply( |
| @@ -5542,14 +5463,13 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyWithHeaders) { |
| scoped_ptr<SpdyFrame> stream1_body( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply), |
| - CreateMockRead(*stream1_headers), |
| - CreateMockRead(*stream1_body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream1_headers, 2), |
| + CreateMockRead(*stream1_body, 3), |
| + MockRead(ASYNC, 0, 5) // EOF |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -5563,8 +5483,7 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyWithLateHeaders) { |
| scoped_ptr<SpdyFrame> rst( |
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req), |
| - CreateMockWrite(*rst), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4), |
| }; |
| scoped_ptr<SpdyFrame> stream1_reply( |
| @@ -5585,11 +5504,11 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyWithLateHeaders) { |
| scoped_ptr<SpdyFrame> stream1_body2( |
| spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply), |
| - CreateMockRead(*stream1_body), |
| - CreateMockRead(*stream1_headers), |
| - CreateMockRead(*stream1_body2), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream1_body, 2), |
| + CreateMockRead(*stream1_headers, 3), |
| + CreateMockRead(*stream1_body2, 5), |
| + MockRead(ASYNC, 0, 6) // EOF |
| }; |
| DelayedSocketData data(1, reads, arraysize(reads), |
| @@ -5641,8 +5560,7 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushCrossOriginCorrectness) { |
| scoped_ptr<SpdyFrame> push_rst( |
| spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*stream1_syn, 1), |
| - CreateMockWrite(*push_rst, 4), |
| + CreateMockWrite(*stream1_syn, 0), CreateMockWrite(*push_rst, 3), |
| }; |
| scoped_ptr<SpdyFrame> |
| @@ -5661,16 +5579,16 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushCrossOriginCorrectness) { |
| spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_CANCEL)); |
| MockRead reads[] = { |
| - CreateMockRead(*stream1_reply, 2), |
| - CreateMockRead(*stream2_syn, 3), |
| - CreateMockRead(*stream1_body, 5, SYNCHRONOUS), |
| - CreateMockRead(*stream2_body, 6), |
| - MockRead(ASYNC, ERR_IO_PENDING, 7), // Force a pause |
| + CreateMockRead(*stream1_reply, 1), |
| + CreateMockRead(*stream2_syn, 2), |
| + CreateMockRead(*stream1_body, 4), |
| + CreateMockRead(*stream2_body, 5), |
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 6), // Force a pause |
| }; |
| HttpResponseInfo response; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, |
| + arraysize(writes)); |
| HttpRequestInfo request; |
| request.method = "GET"; |
| @@ -5724,8 +5642,7 @@ TEST_P(SpdyNetworkTransactionTest, RetryAfterRefused) { |
| scoped_ptr<SpdyFrame> req2( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, LOWEST, true)); |
| MockWrite writes[] = { |
| - CreateMockWrite(*req, 1), |
| - CreateMockWrite(*req2, 3), |
| + CreateMockWrite(*req, 0), CreateMockWrite(*req2, 2), |
| }; |
| scoped_ptr<SpdyFrame> refused( |
| @@ -5733,14 +5650,13 @@ TEST_P(SpdyNetworkTransactionTest, RetryAfterRefused) { |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(3, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*refused, 2), |
| - CreateMockRead(*resp, 4), |
| - CreateMockRead(*body, 5), |
| - MockRead(ASYNC, 0, 6) // EOF |
| + CreateMockRead(*refused, 1), |
| + CreateMockRead(*resp, 3), |
| + CreateMockRead(*body, 4), |
| + MockRead(ASYNC, 0, 5) // EOF |
| }; |
| - OrderedSocketData data(reads, arraysize(reads), |
| - writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| BoundNetLog(), GetParam(), NULL); |
| @@ -5758,12 +5674,8 @@ TEST_P(SpdyNetworkTransactionTest, RetryAfterRefused) { |
| EXPECT_EQ(OK, rv); |
| // Verify that we consumed all test data. |
| - EXPECT_TRUE(data.AllReadDataConsumed()) |
| - << "Read count: " << data.read_count() |
| - << " Read index: " << data.read_index(); |
| - EXPECT_TRUE(data.AllWriteDataConsumed()) |
| - << "Write count: " << data.write_count() |
| - << " Write index: " << data.write_index(); |
| + EXPECT_TRUE(data.AllReadDataConsumed()); |
| + EXPECT_TRUE(data.AllWriteDataConsumed()); |
| // Verify the SYN_REPLY. |
| HttpResponseInfo response = *trans->GetResponseInfo(); |
| @@ -6546,7 +6458,7 @@ TEST_P(SpdyNetworkTransactionTest, GoAwayOnOddPushStreamId) { |
| CreateMockWrite(*req, 0), CreateMockWrite(*goaway, 2), |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper( |
| CreateGetRequest(), DEFAULT_PRIORITY, BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -6580,7 +6492,7 @@ TEST_P(SpdyNetworkTransactionTest, |
| CreateMockWrite(*req, 0), CreateMockWrite(*goaway, 3), |
| }; |
| - DelayedSocketData data(1, reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| NormalSpdyTransactionHelper helper( |
| CreateGetRequest(), DEFAULT_PRIORITY, BoundNetLog(), GetParam(), NULL); |
| helper.RunToCompletion(&data); |
| @@ -6595,17 +6507,18 @@ class SpdyNetworkTransactionNoTLSUsageCheckTest |
| // Construct the request. |
| scoped_ptr<SpdyFrame> req( |
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| - MockWrite writes[] = {CreateMockWrite(*req)}; |
| + MockWrite writes[] = {CreateMockWrite(*req, 0)}; |
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true)); |
| MockRead reads[] = { |
| - CreateMockRead(*resp), CreateMockRead(*body), |
| - MockRead(ASYNC, 0, 0) // EOF |
| + CreateMockRead(*resp, 1), |
| + CreateMockRead(*body, 2), |
| + MockRead(ASYNC, 0, 3) // EOF |
| }; |
| - DelayedSocketData data( |
| - 1, reads, arraysize(reads), writes, arraysize(writes)); |
| + SequencedSocketData data(reads, arraysize(reads), writes, |
| + arraysize(writes)); |
| HttpRequestInfo request; |
| request.method = "GET"; |
| request.url = GURL("https://www.example.org/"); |
| @@ -6657,7 +6570,7 @@ class SpdyNetworkTransactionTLSUsageCheckTest |
| spdy_util_.ConstructSpdyGoAway(0, GOAWAY_INADEQUATE_SECURITY, "")); |
| MockWrite writes[] = {CreateMockWrite(*goaway)}; |
| - DelayedSocketData data(1, NULL, 0, writes, arraysize(writes)); |
| + StaticSocketDataProvider data(NULL, 0, writes, arraysize(writes)); |
| HttpRequestInfo request; |
| request.method = "GET"; |
| request.url = GURL("https://www.example.org/"); |