OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/quic/quic_write_blocked_list.h" | 5 #include "net/quic/quic_write_blocked_list.h" |
6 | 6 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 namespace net { | 9 namespace net { |
10 namespace test { | 10 namespace test { |
11 namespace { | 11 namespace { |
12 | 12 |
13 TEST(QuicWriteBlockedListTest, PriorityOrder) { | 13 TEST(QuicWriteBlockedListTest, PriorityOrder) { |
14 QuicWriteBlockedList write_blocked_list; | 14 QuicWriteBlockedList write_blocked_list; |
15 | 15 |
16 // Mark streams blocked in roughly reverse priority order, and | 16 // Mark streams blocked in roughly reverse priority order, and |
17 // verify that streams are sorted. | 17 // verify that streams are sorted. |
18 write_blocked_list.PushBack(40, | 18 write_blocked_list.PushBack(40, QuicWriteBlockedList::kLowestPriority); |
19 QuicWriteBlockedList::kLowestPriority); | 19 write_blocked_list.PushBack(23, QuicWriteBlockedList::kHighestPriority); |
20 write_blocked_list.PushBack(23, | 20 write_blocked_list.PushBack(17, QuicWriteBlockedList::kHighestPriority); |
21 QuicWriteBlockedList::kHighestPriority); | |
22 write_blocked_list.PushBack(17, | |
23 QuicWriteBlockedList::kHighestPriority); | |
24 write_blocked_list.PushBack(kHeadersStreamId, | 21 write_blocked_list.PushBack(kHeadersStreamId, |
25 QuicWriteBlockedList::kHighestPriority); | 22 QuicWriteBlockedList::kHighestPriority); |
26 write_blocked_list.PushBack(kCryptoStreamId, | 23 write_blocked_list.PushBack(kCryptoStreamId, |
27 QuicWriteBlockedList::kHighestPriority); | 24 QuicWriteBlockedList::kHighestPriority); |
28 | 25 |
29 EXPECT_EQ(5u, write_blocked_list.NumBlockedStreams()); | 26 EXPECT_EQ(5u, write_blocked_list.NumBlockedStreams()); |
30 EXPECT_TRUE(write_blocked_list.HasWriteBlockedStreams()); | 27 EXPECT_TRUE(write_blocked_list.HasWriteBlockedStreams()); |
31 // The Crypto stream is highest priority. | 28 // The Crypto stream is highest priority. |
32 EXPECT_EQ(kCryptoStreamId, write_blocked_list.PopFront()); | 29 EXPECT_EQ(kCryptoStreamId, write_blocked_list.PopFront()); |
33 // Followed by the Headers stream. | 30 // Followed by the Headers stream. |
(...skipping 27 matching lines...) Expand all Loading... |
61 | 58 |
62 EXPECT_EQ(1u, write_blocked_list.NumBlockedStreams()); | 59 EXPECT_EQ(1u, write_blocked_list.NumBlockedStreams()); |
63 EXPECT_TRUE(write_blocked_list.HasWriteBlockedStreams()); | 60 EXPECT_TRUE(write_blocked_list.HasWriteBlockedStreams()); |
64 EXPECT_EQ(kHeadersStreamId, write_blocked_list.PopFront()); | 61 EXPECT_EQ(kHeadersStreamId, write_blocked_list.PopFront()); |
65 EXPECT_EQ(0u, write_blocked_list.NumBlockedStreams()); | 62 EXPECT_EQ(0u, write_blocked_list.NumBlockedStreams()); |
66 EXPECT_FALSE(write_blocked_list.HasWriteBlockedStreams()); | 63 EXPECT_FALSE(write_blocked_list.HasWriteBlockedStreams()); |
67 } | 64 } |
68 | 65 |
69 TEST(QuicWriteBlockedListTest, VerifyHeadersStream) { | 66 TEST(QuicWriteBlockedListTest, VerifyHeadersStream) { |
70 QuicWriteBlockedList write_blocked_list; | 67 QuicWriteBlockedList write_blocked_list; |
71 write_blocked_list.PushBack(5, | 68 write_blocked_list.PushBack(5, QuicWriteBlockedList::kHighestPriority); |
72 QuicWriteBlockedList::kHighestPriority); | |
73 write_blocked_list.PushBack(kHeadersStreamId, | 69 write_blocked_list.PushBack(kHeadersStreamId, |
74 QuicWriteBlockedList::kHighestPriority); | 70 QuicWriteBlockedList::kHighestPriority); |
75 | 71 |
76 EXPECT_EQ(2u, write_blocked_list.NumBlockedStreams()); | 72 EXPECT_EQ(2u, write_blocked_list.NumBlockedStreams()); |
77 EXPECT_TRUE(write_blocked_list.HasWriteBlockedStreams()); | 73 EXPECT_TRUE(write_blocked_list.HasWriteBlockedStreams()); |
78 // In newer QUIC versions, there is a headers stream which is | 74 // In newer QUIC versions, there is a headers stream which is |
79 // higher priority than data streams. | 75 // higher priority than data streams. |
80 EXPECT_EQ(kHeadersStreamId, write_blocked_list.PopFront()); | 76 EXPECT_EQ(kHeadersStreamId, write_blocked_list.PopFront()); |
81 EXPECT_EQ(5u, write_blocked_list.PopFront()); | 77 EXPECT_EQ(5u, write_blocked_list.PopFront()); |
82 EXPECT_EQ(0u, write_blocked_list.NumBlockedStreams()); | 78 EXPECT_EQ(0u, write_blocked_list.NumBlockedStreams()); |
83 EXPECT_FALSE(write_blocked_list.HasWriteBlockedStreams()); | 79 EXPECT_FALSE(write_blocked_list.HasWriteBlockedStreams()); |
84 } | 80 } |
85 | 81 |
86 } // namespace | 82 } // namespace |
87 } // namespace test | 83 } // namespace test |
88 } // namespace net | 84 } // namespace net |
OLD | NEW |