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

Unified Diff: net/spdy/spdy_session_unittest.cc

Issue 2596703002: http2: Update priorities of pushed streams (Closed)
Patch Set: actually rebase Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_session.cc ('k') | net/spdy/spdy_stream.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_session_unittest.cc
diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc
index dc7d4220db2eb78d95fded7b3757edcf8cc67b39..2f23164c5f976857e2c2d70e15f44e30fa04bccf 100644
--- a/net/spdy/spdy_session_unittest.cc
+++ b/net/spdy/spdy_session_unittest.cc
@@ -1295,9 +1295,16 @@ TEST_F(SpdySessionTest, CancelPushAfterSessionGoesAway) {
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
- SpdySerializedFrame rst(
+ SpdySerializedFrame priority_a(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
+ SpdySerializedFrame priority_b(
+ spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
+ SpdySerializedFrame rst_a(
spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM));
- MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)};
+ MockWrite writes[] = {
+ CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
+ CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
+ };
SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
@@ -1307,9 +1314,9 @@ TEST_F(SpdySessionTest, CancelPushAfterSessionGoesAway) {
SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush(
nullptr, 0, 4, 1, "https://www.example.org/0.dat"));
MockRead reads[] = {
- CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7) // EOF
+ CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 3),
+ MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9) // EOF
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -1380,9 +1387,16 @@ TEST_F(SpdySessionTest, CancelPushAfterExpired) {
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
- SpdySerializedFrame rst(
+ SpdySerializedFrame priority_a(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
+ SpdySerializedFrame priority_b(
+ spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
+ SpdySerializedFrame rst_a(
spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM));
- MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)};
+ MockWrite writes[] = {
+ CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
+ CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
+ };
SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
@@ -1392,9 +1406,9 @@ TEST_F(SpdySessionTest, CancelPushAfterExpired) {
SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush(
nullptr, 0, 4, 1, "https://www.example.org/0.dat"));
MockRead reads[] = {
- CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7) // EOF
+ CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 3),
+ MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9) // EOF
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -1466,9 +1480,16 @@ TEST_F(SpdySessionTest, CancelPushBeforeClaimed) {
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
- SpdySerializedFrame rst(
+ SpdySerializedFrame priority_a(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
+ SpdySerializedFrame priority_b(
+ spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
+ SpdySerializedFrame rst_a(
spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM));
- MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)};
+ MockWrite writes[] = {
+ CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
+ CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
+ };
SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
@@ -1478,9 +1499,9 @@ TEST_F(SpdySessionTest, CancelPushBeforeClaimed) {
SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush(
nullptr, 0, 4, 1, "https://www.example.org/0.dat"));
MockRead reads[] = {
- CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7) // EOF
+ CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 3),
+ MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9) // EOF
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -1550,9 +1571,16 @@ TEST_F(SpdySessionTest, DeleteExpiredPushStreams) {
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
- SpdySerializedFrame rst(
+ SpdySerializedFrame priority_a(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
+ SpdySerializedFrame priority_b(
+ spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
+ SpdySerializedFrame rst_a(
spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM));
- MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)};
+ MockWrite writes[] = {
+ CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
+ CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
+ };
SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
@@ -1562,9 +1590,9 @@ TEST_F(SpdySessionTest, DeleteExpiredPushStreams) {
SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush(
nullptr, 0, 4, 1, "https://www.example.org/0.dat"));
MockRead reads[] = {
- CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7) // EOF
+ CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 3),
+ MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9) // EOF
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -1629,9 +1657,19 @@ TEST_F(SpdySessionTest, MetricsCollectionOnPushStreams) {
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
- SpdySerializedFrame rst(
+ SpdySerializedFrame priority_a(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
+ SpdySerializedFrame priority_b(
+ spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
+ SpdySerializedFrame priority_c(
+ spdy_util_.ConstructSpdyPriority(6, 4, IDLE, true));
+ SpdySerializedFrame rst_a(
spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM));
- MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)};
+ MockWrite writes[] = {
+ CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
+ CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
+ CreateMockWrite(priority_c, 10),
+ };
SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
@@ -1646,14 +1684,14 @@ TEST_F(SpdySessionTest, MetricsCollectionOnPushStreams) {
MockRead reads[] = {
CreateMockRead(push_a, 1),
- CreateMockRead(push_a_body, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3),
- CreateMockRead(push_b, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 6),
- CreateMockRead(push_c, 7),
- CreateMockRead(push_c_body, 8),
- MockRead(ASYNC, ERR_IO_PENDING, 9),
- MockRead(ASYNC, 0, 10) // EOF
+ CreateMockRead(push_a_body, 3),
+ MockRead(ASYNC, ERR_IO_PENDING, 4),
+ CreateMockRead(push_b, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 8),
+ CreateMockRead(push_c, 9),
+ CreateMockRead(push_c_body, 11),
+ MockRead(ASYNC, ERR_IO_PENDING, 12),
+ MockRead(ASYNC, 0, 13) // EOF
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -4860,15 +4898,18 @@ TEST_F(SpdySessionTest, PushedStreamShouldNotCountToClientConcurrencyLimit) {
CreateMockRead(settings_frame, 0),
MockRead(ASYNC, ERR_IO_PENDING, 3),
CreateMockRead(pushed, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 5),
- MockRead(ASYNC, 0, 6),
+ MockRead(ASYNC, ERR_IO_PENDING, 6),
+ MockRead(ASYNC, 0, 7),
};
SpdySerializedFrame settings_ack(spdy_util_.ConstructSpdySettingsAck());
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
+ SpdySerializedFrame priority(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
MockWrite writes[] = {
CreateMockWrite(settings_ack, 1), CreateMockWrite(req, 2),
+ CreateMockWrite(priority, 5),
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -4940,16 +4981,21 @@ TEST_F(SpdySessionTest, RejectPushedStreamExceedingConcurrencyLimit) {
nullptr, 0, 4, 1, "https://www.example.org/b.dat"));
MockRead reads[] = {
MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_a, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7),
+ MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9),
};
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
- SpdySerializedFrame rst(
+ SpdySerializedFrame priority_a(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
+ SpdySerializedFrame priority_b(
+ spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
+ SpdySerializedFrame rst_b(
spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM));
MockWrite writes[] = {
- CreateMockWrite(req, 0), CreateMockWrite(rst, 5),
+ CreateMockWrite(req, 0), CreateMockWrite(priority_a, 3),
+ CreateMockWrite(priority_b, 6), CreateMockWrite(rst_b, 7),
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -5026,18 +5072,21 @@ TEST_F(SpdySessionTest, TrustedSpdyProxy) {
MockRead reads[] = {
MockRead(ASYNC, ERR_IO_PENDING, 1),
CreateMockRead(cross_origin_push, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3),
- CreateMockRead(cross_origin_https_push, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 6),
- MockRead(ASYNC, 0, 7),
+ MockRead(ASYNC, ERR_IO_PENDING, 4),
+ CreateMockRead(cross_origin_https_push, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 7),
+ MockRead(ASYNC, 0, 8),
};
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
- SpdySerializedFrame rst(
+ SpdySerializedFrame priority_http(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
+ SpdySerializedFrame rst_https(
spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM));
MockWrite writes[] = {
- CreateMockWrite(req, 0), CreateMockWrite(rst, 5),
+ CreateMockWrite(req, 0), CreateMockWrite(priority_http, 3),
+ CreateMockWrite(rst_https, 6),
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -5175,18 +5224,23 @@ TEST_F(SpdySessionTest, IgnoreReservedRemoteStreamsCount) {
SpdySerializedFrame headers_b(
spdy_util_.ConstructSpdyPushHeaders(4, nullptr, 0));
MockRead reads[] = {
- MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_a, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 5), CreateMockRead(headers_b, 6),
- MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9),
+ MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_a, 2),
+ MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 7), CreateMockRead(headers_b, 8),
+ MockRead(ASYNC, ERR_IO_PENDING, 10), MockRead(ASYNC, 0, 11),
};
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
- SpdySerializedFrame rst(
+ SpdySerializedFrame priority_a(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
+ SpdySerializedFrame priority_b(
+ spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
+ SpdySerializedFrame rst_b(
spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM));
MockWrite writes[] = {
- CreateMockWrite(req, 0), CreateMockWrite(rst, 7),
+ CreateMockWrite(req, 0), CreateMockWrite(priority_a, 3),
+ CreateMockWrite(priority_b, 6), CreateMockWrite(rst_b, 9),
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -5264,16 +5318,19 @@ TEST_F(SpdySessionTest, CancelReservedStreamOnHeadersReceived) {
spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0));
MockRead reads[] = {
MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_promise, 2),
- MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(headers_frame, 4),
- MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7),
+ MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(headers_frame, 5),
+ MockRead(ASYNC, ERR_IO_PENDING, 7), MockRead(ASYNC, 0, 8),
};
SpdySerializedFrame req(
spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
+ SpdySerializedFrame priority(
+ spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
SpdySerializedFrame rst(
spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_CANCEL));
MockWrite writes[] = {
- CreateMockWrite(req, 0), CreateMockWrite(rst, 5),
+ CreateMockWrite(req, 0), CreateMockWrite(priority, 3),
+ CreateMockWrite(rst, 6),
};
SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
@@ -5318,7 +5375,7 @@ TEST_F(SpdySessionTest, CancelReservedStreamOnHeadersReceived) {
EXPECT_EQ(0u, session_->num_active_pushed_streams());
base::WeakPtr<SpdyStream> pushed_stream;
- int rv = session_->GetPushStream(GURL(kPushedUrl), &pushed_stream,
+ int rv = session_->GetPushStream(GURL(kPushedUrl), IDLE, &pushed_stream,
NetLogWithSource());
ASSERT_THAT(rv, IsOk());
ASSERT_TRUE(pushed_stream);
« no previous file with comments | « net/spdy/spdy_session.cc ('k') | net/spdy/spdy_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698