| Index: net/spdy/spdy_framer_test.cc
|
| diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc
|
| index dfb1f9fa89c91857d25433a1d196d1135098cddf..98666654af0bb7777741006b46da18d6a0a3143c 100644
|
| --- a/net/spdy/spdy_framer_test.cc
|
| +++ b/net/spdy/spdy_framer_test.cc
|
| @@ -839,7 +839,8 @@ TEST_P(SpdyFramerTest, MultiValueHeader) {
|
| HEADERS,
|
| HEADERS_FLAG_PRIORITY | HEADERS_FLAG_END_HEADERS,
|
| 3);
|
| - frame.WriteUInt32(framer.GetHighestPriority());
|
| + frame.WriteUInt32(0); // Priority exclusivity and dependent stream.
|
| + frame.WriteUInt8(255); // Priority weight.
|
| }
|
|
|
| string value("value1\0value2", 13);
|
| @@ -1876,14 +1877,14 @@ TEST_P(SpdyFramerTest, CreateSynStreamUncompressed) {
|
| 'a', 'r'
|
| };
|
| const unsigned char kV4FrameData[] = {
|
| - 0x00, 0x16, 0x01, 0x24, // HEADERS: PRIORITY | END_HEADERS
|
| + 0x00, 0x17, 0x01, 0x24, // HEADERS: PRIORITY | END_HEADERS
|
| 0x00, 0x00, 0x00, 0x01, // Stream 1
|
| - 0x00, 0x00, 0x00, 0x07, // Priority 7
|
| - 0x00, 0x03, 0x62, 0x61, // @.ba
|
| - 0x72, 0x03, 0x66, 0x6f, // r.fo
|
| - 0x6f, 0x00, 0x03, 0x66, // o@.f
|
| - 0x6f, 0x6f, 0x03, 0x62, // oo.b
|
| - 0x61, 0x72, // ar
|
| + 0x00, 0x00, 0x00, 0x00, // Non-exclusive dependency 0. Weight 0.
|
| + 0x00, 0x00, 0x03, 0x62,
|
| + 0x61, 0x72, 0x03, 0x66,
|
| + 0x6f, 0x6f, 0x00, 0x03,
|
| + 0x66, 0x6f, 0x6f, 0x03,
|
| + 0x62, 0x61, 0x72,
|
| };
|
| SpdySynStreamIR syn_stream(1);
|
| syn_stream.set_priority(framer.GetLowestPriority());
|
| @@ -1931,13 +1932,13 @@ TEST_P(SpdyFramerTest, CreateSynStreamUncompressed) {
|
| 'b', 'a', 'r'
|
| };
|
| const unsigned char kV4FrameData[] = {
|
| - 0x00, 0x13, 0x01, 0x25, // HEADERS: PRIORITY | FIN | END_HEADERS
|
| + 0x00, 0x14, 0x01, 0x25, // HEADERS: PRIORITY | FIN | END_HEADERS
|
| 0x7f, 0xff, 0xff, 0xff, // Stream 0x7fffffff
|
| - 0x00, 0x00, 0x00, 0x00, // Priority 0
|
| - 0x00, 0x00, 0x03, 0x66, // @..f
|
| - 0x6f, 0x6f, 0x00, 0x03, // oo@.
|
| - 0x66, 0x6f, 0x6f, 0x03, // foo.
|
| - 0x62, 0x61, 0x72, // bar
|
| + 0x00, 0x00, 0x00, 0x00, // Non-exclusive dependency 0. Weight 255.
|
| + 0xff, 0x00, 0x00, 0x03,
|
| + 0x66, 0x6f, 0x6f, 0x00,
|
| + 0x03, 0x66, 0x6f, 0x6f,
|
| + 0x03, 0x62, 0x61, 0x72,
|
| };
|
| SpdySynStreamIR syn_stream(0x7fffffff);
|
| syn_stream.set_associated_to_stream_id(0x7fffffff);
|
| @@ -1988,13 +1989,13 @@ TEST_P(SpdyFramerTest, CreateSynStreamUncompressed) {
|
| 0x00, 0x00, 0x00
|
| };
|
| const unsigned char kV4FrameData[] = {
|
| - 0x00, 0x13, 0x01, 0x25, // HEADERS: PRIORITY | FIN | END_HEADERS
|
| + 0x00, 0x14, 0x01, 0x25, // HEADERS: PRIORITY | FIN | END_HEADERS
|
| 0x7f, 0xff, 0xff, 0xff, // Stream 0x7fffffff
|
| - 0x00, 0x00, 0x00, 0x01, // Priority 1
|
| - 0x00, 0x03, 0x62, 0x61, // @.ba
|
| - 0x72, 0x03, 0x66, 0x6f, // r.fo
|
| - 0x6f, 0x00, 0x03, 0x66, // o@.f
|
| - 0x6f, 0x6f, 0x00, // oo.
|
| + 0x00, 0x00, 0x00, 0x00, // Non-exclusive dependency 0. Weight 219.
|
| + 0xdb, 0x00, 0x03, 0x62,
|
| + 0x61, 0x72, 0x03, 0x66,
|
| + 0x6f, 0x6f, 0x00, 0x03,
|
| + 0x66, 0x6f, 0x6f, 0x00,
|
| };
|
| SpdySynStreamIR syn_stream(0x7fffffff);
|
| syn_stream.set_associated_to_stream_id(0x7fffffff);
|
| @@ -5396,4 +5397,36 @@ TEST_P(SpdyFramerTest, ReadIncorrectlySizedPriority) {
|
| << SpdyFramer::ErrorCodeToString(visitor.framer_.error_code());
|
| }
|
|
|
| +TEST_P(SpdyFramerTest, PriorityWeightMapping) {
|
| + if (spdy_version_ <= SPDY3) {
|
| + return;
|
| + }
|
| + SpdyFramer framer(spdy_version_);
|
| +
|
| + EXPECT_EQ(255u, framer.MapPriorityToWeight(0));
|
| + EXPECT_EQ(219u, framer.MapPriorityToWeight(1));
|
| + EXPECT_EQ(182u, framer.MapPriorityToWeight(2));
|
| + EXPECT_EQ(146u, framer.MapPriorityToWeight(3));
|
| + EXPECT_EQ(109u, framer.MapPriorityToWeight(4));
|
| + EXPECT_EQ(73u, framer.MapPriorityToWeight(5));
|
| + EXPECT_EQ(36u, framer.MapPriorityToWeight(6));
|
| + EXPECT_EQ(0u, framer.MapPriorityToWeight(7));
|
| +
|
| + EXPECT_EQ(0u, framer.MapWeightToPriority(255));
|
| + EXPECT_EQ(0u, framer.MapWeightToPriority(220));
|
| + EXPECT_EQ(1u, framer.MapWeightToPriority(219));
|
| + EXPECT_EQ(1u, framer.MapWeightToPriority(183));
|
| + EXPECT_EQ(2u, framer.MapWeightToPriority(182));
|
| + EXPECT_EQ(2u, framer.MapWeightToPriority(147));
|
| + EXPECT_EQ(3u, framer.MapWeightToPriority(146));
|
| + EXPECT_EQ(3u, framer.MapWeightToPriority(110));
|
| + EXPECT_EQ(4u, framer.MapWeightToPriority(109));
|
| + EXPECT_EQ(4u, framer.MapWeightToPriority(74));
|
| + EXPECT_EQ(5u, framer.MapWeightToPriority(73));
|
| + EXPECT_EQ(5u, framer.MapWeightToPriority(37));
|
| + EXPECT_EQ(6u, framer.MapWeightToPriority(36));
|
| + EXPECT_EQ(6u, framer.MapWeightToPriority(1));
|
| + EXPECT_EQ(7u, framer.MapWeightToPriority(0));
|
| +}
|
| +
|
| } // namespace net
|
|
|