| 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 6f522275e30e9495ea2e7324528f924fcbbe9cec..28f4a18457fa06524c4e0ae25f67dd1fa6796a5b 100644
|
| --- a/net/spdy/spdy_network_transaction_unittest.cc
|
| +++ b/net/spdy/spdy_network_transaction_unittest.cc
|
| @@ -2285,18 +2285,19 @@
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| MockRead reads[] = {
|
| - CreateMockRead(*resp, 1),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause
|
| - MockRead(ASYNC, reinterpret_cast<const char*>(kGetBodyFrame2),
|
| - arraysize(kGetBodyFrame2), 3),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause
|
| - MockRead(ASYNC, 0, 0, 5), // EOF
|
| + CreateMockRead(*resp, 2),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause
|
| + MockRead(ASYNC, reinterpret_cast<const char*>(kGetBodyFrame2),
|
| + arraysize(kGetBodyFrame2), 4),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause
|
| + MockRead(ASYNC, 0, 0, 6), // EOF
|
| };
|
| MockRead reads2[] = {
|
| CreateMockRead(*resp, 1), MockRead(ASYNC, 0, 0, 2), // EOF
|
| };
|
|
|
| - SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
| + OrderedSocketData data(reads, arraysize(reads),
|
| + writes, arraysize(writes));
|
| SequencedSocketData data2(reads2, arraysize(reads2), writes2,
|
| arraysize(writes2));
|
|
|
| @@ -2319,7 +2320,6 @@
|
| buf.get(), kSize,
|
| base::Bind(&SpdyNetworkTransactionTest::StartTransactionCallback,
|
| helper.session(), GURL(GetDefaultUrl())));
|
| - ASSERT_EQ(ERR_IO_PENDING, rv);
|
| // This forces an err_IO_pending, which sets the callback.
|
| data.CompleteRead();
|
| // This finishes the read.
|
| @@ -2333,18 +2333,19 @@
|
| TEST_P(SpdyNetworkTransactionTest, DeleteSessionOnReadCallback) {
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
| - MockWrite writes[] = {CreateMockWrite(*req, 0)};
|
| + MockWrite writes[] = { CreateMockWrite(*req) };
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead reads[] = {
|
| - CreateMockRead(*resp.get(), 1),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause
|
| - CreateMockRead(*body.get(), 3),
|
| - MockRead(ASYNC, 0, 0, 4), // EOF
|
| - };
|
| -
|
| - SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
| + CreateMockRead(*resp.get(), 2),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause
|
| + CreateMockRead(*body.get(), 4),
|
| + MockRead(ASYNC, 0, 0, 5), // EOF
|
| + };
|
| +
|
| + OrderedSocketData data(reads, arraysize(reads),
|
| + writes, arraysize(writes));
|
|
|
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY,
|
| BoundNetLog(), GetParam(), NULL);
|
| @@ -3673,15 +3674,16 @@
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| MockRead reads[] = {
|
| - CreateMockRead(*resp, 1),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause
|
| - MockRead(ASYNC, combined_data_frames, combined_data_frames_len, 3),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause
|
| - CreateMockRead(*last_frame, 5),
|
| - MockRead(ASYNC, 0, 6) // EOF
|
| - };
|
| -
|
| - SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
| + CreateMockRead(*resp),
|
| + MockRead(ASYNC, ERR_IO_PENDING), // Force a pause
|
| + MockRead(ASYNC, combined_data_frames, combined_data_frames_len),
|
| + MockRead(ASYNC, ERR_IO_PENDING), // Force a pause
|
| + CreateMockRead(*last_frame),
|
| + MockRead(ASYNC, 0, 0) // EOF
|
| + };
|
| +
|
| + DelayedSocketData data(1, reads, arraysize(reads),
|
| + writes, arraysize(writes));
|
|
|
| TestCompletionCallback callback;
|
|
|
| @@ -3746,7 +3748,7 @@
|
|
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
| - MockWrite writes[] = {CreateMockWrite(*req, 0)};
|
| + MockWrite writes[] = { CreateMockWrite(*req) };
|
|
|
| // 4 data frames in a single read.
|
| scoped_ptr<SpdyFrame> data_frame(
|
| @@ -3766,13 +3768,14 @@
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| MockRead reads[] = {
|
| - CreateMockRead(*resp, 1),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause
|
| - MockRead(ASYNC, combined_data_frames, combined_data_frames_len, 3),
|
| - MockRead(ASYNC, 0, 4) // EOF
|
| - };
|
| -
|
| - SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
| + CreateMockRead(*resp),
|
| + MockRead(ASYNC, ERR_IO_PENDING), // Force a pause
|
| + MockRead(ASYNC, combined_data_frames, combined_data_frames_len),
|
| + MockRead(ASYNC, 0, 0) // EOF
|
| + };
|
| +
|
| + DelayedSocketData data(1, reads, arraysize(reads),
|
| + writes, arraysize(writes));
|
|
|
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY,
|
| BoundNetLog(), GetParam(), NULL);
|
| @@ -3924,7 +3927,7 @@
|
|
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
| - MockWrite writes[] = {CreateMockWrite(*req, 0)};
|
| + MockWrite writes[] = { CreateMockWrite(*req) };
|
|
|
| // All data frames in a single read.
|
| // NOTE: We don't FIN the stream.
|
| @@ -3942,13 +3945,14 @@
|
| combined_data_frames, arraysize(combined_data_frames));
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| MockRead reads[] = {
|
| - CreateMockRead(*resp, 1),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a wait
|
| - MockRead(ASYNC, combined_data_frames, combined_data_frames_len, 3),
|
| - MockRead(ASYNC, 0, 4) // EOF
|
| - };
|
| -
|
| - SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
| + CreateMockRead(*resp),
|
| + MockRead(ASYNC, ERR_IO_PENDING), // Force a wait
|
| + MockRead(ASYNC, combined_data_frames, combined_data_frames_len),
|
| + MockRead(ASYNC, 0, 0) // EOF
|
| + };
|
| +
|
| + DelayedSocketData data(1, reads, arraysize(reads),
|
| + writes, arraysize(writes));
|
|
|
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY,
|
| BoundNetLog(), GetParam(), NULL);
|
| @@ -4016,7 +4020,7 @@
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
| scoped_ptr<SpdyFrame> rst(
|
| spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
|
| - MockWrite writes[] = {CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4)};
|
| + MockWrite writes[] = {CreateMockWrite(*req), CreateMockWrite(*rst)};
|
|
|
| // NOTE: We don't FIN the stream.
|
| scoped_ptr<SpdyFrame> data_frame(
|
| @@ -4024,13 +4028,14 @@
|
|
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| MockRead reads[] = {
|
| - CreateMockRead(*resp, 1),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a wait
|
| - CreateMockRead(*data_frame, 3),
|
| - MockRead(ASYNC, 0, 5) // EOF
|
| - };
|
| -
|
| - SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
| + CreateMockRead(*resp),
|
| + MockRead(ASYNC, ERR_IO_PENDING), // Force a wait
|
| + CreateMockRead(*data_frame),
|
| + MockRead(ASYNC, 0, 0) // EOF
|
| + };
|
| +
|
| + DelayedSocketData data(1, reads, arraysize(reads),
|
| + writes, arraysize(writes));
|
|
|
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY,
|
| BoundNetLog(), GetParam(), NULL);
|
| @@ -4259,11 +4264,17 @@
|
| scoped_ptr<SpdyFrame> req(
|
| spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
|
|
|
| - MockWrite writes[] = {
|
| - CreateMockWrite(*initial_settings_frame, 0),
|
| - CreateMockWrite(*settings_frame, 1),
|
| - CreateMockWrite(*req, 2),
|
| - };
|
| + std::vector<MockWrite> writes;
|
| + if ((GetParam().protocol >= kProtoSPDY4MinimumVersion) &&
|
| + (GetParam().protocol <= kProtoSPDY4MaximumVersion)) {
|
| + writes.push_back(
|
| + MockWrite(ASYNC,
|
| + kHttp2ConnectionHeaderPrefix,
|
| + kHttp2ConnectionHeaderPrefixSize));
|
| + }
|
| + writes.push_back(CreateMockWrite(*initial_settings_frame));
|
| + writes.push_back(CreateMockWrite(*settings_frame));
|
| + writes.push_back(CreateMockWrite(*req));
|
|
|
| // Construct the reply.
|
| scoped_ptr<SpdyHeaderBlock> reply_headers(new SpdyHeaderBlock());
|
| @@ -4274,12 +4285,13 @@
|
|
|
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead reads[] = {
|
| - CreateMockRead(*reply, 3),
|
| - CreateMockRead(*body, 4),
|
| - MockRead(ASYNC, 0, 5) // EOF
|
| - };
|
| -
|
| - SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
| + CreateMockRead(*reply),
|
| + CreateMockRead(*body),
|
| + MockRead(ASYNC, 0, 0) // EOF
|
| + };
|
| +
|
| + DelayedSocketData data(2, reads, arraysize(reads),
|
| + vector_as_array(&writes), writes.size());
|
| helper.AddData(&data);
|
| helper.RunDefaultTest();
|
| helper.VerifyDataConsumed();
|
| @@ -4783,16 +4795,16 @@
|
| scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
|
| scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true));
|
| MockRead reads[] = {
|
| - CreateMockRead(*resp, 1),
|
| - CreateMockRead(*body, 2),
|
| - MockRead(ASYNC, ERR_IO_PENDING, 3),
|
| - MockRead(ASYNC, ERR_CONNECTION_RESET, 4),
|
| + CreateMockRead(*resp, 0),
|
| + CreateMockRead(*body, 1),
|
| + MockRead(ASYNC, ERR_IO_PENDING, 2),
|
| + MockRead(ASYNC, ERR_CONNECTION_RESET, 3),
|
| };
|
|
|
| MockRead reads2[] = {
|
| - CreateMockRead(*resp, 1),
|
| - CreateMockRead(*body, 2),
|
| - MockRead(ASYNC, 0, 3) // EOF
|
| + CreateMockRead(*resp, 0),
|
| + CreateMockRead(*body, 1),
|
| + MockRead(ASYNC, 0, 2) // EOF
|
| };
|
|
|
| // This test has a couple of variants.
|
| @@ -5499,7 +5511,8 @@
|
| MockRead(ASYNC, 0, 6) // EOF
|
| };
|
|
|
| - SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
|
| + DelayedSocketData data(1, reads, arraysize(reads),
|
| + writes, arraysize(writes));
|
| NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY,
|
| BoundNetLog(), GetParam(), NULL);
|
| helper.RunToCompletion(&data);
|
|
|