| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/spdy/spdy_session.h" | 5 #include "net/spdy/spdy_session.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/base64.h" | 10 #include "base/base64.h" |
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 // for crbug.com/379469 | 597 // for crbug.com/379469 |
| 598 TEST_F(SpdySessionTest, GoAwayWhileDraining) { | 598 TEST_F(SpdySessionTest, GoAwayWhileDraining) { |
| 599 session_deps_.host_resolver->set_synchronous_mode(true); | 599 session_deps_.host_resolver->set_synchronous_mode(true); |
| 600 | 600 |
| 601 SpdySerializedFrame req( | 601 SpdySerializedFrame req( |
| 602 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 602 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 603 MockWrite writes[] = { | 603 MockWrite writes[] = { |
| 604 CreateMockWrite(req, 0), | 604 CreateMockWrite(req, 0), |
| 605 }; | 605 }; |
| 606 | 606 |
| 607 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 607 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 608 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway(1)); | 608 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway(1)); |
| 609 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); | 609 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 610 size_t joint_size = goaway.size() * 2 + body.size(); | 610 size_t joint_size = goaway.size() * 2 + body.size(); |
| 611 | 611 |
| 612 // Compose interleaved |goaway| and |body| frames into a single read. | 612 // Compose interleaved |goaway| and |body| frames into a single read. |
| 613 std::unique_ptr<char[]> buffer(new char[joint_size]); | 613 std::unique_ptr<char[]> buffer(new char[joint_size]); |
| 614 { | 614 { |
| 615 size_t out = 0; | 615 size_t out = 0; |
| 616 memcpy(&buffer[out], goaway.data(), goaway.size()); | 616 memcpy(&buffer[out], goaway.data(), goaway.size()); |
| 617 out += goaway.size(); | 617 out += goaway.size(); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 test_url_, MEDIUM, BoundNetLog(), | 698 test_url_, MEDIUM, BoundNetLog(), |
| 699 CompletionCallback()); | 699 CompletionCallback()); |
| 700 EXPECT_THAT(rv, IsError(ERR_FAILED)); | 700 EXPECT_THAT(rv, IsError(ERR_FAILED)); |
| 701 | 701 |
| 702 EXPECT_TRUE(session_); | 702 EXPECT_TRUE(session_); |
| 703 data.Resume(); | 703 data.Resume(); |
| 704 base::RunLoop().RunUntilIdle(); | 704 base::RunLoop().RunUntilIdle(); |
| 705 EXPECT_FALSE(session_); | 705 EXPECT_FALSE(session_); |
| 706 } | 706 } |
| 707 | 707 |
| 708 // Receiving a SYN_STREAM frame after a GOAWAY frame should result in | 708 // Receiving a HEADERS frame after a GOAWAY frame should result in |
| 709 // the stream being refused. | 709 // the stream being refused. |
| 710 TEST_F(SpdySessionTest, SynStreamAfterGoAway) { | 710 TEST_F(SpdySessionTest, HeadersAfterGoAway) { |
| 711 session_deps_.host_resolver->set_synchronous_mode(true); | 711 session_deps_.host_resolver->set_synchronous_mode(true); |
| 712 | 712 |
| 713 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway(1)); | 713 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway(1)); |
| 714 SpdySerializedFrame push( | 714 SpdySerializedFrame push( |
| 715 spdy_util_.ConstructSpdyPush(nullptr, 0, 2, 1, kDefaultUrl)); | 715 spdy_util_.ConstructSpdyPush(nullptr, 0, 2, 1, kDefaultUrl)); |
| 716 MockRead reads[] = { | 716 MockRead reads[] = { |
| 717 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(goaway, 2), | 717 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(goaway, 2), |
| 718 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push, 4), | 718 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push, 4), |
| 719 MockRead(ASYNC, 0, 6) // EOF | 719 MockRead(ASYNC, 0, 6) // EOF |
| 720 }; | 720 }; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 743 | 743 |
| 744 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 744 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 745 | 745 |
| 746 // Read and process the GOAWAY frame. | 746 // Read and process the GOAWAY frame. |
| 747 data.Resume(); | 747 data.Resume(); |
| 748 base::RunLoop().RunUntilIdle(); | 748 base::RunLoop().RunUntilIdle(); |
| 749 | 749 |
| 750 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); | 750 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); |
| 751 EXPECT_TRUE(session_->IsStreamActive(1)); | 751 EXPECT_TRUE(session_->IsStreamActive(1)); |
| 752 | 752 |
| 753 // Read and process the SYN_STREAM frame, the subsequent RST_STREAM, | 753 // Read and process the HEADERS frame, the subsequent RST_STREAM, |
| 754 // and EOF. | 754 // and EOF. |
| 755 data.Resume(); | 755 data.Resume(); |
| 756 base::RunLoop().RunUntilIdle(); | 756 base::RunLoop().RunUntilIdle(); |
| 757 EXPECT_FALSE(session_); | 757 EXPECT_FALSE(session_); |
| 758 } | 758 } |
| 759 | 759 |
| 760 // A session observing a network change with active streams should close | 760 // A session observing a network change with active streams should close |
| 761 // when the last active stream is closed. | 761 // when the last active stream is closed. |
| 762 TEST_F(SpdySessionTest, NetworkChangeWithActiveStreams) { | 762 TEST_F(SpdySessionTest, NetworkChangeWithActiveStreams) { |
| 763 session_deps_.host_resolver->set_synchronous_mode(true); | 763 session_deps_.host_resolver->set_synchronous_mode(true); |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 960 SpdySerializedFrame req1( | 960 SpdySerializedFrame req1( |
| 961 spdy_util_.ConstructSpdyGet(nullptr, 0, kLastStreamId - 2, MEDIUM, true)); | 961 spdy_util_.ConstructSpdyGet(nullptr, 0, kLastStreamId - 2, MEDIUM, true)); |
| 962 SpdySerializedFrame req2( | 962 SpdySerializedFrame req2( |
| 963 spdy_util_.ConstructSpdyGet(nullptr, 0, kLastStreamId, MEDIUM, true)); | 963 spdy_util_.ConstructSpdyGet(nullptr, 0, kLastStreamId, MEDIUM, true)); |
| 964 | 964 |
| 965 MockWrite writes[] = { | 965 MockWrite writes[] = { |
| 966 CreateMockWrite(req1, 0), CreateMockWrite(req2, 1), | 966 CreateMockWrite(req1, 0), CreateMockWrite(req2, 1), |
| 967 }; | 967 }; |
| 968 | 968 |
| 969 SpdySerializedFrame resp1( | 969 SpdySerializedFrame resp1( |
| 970 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, kLastStreamId - 2)); | 970 spdy_util_.ConstructSpdyGetReply(nullptr, 0, kLastStreamId - 2)); |
| 971 SpdySerializedFrame resp2( | 971 SpdySerializedFrame resp2( |
| 972 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, kLastStreamId)); | 972 spdy_util_.ConstructSpdyGetReply(nullptr, 0, kLastStreamId)); |
| 973 | 973 |
| 974 SpdySerializedFrame body1( | 974 SpdySerializedFrame body1( |
| 975 spdy_util_.ConstructSpdyDataFrame(kLastStreamId - 2, true)); | 975 spdy_util_.ConstructSpdyDataFrame(kLastStreamId - 2, true)); |
| 976 SpdySerializedFrame body2( | 976 SpdySerializedFrame body2( |
| 977 spdy_util_.ConstructSpdyDataFrame(kLastStreamId, true)); | 977 spdy_util_.ConstructSpdyDataFrame(kLastStreamId, true)); |
| 978 | 978 |
| 979 MockRead reads[] = { | 979 MockRead reads[] = { |
| 980 CreateMockRead(resp1, 2), CreateMockRead(resp2, 3), | 980 CreateMockRead(resp1, 2), CreateMockRead(resp2, 3), |
| 981 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(body1, 5), | 981 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(body1, 5), |
| 982 CreateMockRead(body2, 6), MockRead(ASYNC, 0, 7) // EOF | 982 CreateMockRead(body2, 6), MockRead(ASYNC, 0, 7) // EOF |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1080 SpdySerializedFrame settings_frame_one( | 1080 SpdySerializedFrame settings_frame_one( |
| 1081 spdy_util_.ConstructSpdySettings(settings_one)); | 1081 spdy_util_.ConstructSpdySettings(settings_one)); |
| 1082 | 1082 |
| 1083 // Acknowledge it. | 1083 // Acknowledge it. |
| 1084 SpdySerializedFrame settings_ack1(spdy_util_.ConstructSpdySettingsAck()); | 1084 SpdySerializedFrame settings_ack1(spdy_util_.ConstructSpdySettingsAck()); |
| 1085 | 1085 |
| 1086 // Request and response. | 1086 // Request and response. |
| 1087 SpdySerializedFrame req( | 1087 SpdySerializedFrame req( |
| 1088 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 1088 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 1089 | 1089 |
| 1090 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 1090 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 1091 | 1091 |
| 1092 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); | 1092 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 1093 | 1093 |
| 1094 MockRead reads[] = {CreateMockRead(settings_frame_zero, 0), | 1094 MockRead reads[] = {CreateMockRead(settings_frame_zero, 0), |
| 1095 MockRead(ASYNC, ERR_IO_PENDING, 2), | 1095 MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 1096 CreateMockRead(settings_frame_one, 3), | 1096 CreateMockRead(settings_frame_one, 3), |
| 1097 CreateMockRead(resp, 6), | 1097 CreateMockRead(resp, 6), |
| 1098 CreateMockRead(body, 7), | 1098 CreateMockRead(body, 7), |
| 1099 MockRead(ASYNC, 0, 8)}; | 1099 MockRead(ASYNC, 0, 8)}; |
| 1100 | 1100 |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1255 // Verify that there is one unclaimed push stream. | 1255 // Verify that there is one unclaimed push stream. |
| 1256 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); | 1256 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); |
| 1257 EXPECT_EQ(1u, session_->count_unclaimed_pushed_streams_for_url( | 1257 EXPECT_EQ(1u, session_->count_unclaimed_pushed_streams_for_url( |
| 1258 GURL("https://www.example.org/a.dat"))); | 1258 GURL("https://www.example.org/a.dat"))); |
| 1259 | 1259 |
| 1260 // Unclaimed push body consumed bytes from the session window. | 1260 // Unclaimed push body consumed bytes from the session window. |
| 1261 EXPECT_EQ(kDefaultInitialWindowSize - kUploadDataSize, | 1261 EXPECT_EQ(kDefaultInitialWindowSize - kUploadDataSize, |
| 1262 session_->session_recv_window_size_); | 1262 session_->session_recv_window_size_); |
| 1263 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); | 1263 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); |
| 1264 | 1264 |
| 1265 // Shift time to expire the push stream. Read the second SYN_STREAM, | 1265 // Shift time to expire the push stream. Read the second HEADERS, |
| 1266 // and verify a RST_STREAM was written. | 1266 // and verify a RST_STREAM was written. |
| 1267 g_time_delta = base::TimeDelta::FromSeconds(301); | 1267 g_time_delta = base::TimeDelta::FromSeconds(301); |
| 1268 data.Resume(); | 1268 data.Resume(); |
| 1269 base::RunLoop().RunUntilIdle(); | 1269 base::RunLoop().RunUntilIdle(); |
| 1270 | 1270 |
| 1271 // Verify that the second pushed stream evicted the first pushed stream. | 1271 // Verify that the second pushed stream evicted the first pushed stream. |
| 1272 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); | 1272 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); |
| 1273 EXPECT_EQ(1u, session_->count_unclaimed_pushed_streams_for_url( | 1273 EXPECT_EQ(1u, session_->count_unclaimed_pushed_streams_for_url( |
| 1274 GURL("https://www.example.org/0.dat"))); | 1274 GURL("https://www.example.org/0.dat"))); |
| 1275 | 1275 |
| (...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1672 histogram_tester.ExpectBucketCount( | 1672 histogram_tester.ExpectBucketCount( |
| 1673 "Net.SpdySynStreamCompressionPercentage", 81, 1); | 1673 "Net.SpdySynStreamCompressionPercentage", 81, 1); |
| 1674 | 1674 |
| 1675 // Read and process EOF. | 1675 // Read and process EOF. |
| 1676 EXPECT_TRUE(session_); | 1676 EXPECT_TRUE(session_); |
| 1677 data.Resume(); | 1677 data.Resume(); |
| 1678 base::RunLoop().RunUntilIdle(); | 1678 base::RunLoop().RunUntilIdle(); |
| 1679 EXPECT_FALSE(session_); | 1679 EXPECT_FALSE(session_); |
| 1680 } | 1680 } |
| 1681 | 1681 |
| 1682 // Queue up a low-priority SYN_STREAM followed by a high-priority | 1682 // Queue up a low-priority HEADERS followed by a high-priority |
| 1683 // one. The high priority one should still send first and receive | 1683 // one. The high priority one should still send first and receive |
| 1684 // first. | 1684 // first. |
| 1685 TEST_F(SpdySessionTest, OutOfOrderSynStreams) { | 1685 TEST_F(SpdySessionTest, OutOfOrderHeaders) { |
| 1686 // Construct the request. | 1686 // Construct the request. |
| 1687 SpdySerializedFrame req_highest( | 1687 SpdySerializedFrame req_highest( |
| 1688 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, HIGHEST, true)); | 1688 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, HIGHEST, true)); |
| 1689 SpdySerializedFrame req_lowest( | 1689 SpdySerializedFrame req_lowest( |
| 1690 spdy_util_.ConstructSpdyGet(nullptr, 0, 3, LOWEST, true)); | 1690 spdy_util_.ConstructSpdyGet(nullptr, 0, 3, LOWEST, true)); |
| 1691 MockWrite writes[] = { | 1691 MockWrite writes[] = { |
| 1692 CreateMockWrite(req_highest, 0), CreateMockWrite(req_lowest, 1), | 1692 CreateMockWrite(req_highest, 0), CreateMockWrite(req_lowest, 1), |
| 1693 }; | 1693 }; |
| 1694 | 1694 |
| 1695 SpdySerializedFrame resp_highest( | 1695 SpdySerializedFrame resp_highest( |
| 1696 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 1696 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 1697 SpdySerializedFrame body_highest(spdy_util_.ConstructSpdyDataFrame(1, true)); | 1697 SpdySerializedFrame body_highest(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 1698 SpdySerializedFrame resp_lowest( | 1698 SpdySerializedFrame resp_lowest( |
| 1699 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 3)); | 1699 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 3)); |
| 1700 SpdySerializedFrame body_lowest(spdy_util_.ConstructSpdyDataFrame(3, true)); | 1700 SpdySerializedFrame body_lowest(spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 1701 MockRead reads[] = { | 1701 MockRead reads[] = { |
| 1702 CreateMockRead(resp_highest, 2), CreateMockRead(body_highest, 3), | 1702 CreateMockRead(resp_highest, 2), CreateMockRead(body_highest, 3), |
| 1703 CreateMockRead(resp_lowest, 4), CreateMockRead(body_lowest, 5), | 1703 CreateMockRead(resp_lowest, 4), CreateMockRead(body_lowest, 5), |
| 1704 MockRead(ASYNC, 0, 6) // EOF | 1704 MockRead(ASYNC, 0, 6) // EOF |
| 1705 }; | 1705 }; |
| 1706 | 1706 |
| 1707 session_deps_.host_resolver->set_synchronous_mode(true); | 1707 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1708 | 1708 |
| 1709 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 1709 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1749 | 1749 |
| 1750 TEST_F(SpdySessionTest, CancelStream) { | 1750 TEST_F(SpdySessionTest, CancelStream) { |
| 1751 // Request 1, at HIGHEST priority, will be cancelled before it writes data. | 1751 // Request 1, at HIGHEST priority, will be cancelled before it writes data. |
| 1752 // Request 2, at LOWEST priority, will be a full request and will be id 1. | 1752 // Request 2, at LOWEST priority, will be a full request and will be id 1. |
| 1753 SpdySerializedFrame req2( | 1753 SpdySerializedFrame req2( |
| 1754 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 1754 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 1755 MockWrite writes[] = { | 1755 MockWrite writes[] = { |
| 1756 CreateMockWrite(req2, 0), | 1756 CreateMockWrite(req2, 0), |
| 1757 }; | 1757 }; |
| 1758 | 1758 |
| 1759 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 1759 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 1760 SpdySerializedFrame body2(spdy_util_.ConstructSpdyDataFrame(1, true)); | 1760 SpdySerializedFrame body2(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 1761 MockRead reads[] = { | 1761 MockRead reads[] = { |
| 1762 CreateMockRead(resp2, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), | 1762 CreateMockRead(resp2, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 1763 CreateMockRead(body2, 3), MockRead(ASYNC, 0, 4) // EOF | 1763 CreateMockRead(body2, 3), MockRead(ASYNC, 0, 4) // EOF |
| 1764 }; | 1764 }; |
| 1765 | 1765 |
| 1766 session_deps_.host_resolver->set_synchronous_mode(true); | 1766 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1767 | 1767 |
| 1768 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 1768 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 1769 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1769 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2213 MockWrite writes[] = { | 2213 MockWrite writes[] = { |
| 2214 CreateMockWrite(settings_ack, 1), CreateMockWrite(req1, 2), | 2214 CreateMockWrite(settings_ack, 1), CreateMockWrite(req1, 2), |
| 2215 CreateMockWrite(req2, 5), CreateMockWrite(req3, 8), | 2215 CreateMockWrite(req2, 5), CreateMockWrite(req3, 8), |
| 2216 }; | 2216 }; |
| 2217 | 2217 |
| 2218 // Set up the socket so we read a SETTINGS frame that sets max concurrent | 2218 // Set up the socket so we read a SETTINGS frame that sets max concurrent |
| 2219 // streams to 1. | 2219 // streams to 1. |
| 2220 SpdySerializedFrame settings_frame( | 2220 SpdySerializedFrame settings_frame( |
| 2221 spdy_util_.ConstructSpdySettings(new_settings)); | 2221 spdy_util_.ConstructSpdySettings(new_settings)); |
| 2222 | 2222 |
| 2223 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 2223 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2224 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, true)); | 2224 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 2225 | 2225 |
| 2226 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 3)); | 2226 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 3)); |
| 2227 SpdySerializedFrame body2(spdy_util_.ConstructSpdyDataFrame(3, true)); | 2227 SpdySerializedFrame body2(spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 2228 | 2228 |
| 2229 SpdySerializedFrame resp3(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 5)); | 2229 SpdySerializedFrame resp3(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 5)); |
| 2230 SpdySerializedFrame body3(spdy_util_.ConstructSpdyDataFrame(5, true)); | 2230 SpdySerializedFrame body3(spdy_util_.ConstructSpdyDataFrame(5, true)); |
| 2231 | 2231 |
| 2232 MockRead reads[] = { | 2232 MockRead reads[] = { |
| 2233 CreateMockRead(settings_frame, 0), | 2233 CreateMockRead(settings_frame, 0), |
| 2234 CreateMockRead(resp1, 3), | 2234 CreateMockRead(resp1, 3), |
| 2235 CreateMockRead(body1, 4), | 2235 CreateMockRead(body1, 4), |
| 2236 CreateMockRead(resp2, 6), | 2236 CreateMockRead(resp2, 6), |
| 2237 CreateMockRead(body2, 7), | 2237 CreateMockRead(body2, 7), |
| 2238 CreateMockRead(resp3, 9), | 2238 CreateMockRead(resp3, 9), |
| 2239 CreateMockRead(body3, 10), | 2239 CreateMockRead(body3, 10), |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2432 TestDataStream test_stream; | 2432 TestDataStream test_stream; |
| 2433 scoped_refptr<IOBuffer> payload(new IOBuffer(kPayloadSize)); | 2433 scoped_refptr<IOBuffer> payload(new IOBuffer(kPayloadSize)); |
| 2434 char* payload_data = payload->data(); | 2434 char* payload_data = payload->data(); |
| 2435 test_stream.GetBytes(payload_data, kPayloadSize); | 2435 test_stream.GetBytes(payload_data, kPayloadSize); |
| 2436 | 2436 |
| 2437 SpdySerializedFrame partial_data_frame(spdy_util_.ConstructSpdyDataFrame( | 2437 SpdySerializedFrame partial_data_frame(spdy_util_.ConstructSpdyDataFrame( |
| 2438 1, payload_data, kPayloadSize, /*fin=*/false)); | 2438 1, payload_data, kPayloadSize, /*fin=*/false)); |
| 2439 SpdySerializedFrame finish_data_frame(spdy_util_.ConstructSpdyDataFrame( | 2439 SpdySerializedFrame finish_data_frame(spdy_util_.ConstructSpdyDataFrame( |
| 2440 1, payload_data, kPayloadSize - 1, /*fin=*/true)); | 2440 1, payload_data, kPayloadSize - 1, /*fin=*/true)); |
| 2441 | 2441 |
| 2442 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 2442 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2443 | 2443 |
| 2444 // Write 1 byte less than kMaxReadBytes to check that DoRead reads up to 32k | 2444 // Write 1 byte less than kMaxReadBytes to check that DoRead reads up to 32k |
| 2445 // bytes. | 2445 // bytes. |
| 2446 MockRead reads[] = { | 2446 MockRead reads[] = { |
| 2447 CreateMockRead(resp1, 1), | 2447 CreateMockRead(resp1, 1), |
| 2448 MockRead(ASYNC, ERR_IO_PENDING, 2), | 2448 MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 2449 CreateMockRead(partial_data_frame, 3), | 2449 CreateMockRead(partial_data_frame, 3), |
| 2450 CreateMockRead(partial_data_frame, 4, SYNCHRONOUS), | 2450 CreateMockRead(partial_data_frame, 4, SYNCHRONOUS), |
| 2451 CreateMockRead(partial_data_frame, 5, SYNCHRONOUS), | 2451 CreateMockRead(partial_data_frame, 5, SYNCHRONOUS), |
| 2452 CreateMockRead(finish_data_frame, 6, SYNCHRONOUS), | 2452 CreateMockRead(finish_data_frame, 6, SYNCHRONOUS), |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2499 TEST_F(SpdySessionTest, TestYieldingSlowReads) { | 2499 TEST_F(SpdySessionTest, TestYieldingSlowReads) { |
| 2500 session_deps_.host_resolver->set_synchronous_mode(true); | 2500 session_deps_.host_resolver->set_synchronous_mode(true); |
| 2501 session_deps_.time_func = SlowReads; | 2501 session_deps_.time_func = SlowReads; |
| 2502 | 2502 |
| 2503 SpdySerializedFrame req1( | 2503 SpdySerializedFrame req1( |
| 2504 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 2504 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 2505 MockWrite writes[] = { | 2505 MockWrite writes[] = { |
| 2506 CreateMockWrite(req1, 0), | 2506 CreateMockWrite(req1, 0), |
| 2507 }; | 2507 }; |
| 2508 | 2508 |
| 2509 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 2509 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2510 | 2510 |
| 2511 MockRead reads[] = { | 2511 MockRead reads[] = { |
| 2512 CreateMockRead(resp1, 1), MockRead(ASYNC, 0, 2) // EOF | 2512 CreateMockRead(resp1, 1), MockRead(ASYNC, 0, 2) // EOF |
| 2513 }; | 2513 }; |
| 2514 | 2514 |
| 2515 // Create SpdySession and SpdyStream and send the request. | 2515 // Create SpdySession and SpdyStream and send the request. |
| 2516 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 2516 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 2517 session_deps_.socket_factory->AddSocketDataProvider(&data); | 2517 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 2518 | 2518 |
| 2519 CreateNetworkSession(); | 2519 CreateNetworkSession(); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2560 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 2560 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 2561 MockWrite writes[] = { | 2561 MockWrite writes[] = { |
| 2562 CreateMockWrite(req1, 0), | 2562 CreateMockWrite(req1, 0), |
| 2563 }; | 2563 }; |
| 2564 | 2564 |
| 2565 SpdySerializedFrame partial_data_frame( | 2565 SpdySerializedFrame partial_data_frame( |
| 2566 spdy_util_.ConstructSpdyDataFrame(1, "foo ", 4, /*fin=*/false)); | 2566 spdy_util_.ConstructSpdyDataFrame(1, "foo ", 4, /*fin=*/false)); |
| 2567 SpdySerializedFrame finish_data_frame( | 2567 SpdySerializedFrame finish_data_frame( |
| 2568 spdy_util_.ConstructSpdyDataFrame(1, "bar", 3, /*fin=*/true)); | 2568 spdy_util_.ConstructSpdyDataFrame(1, "bar", 3, /*fin=*/true)); |
| 2569 | 2569 |
| 2570 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 2570 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2571 | 2571 |
| 2572 MockRead reads[] = { | 2572 MockRead reads[] = { |
| 2573 CreateMockRead(resp1, 1), | 2573 CreateMockRead(resp1, 1), |
| 2574 MockRead(ASYNC, ERR_IO_PENDING, 2), | 2574 MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 2575 CreateMockRead(partial_data_frame, 3, ASYNC), | 2575 CreateMockRead(partial_data_frame, 3, ASYNC), |
| 2576 CreateMockRead(partial_data_frame, 4, SYNCHRONOUS), | 2576 CreateMockRead(partial_data_frame, 4, SYNCHRONOUS), |
| 2577 CreateMockRead(partial_data_frame, 5, SYNCHRONOUS), | 2577 CreateMockRead(partial_data_frame, 5, SYNCHRONOUS), |
| 2578 CreateMockRead(finish_data_frame, 6, SYNCHRONOUS), | 2578 CreateMockRead(finish_data_frame, 6, SYNCHRONOUS), |
| 2579 MockRead(ASYNC, 0, 7) // EOF | 2579 MockRead(ASYNC, 0, 7) // EOF |
| 2580 }; | 2580 }; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2636 TestDataStream test_stream; | 2636 TestDataStream test_stream; |
| 2637 scoped_refptr<IOBuffer> payload(new IOBuffer(kPayloadSize)); | 2637 scoped_refptr<IOBuffer> payload(new IOBuffer(kPayloadSize)); |
| 2638 char* payload_data = payload->data(); | 2638 char* payload_data = payload->data(); |
| 2639 test_stream.GetBytes(payload_data, kPayloadSize); | 2639 test_stream.GetBytes(payload_data, kPayloadSize); |
| 2640 | 2640 |
| 2641 SpdySerializedFrame partial_data_frame(spdy_util_.ConstructSpdyDataFrame( | 2641 SpdySerializedFrame partial_data_frame(spdy_util_.ConstructSpdyDataFrame( |
| 2642 1, payload_data, kPayloadSize, /*fin=*/false)); | 2642 1, payload_data, kPayloadSize, /*fin=*/false)); |
| 2643 SpdySerializedFrame finish_data_frame( | 2643 SpdySerializedFrame finish_data_frame( |
| 2644 spdy_util_.ConstructSpdyDataFrame(1, "h", 1, /*fin=*/true)); | 2644 spdy_util_.ConstructSpdyDataFrame(1, "h", 1, /*fin=*/true)); |
| 2645 | 2645 |
| 2646 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 2646 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2647 | 2647 |
| 2648 // Write 1 byte more than kMaxReadBytes to check that DoRead yields. | 2648 // Write 1 byte more than kMaxReadBytes to check that DoRead yields. |
| 2649 MockRead reads[] = { | 2649 MockRead reads[] = { |
| 2650 CreateMockRead(resp1, 1), | 2650 CreateMockRead(resp1, 1), |
| 2651 MockRead(ASYNC, ERR_IO_PENDING, 2), | 2651 MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 2652 CreateMockRead(partial_data_frame, 3), | 2652 CreateMockRead(partial_data_frame, 3), |
| 2653 CreateMockRead(partial_data_frame, 4, SYNCHRONOUS), | 2653 CreateMockRead(partial_data_frame, 4, SYNCHRONOUS), |
| 2654 CreateMockRead(partial_data_frame, 5, SYNCHRONOUS), | 2654 CreateMockRead(partial_data_frame, 5, SYNCHRONOUS), |
| 2655 CreateMockRead(partial_data_frame, 6, SYNCHRONOUS), | 2655 CreateMockRead(partial_data_frame, 6, SYNCHRONOUS), |
| 2656 CreateMockRead(finish_data_frame, 7, SYNCHRONOUS), | 2656 CreateMockRead(finish_data_frame, 7, SYNCHRONOUS), |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2736 char* twok_payload_data = twok_payload->data(); | 2736 char* twok_payload_data = twok_payload->data(); |
| 2737 test_stream2.GetBytes(twok_payload_data, kTwoKPayloadSize); | 2737 test_stream2.GetBytes(twok_payload_data, kTwoKPayloadSize); |
| 2738 | 2738 |
| 2739 SpdySerializedFrame eightk_data_frame(spdy_util_.ConstructSpdyDataFrame( | 2739 SpdySerializedFrame eightk_data_frame(spdy_util_.ConstructSpdyDataFrame( |
| 2740 1, eightk_payload_data, kEightKPayloadSize, /*fin=*/false)); | 2740 1, eightk_payload_data, kEightKPayloadSize, /*fin=*/false)); |
| 2741 SpdySerializedFrame twok_data_frame(spdy_util_.ConstructSpdyDataFrame( | 2741 SpdySerializedFrame twok_data_frame(spdy_util_.ConstructSpdyDataFrame( |
| 2742 1, twok_payload_data, kTwoKPayloadSize, /*fin=*/false)); | 2742 1, twok_payload_data, kTwoKPayloadSize, /*fin=*/false)); |
| 2743 SpdySerializedFrame finish_data_frame( | 2743 SpdySerializedFrame finish_data_frame( |
| 2744 spdy_util_.ConstructSpdyDataFrame(1, "h", 1, /*fin=*/true)); | 2744 spdy_util_.ConstructSpdyDataFrame(1, "h", 1, /*fin=*/true)); |
| 2745 | 2745 |
| 2746 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 2746 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2747 | 2747 |
| 2748 MockRead reads[] = { | 2748 MockRead reads[] = { |
| 2749 CreateMockRead(resp1, 1), | 2749 CreateMockRead(resp1, 1), |
| 2750 MockRead(ASYNC, ERR_IO_PENDING, 2), | 2750 MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 2751 CreateMockRead(eightk_data_frame, 3), | 2751 CreateMockRead(eightk_data_frame, 3), |
| 2752 CreateMockRead(eightk_data_frame, 4, SYNCHRONOUS), | 2752 CreateMockRead(eightk_data_frame, 4, SYNCHRONOUS), |
| 2753 CreateMockRead(eightk_data_frame, 5, SYNCHRONOUS), | 2753 CreateMockRead(eightk_data_frame, 5, SYNCHRONOUS), |
| 2754 CreateMockRead(twok_data_frame, 6, SYNCHRONOUS), | 2754 CreateMockRead(twok_data_frame, 6, SYNCHRONOUS), |
| 2755 CreateMockRead(eightk_data_frame, 7, ASYNC), | 2755 CreateMockRead(eightk_data_frame, 7, ASYNC), |
| 2756 CreateMockRead(eightk_data_frame, 8, SYNCHRONOUS), | 2756 CreateMockRead(eightk_data_frame, 8, SYNCHRONOUS), |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2806 // nothing blows up. | 2806 // nothing blows up. |
| 2807 TEST_F(SpdySessionTest, GoAwayWhileInDoReadLoop) { | 2807 TEST_F(SpdySessionTest, GoAwayWhileInDoReadLoop) { |
| 2808 session_deps_.host_resolver->set_synchronous_mode(true); | 2808 session_deps_.host_resolver->set_synchronous_mode(true); |
| 2809 | 2809 |
| 2810 SpdySerializedFrame req1( | 2810 SpdySerializedFrame req1( |
| 2811 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 2811 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 2812 MockWrite writes[] = { | 2812 MockWrite writes[] = { |
| 2813 CreateMockWrite(req1, 0), | 2813 CreateMockWrite(req1, 0), |
| 2814 }; | 2814 }; |
| 2815 | 2815 |
| 2816 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 2816 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2817 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, true)); | 2817 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 2818 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway()); | 2818 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway()); |
| 2819 | 2819 |
| 2820 MockRead reads[] = { | 2820 MockRead reads[] = { |
| 2821 CreateMockRead(resp1, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), | 2821 CreateMockRead(resp1, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 2822 CreateMockRead(body1, 3), CreateMockRead(goaway, 4), | 2822 CreateMockRead(body1, 3), CreateMockRead(goaway, 4), |
| 2823 }; | 2823 }; |
| 2824 | 2824 |
| 2825 // Create SpdySession and SpdyStream and send the request. | 2825 // Create SpdySession and SpdyStream and send the request. |
| 2826 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 2826 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| (...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3404 const int32_t data_frame_size = 2 * stream_max_recv_window_size; | 3404 const int32_t data_frame_size = 2 * stream_max_recv_window_size; |
| 3405 | 3405 |
| 3406 SpdySerializedFrame req( | 3406 SpdySerializedFrame req( |
| 3407 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 3407 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 3408 SpdySerializedFrame rst( | 3408 SpdySerializedFrame rst( |
| 3409 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR)); | 3409 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR)); |
| 3410 MockWrite writes[] = { | 3410 MockWrite writes[] = { |
| 3411 CreateMockWrite(req, 0), CreateMockWrite(rst, 4), | 3411 CreateMockWrite(req, 0), CreateMockWrite(rst, 4), |
| 3412 }; | 3412 }; |
| 3413 | 3413 |
| 3414 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 3414 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3415 const std::string payload(data_frame_size, 'a'); | 3415 const std::string payload(data_frame_size, 'a'); |
| 3416 SpdySerializedFrame data_frame(spdy_util_.ConstructSpdyDataFrame( | 3416 SpdySerializedFrame data_frame(spdy_util_.ConstructSpdyDataFrame( |
| 3417 1, payload.data(), data_frame_size, false)); | 3417 1, payload.data(), data_frame_size, false)); |
| 3418 MockRead reads[] = { | 3418 MockRead reads[] = { |
| 3419 CreateMockRead(resp, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), | 3419 CreateMockRead(resp, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 3420 CreateMockRead(data_frame, 3), MockRead(ASYNC, ERR_IO_PENDING, 5), | 3420 CreateMockRead(data_frame, 3), MockRead(ASYNC, ERR_IO_PENDING, 5), |
| 3421 MockRead(ASYNC, 0, 6), | 3421 MockRead(ASYNC, 0, 6), |
| 3422 }; | 3422 }; |
| 3423 | 3423 |
| 3424 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 3424 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3532 first_data_frame_size + second_data_frame_size); | 3532 first_data_frame_size + second_data_frame_size); |
| 3533 | 3533 |
| 3534 SpdySerializedFrame req( | 3534 SpdySerializedFrame req( |
| 3535 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 3535 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 3536 SpdySerializedFrame rst( | 3536 SpdySerializedFrame rst( |
| 3537 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR)); | 3537 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR)); |
| 3538 MockWrite writes[] = { | 3538 MockWrite writes[] = { |
| 3539 CreateMockWrite(req, 0), CreateMockWrite(rst, 6), | 3539 CreateMockWrite(req, 0), CreateMockWrite(rst, 6), |
| 3540 }; | 3540 }; |
| 3541 | 3541 |
| 3542 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 3542 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3543 const std::string first_data_frame(first_data_frame_size, 'a'); | 3543 const std::string first_data_frame(first_data_frame_size, 'a'); |
| 3544 SpdySerializedFrame first(spdy_util_.ConstructSpdyDataFrame( | 3544 SpdySerializedFrame first(spdy_util_.ConstructSpdyDataFrame( |
| 3545 1, first_data_frame.data(), first_data_frame_size, false)); | 3545 1, first_data_frame.data(), first_data_frame_size, false)); |
| 3546 const std::string second_data_frame(second_data_frame_size, 'b'); | 3546 const std::string second_data_frame(second_data_frame_size, 'b'); |
| 3547 SpdySerializedFrame second(spdy_util_.ConstructSpdyDataFrame( | 3547 SpdySerializedFrame second(spdy_util_.ConstructSpdyDataFrame( |
| 3548 1, second_data_frame.data(), second_data_frame_size, false)); | 3548 1, second_data_frame.data(), second_data_frame_size, false)); |
| 3549 MockRead reads[] = { | 3549 MockRead reads[] = { |
| 3550 CreateMockRead(resp, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), | 3550 CreateMockRead(resp, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), |
| 3551 CreateMockRead(first, 3), MockRead(ASYNC, ERR_IO_PENDING, 4), | 3551 CreateMockRead(first, 3), MockRead(ASYNC, ERR_IO_PENDING, 4), |
| 3552 CreateMockRead(second, 5), MockRead(ASYNC, ERR_IO_PENDING, 7), | 3552 CreateMockRead(second, 5), MockRead(ASYNC, ERR_IO_PENDING, 7), |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3621 const std::string msg_data(kMsgDataSize, 'a'); | 3621 const std::string msg_data(kMsgDataSize, 'a'); |
| 3622 | 3622 |
| 3623 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 3623 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 3624 kDefaultUrl, 1, kMsgDataSize, MEDIUM, nullptr, 0)); | 3624 kDefaultUrl, 1, kMsgDataSize, MEDIUM, nullptr, 0)); |
| 3625 SpdySerializedFrame msg(spdy_util_.ConstructSpdyDataFrame( | 3625 SpdySerializedFrame msg(spdy_util_.ConstructSpdyDataFrame( |
| 3626 1, msg_data.data(), kMsgDataSize, false)); | 3626 1, msg_data.data(), kMsgDataSize, false)); |
| 3627 MockWrite writes[] = { | 3627 MockWrite writes[] = { |
| 3628 CreateMockWrite(req, 0), CreateMockWrite(msg, 2), | 3628 CreateMockWrite(req, 0), CreateMockWrite(msg, 2), |
| 3629 }; | 3629 }; |
| 3630 | 3630 |
| 3631 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 3631 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3632 SpdySerializedFrame echo(spdy_util_.ConstructSpdyDataFrame( | 3632 SpdySerializedFrame echo(spdy_util_.ConstructSpdyDataFrame( |
| 3633 1, msg_data.data(), kMsgDataSize, false)); | 3633 1, msg_data.data(), kMsgDataSize, false)); |
| 3634 SpdySerializedFrame window_update(spdy_util_.ConstructSpdyWindowUpdate( | 3634 SpdySerializedFrame window_update(spdy_util_.ConstructSpdyWindowUpdate( |
| 3635 kSessionFlowControlStreamId, kMsgDataSize)); | 3635 kSessionFlowControlStreamId, kMsgDataSize)); |
| 3636 MockRead reads[] = { | 3636 MockRead reads[] = { |
| 3637 CreateMockRead(resp, 1), CreateMockRead(echo, 3), | 3637 CreateMockRead(resp, 1), CreateMockRead(echo, 3), |
| 3638 MockRead(ASYNC, ERR_IO_PENDING, 4), MockRead(ASYNC, 0, 5) // EOF | 3638 MockRead(ASYNC, ERR_IO_PENDING, 4), MockRead(ASYNC, 0, 5) // EOF |
| 3639 }; | 3639 }; |
| 3640 | 3640 |
| 3641 // Create SpdySession and SpdyStream and send the request. | 3641 // Create SpdySession and SpdyStream and send the request. |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3687 TEST_F(SpdySessionTest, SessionFlowControlNoSendLeaks) { | 3687 TEST_F(SpdySessionTest, SessionFlowControlNoSendLeaks) { |
| 3688 const int32_t kMsgDataSize = 100; | 3688 const int32_t kMsgDataSize = 100; |
| 3689 const std::string msg_data(kMsgDataSize, 'a'); | 3689 const std::string msg_data(kMsgDataSize, 'a'); |
| 3690 | 3690 |
| 3691 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 3691 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 3692 kDefaultUrl, 1, kMsgDataSize, MEDIUM, nullptr, 0)); | 3692 kDefaultUrl, 1, kMsgDataSize, MEDIUM, nullptr, 0)); |
| 3693 MockWrite writes[] = { | 3693 MockWrite writes[] = { |
| 3694 CreateMockWrite(req, 0), | 3694 CreateMockWrite(req, 0), |
| 3695 }; | 3695 }; |
| 3696 | 3696 |
| 3697 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 3697 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3698 MockRead reads[] = { | 3698 MockRead reads[] = { |
| 3699 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(resp, 2), | 3699 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(resp, 2), |
| 3700 MockRead(ASYNC, 0, 3) // EOF | 3700 MockRead(ASYNC, 0, 3) // EOF |
| 3701 }; | 3701 }; |
| 3702 | 3702 |
| 3703 // Create SpdySession and SpdyStream and send the request. | 3703 // Create SpdySession and SpdyStream and send the request. |
| 3704 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 3704 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 3705 session_deps_.host_resolver->set_synchronous_mode(true); | 3705 session_deps_.host_resolver->set_synchronous_mode(true); |
| 3706 session_deps_.socket_factory->AddSocketDataProvider(&data); | 3706 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 3707 | 3707 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3758 const std::string msg_data(kMsgDataSize, 'a'); | 3758 const std::string msg_data(kMsgDataSize, 'a'); |
| 3759 | 3759 |
| 3760 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 3760 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 3761 kDefaultUrl, 1, kMsgDataSize, MEDIUM, nullptr, 0)); | 3761 kDefaultUrl, 1, kMsgDataSize, MEDIUM, nullptr, 0)); |
| 3762 SpdySerializedFrame msg(spdy_util_.ConstructSpdyDataFrame( | 3762 SpdySerializedFrame msg(spdy_util_.ConstructSpdyDataFrame( |
| 3763 1, msg_data.data(), kMsgDataSize, false)); | 3763 1, msg_data.data(), kMsgDataSize, false)); |
| 3764 MockWrite writes[] = { | 3764 MockWrite writes[] = { |
| 3765 CreateMockWrite(req, 0), CreateMockWrite(msg, 2), | 3765 CreateMockWrite(req, 0), CreateMockWrite(msg, 2), |
| 3766 }; | 3766 }; |
| 3767 | 3767 |
| 3768 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 3768 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3769 SpdySerializedFrame echo(spdy_util_.ConstructSpdyDataFrame( | 3769 SpdySerializedFrame echo(spdy_util_.ConstructSpdyDataFrame( |
| 3770 1, msg_data.data(), kMsgDataSize, false)); | 3770 1, msg_data.data(), kMsgDataSize, false)); |
| 3771 SpdySerializedFrame window_update(spdy_util_.ConstructSpdyWindowUpdate( | 3771 SpdySerializedFrame window_update(spdy_util_.ConstructSpdyWindowUpdate( |
| 3772 kSessionFlowControlStreamId, kMsgDataSize)); | 3772 kSessionFlowControlStreamId, kMsgDataSize)); |
| 3773 MockRead reads[] = { | 3773 MockRead reads[] = { |
| 3774 CreateMockRead(resp, 1), | 3774 CreateMockRead(resp, 1), |
| 3775 MockRead(ASYNC, ERR_IO_PENDING, 3), | 3775 MockRead(ASYNC, ERR_IO_PENDING, 3), |
| 3776 CreateMockRead(echo, 4), | 3776 CreateMockRead(echo, 4), |
| 3777 MockRead(ASYNC, ERR_IO_PENDING, 5), | 3777 MockRead(ASYNC, ERR_IO_PENDING, 5), |
| 3778 CreateMockRead(window_update, 6), | 3778 CreateMockRead(window_update, 6), |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3863 session_deps_.host_resolver->set_synchronous_mode(true); | 3863 session_deps_.host_resolver->set_synchronous_mode(true); |
| 3864 | 3864 |
| 3865 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 3865 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 3866 kDefaultUrl, 1, kBodyDataSize, LOWEST, nullptr, 0)); | 3866 kDefaultUrl, 1, kBodyDataSize, LOWEST, nullptr, 0)); |
| 3867 SpdySerializedFrame body( | 3867 SpdySerializedFrame body( |
| 3868 spdy_util_.ConstructSpdyDataFrame(1, kBodyData, kBodyDataSize, true)); | 3868 spdy_util_.ConstructSpdyDataFrame(1, kBodyData, kBodyDataSize, true)); |
| 3869 MockWrite writes[] = { | 3869 MockWrite writes[] = { |
| 3870 CreateMockWrite(req, 0), CreateMockWrite(body, 1), | 3870 CreateMockWrite(req, 0), CreateMockWrite(body, 1), |
| 3871 }; | 3871 }; |
| 3872 | 3872 |
| 3873 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 3873 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3874 SpdySerializedFrame echo( | 3874 SpdySerializedFrame echo( |
| 3875 spdy_util_.ConstructSpdyDataFrame(1, kBodyData, kBodyDataSize, false)); | 3875 spdy_util_.ConstructSpdyDataFrame(1, kBodyData, kBodyDataSize, false)); |
| 3876 MockRead reads[] = { | 3876 MockRead reads[] = { |
| 3877 CreateMockRead(resp, 2), MockRead(ASYNC, 0, 3) // EOF | 3877 CreateMockRead(resp, 2), MockRead(ASYNC, 0, 3) // EOF |
| 3878 }; | 3878 }; |
| 3879 | 3879 |
| 3880 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 3880 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 3881 session_deps_.socket_factory->AddSocketDataProvider(&data); | 3881 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 3882 | 3882 |
| 3883 CreateNetworkSession(); | 3883 CreateNetworkSession(); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3982 kDefaultUrl, 3, kBodyDataSize, MEDIUM, nullptr, 0)); | 3982 kDefaultUrl, 3, kBodyDataSize, MEDIUM, nullptr, 0)); |
| 3983 SpdySerializedFrame body1( | 3983 SpdySerializedFrame body1( |
| 3984 spdy_util_.ConstructSpdyDataFrame(1, kBodyData, kBodyDataSize, true)); | 3984 spdy_util_.ConstructSpdyDataFrame(1, kBodyData, kBodyDataSize, true)); |
| 3985 SpdySerializedFrame body2( | 3985 SpdySerializedFrame body2( |
| 3986 spdy_util_.ConstructSpdyDataFrame(3, kBodyData, kBodyDataSize, true)); | 3986 spdy_util_.ConstructSpdyDataFrame(3, kBodyData, kBodyDataSize, true)); |
| 3987 MockWrite writes[] = { | 3987 MockWrite writes[] = { |
| 3988 CreateMockWrite(req1, 0), CreateMockWrite(req2, 1), | 3988 CreateMockWrite(req1, 0), CreateMockWrite(req2, 1), |
| 3989 CreateMockWrite(body2, 2), CreateMockWrite(body1, 3), | 3989 CreateMockWrite(body2, 2), CreateMockWrite(body1, 3), |
| 3990 }; | 3990 }; |
| 3991 | 3991 |
| 3992 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 3992 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3993 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 3)); | 3993 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 3)); |
| 3994 MockRead reads[] = { | 3994 MockRead reads[] = { |
| 3995 CreateMockRead(resp1, 4), CreateMockRead(resp2, 5), | 3995 CreateMockRead(resp1, 4), CreateMockRead(resp2, 5), |
| 3996 MockRead(ASYNC, 0, 6) // EOF | 3996 MockRead(ASYNC, 0, 6) // EOF |
| 3997 }; | 3997 }; |
| 3998 | 3998 |
| 3999 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 3999 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 4000 session_deps_.socket_factory->AddSocketDataProvider(&data); | 4000 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 4001 | 4001 |
| 4002 CreateNetworkSession(); | 4002 CreateNetworkSession(); |
| 4003 CreateInsecureSpdySession(); | 4003 CreateInsecureSpdySession(); |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4112 kDefaultUrl, 3, kBodyDataSize, LOWEST, nullptr, 0)); | 4112 kDefaultUrl, 3, kBodyDataSize, LOWEST, nullptr, 0)); |
| 4113 SpdySerializedFrame req3(spdy_util_.ConstructSpdyPost( | 4113 SpdySerializedFrame req3(spdy_util_.ConstructSpdyPost( |
| 4114 kDefaultUrl, 5, kBodyDataSize, LOWEST, nullptr, 0)); | 4114 kDefaultUrl, 5, kBodyDataSize, LOWEST, nullptr, 0)); |
| 4115 SpdySerializedFrame body2( | 4115 SpdySerializedFrame body2( |
| 4116 spdy_util_.ConstructSpdyDataFrame(3, kBodyData, kBodyDataSize, true)); | 4116 spdy_util_.ConstructSpdyDataFrame(3, kBodyData, kBodyDataSize, true)); |
| 4117 MockWrite writes[] = { | 4117 MockWrite writes[] = { |
| 4118 CreateMockWrite(req1, 0), CreateMockWrite(req2, 1), | 4118 CreateMockWrite(req1, 0), CreateMockWrite(req2, 1), |
| 4119 CreateMockWrite(req3, 2), CreateMockWrite(body2, 3), | 4119 CreateMockWrite(req3, 2), CreateMockWrite(body2, 3), |
| 4120 }; | 4120 }; |
| 4121 | 4121 |
| 4122 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 3)); | 4122 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 3)); |
| 4123 MockRead reads[] = { | 4123 MockRead reads[] = { |
| 4124 CreateMockRead(resp2, 4), MockRead(ASYNC, ERR_IO_PENDING, 5), | 4124 CreateMockRead(resp2, 4), MockRead(ASYNC, ERR_IO_PENDING, 5), |
| 4125 MockRead(ASYNC, 0, 6) // EOF | 4125 MockRead(ASYNC, 0, 6) // EOF |
| 4126 }; | 4126 }; |
| 4127 | 4127 |
| 4128 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 4128 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 4129 session_deps_.socket_factory->AddSocketDataProvider(&data); | 4129 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 4130 | 4130 |
| 4131 CreateNetworkSession(); | 4131 CreateNetworkSession(); |
| 4132 CreateInsecureSpdySession(); | 4132 CreateInsecureSpdySession(); |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4329 SpdySerializedFrame req( | 4329 SpdySerializedFrame req( |
| 4330 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 4330 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 4331 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway( | 4331 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway( |
| 4332 0, GOAWAY_FLOW_CONTROL_ERROR, | 4332 0, GOAWAY_FLOW_CONTROL_ERROR, |
| 4333 "delta_window_size is 6 in DecreaseRecvWindowSize, which is larger than " | 4333 "delta_window_size is 6 in DecreaseRecvWindowSize, which is larger than " |
| 4334 "the receive window size of 1")); | 4334 "the receive window size of 1")); |
| 4335 MockWrite writes[] = { | 4335 MockWrite writes[] = { |
| 4336 CreateMockWrite(req, 0), CreateMockWrite(goaway, 4), | 4336 CreateMockWrite(req, 0), CreateMockWrite(goaway, 4), |
| 4337 }; | 4337 }; |
| 4338 | 4338 |
| 4339 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 4339 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 4340 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); | 4340 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 4341 MockRead reads[] = { | 4341 MockRead reads[] = { |
| 4342 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(resp, 2), | 4342 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(resp, 2), |
| 4343 CreateMockRead(body, 3), | 4343 CreateMockRead(body, 3), |
| 4344 }; | 4344 }; |
| 4345 | 4345 |
| 4346 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 4346 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 4347 session_deps_.socket_factory->AddSocketDataProvider(&data); | 4347 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 4348 | 4348 |
| 4349 CreateNetworkSession(); | 4349 CreateNetworkSession(); |
| (...skipping 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5398 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), | 5398 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), |
| 5399 "spdy_pooling.pem"); | 5399 "spdy_pooling.pem"); |
| 5400 ssl_info.is_issued_by_known_root = true; | 5400 ssl_info.is_issued_by_known_root = true; |
| 5401 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); | 5401 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); |
| 5402 | 5402 |
| 5403 EXPECT_TRUE(SpdySession::CanPool( | 5403 EXPECT_TRUE(SpdySession::CanPool( |
| 5404 &tss, ssl_info, "www.example.org", "mail.example.org")); | 5404 &tss, ssl_info, "www.example.org", "mail.example.org")); |
| 5405 } | 5405 } |
| 5406 | 5406 |
| 5407 } // namespace net | 5407 } // namespace net |
| OLD | NEW |