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

Side by Side Diff: net/spdy/write_blocked_list_test.cc

Issue 1134603005: Remove WriteBlockedList::use_stream_to_priority. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 unified diff | Download patch
« no previous file with comments | « net/spdy/write_blocked_list.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/write_blocked_list.h" 5 #include "net/spdy/write_blocked_list.h"
6 6
7 #include <deque> 7 #include <deque>
8 8
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace net { 11 namespace net {
12 namespace test { 12 namespace test {
13 13
14 class WriteBlockedListPeer { 14 class WriteBlockedListPeer {
15 public: 15 public:
16 static std::deque<int>* GetWriteBlockedList(int i, 16 static std::deque<int>* GetWriteBlockedList(int i,
17 WriteBlockedList<int>* list) { 17 WriteBlockedList<int>* list) {
18 return &list->write_blocked_lists_[i]; 18 return &list->write_blocked_lists_[i];
19 } 19 }
20 }; 20 };
21 21
22 namespace { 22 namespace {
23 23
24 typedef WriteBlockedList<int> IntWriteBlockedList; 24 typedef WriteBlockedList<int> IntWriteBlockedList;
25 25
26 class WriteBlockedListTest : public ::testing::TestWithParam<bool> { 26 class WriteBlockedListTest : public ::testing::Test {
27 public: 27 public:
28 WriteBlockedListTest() : list(GetParam()) {}
29
30 IntWriteBlockedList list; 28 IntWriteBlockedList list;
31 }; 29 };
32 30
33 TEST_P(WriteBlockedListTest, GetHighestPriority) { 31 TEST_F(WriteBlockedListTest, GetHighestPriority) {
34 EXPECT_FALSE(list.HasWriteBlockedStreams()); 32 EXPECT_FALSE(list.HasWriteBlockedStreams());
35 list.PushBack(1, 1); 33 list.PushBack(1, 1);
36 EXPECT_TRUE(list.HasWriteBlockedStreams()); 34 EXPECT_TRUE(list.HasWriteBlockedStreams());
37 EXPECT_EQ(1, list.GetHighestPriorityWriteBlockedList()); 35 EXPECT_EQ(1, list.GetHighestPriorityWriteBlockedList());
38 list.PushBack(1, 0); 36 list.PushBack(1, 0);
39 EXPECT_TRUE(list.HasWriteBlockedStreams()); 37 EXPECT_TRUE(list.HasWriteBlockedStreams());
40 EXPECT_EQ(0, list.GetHighestPriorityWriteBlockedList()); 38 EXPECT_EQ(0, list.GetHighestPriorityWriteBlockedList());
41 } 39 }
42 40
43 TEST_P(WriteBlockedListTest, HasWriteBlockedStreamsOfGreaterThanPriority) { 41 TEST_F(WriteBlockedListTest, HasWriteBlockedStreamsOfGreaterThanPriority) {
44 list.PushBack(1, 4); 42 list.PushBack(1, 4);
45 EXPECT_TRUE(list.HasWriteBlockedStreamsGreaterThanPriority(5)); 43 EXPECT_TRUE(list.HasWriteBlockedStreamsGreaterThanPriority(5));
46 EXPECT_FALSE(list.HasWriteBlockedStreamsGreaterThanPriority(4)); 44 EXPECT_FALSE(list.HasWriteBlockedStreamsGreaterThanPriority(4));
47 list.PushBack(2, 2); 45 list.PushBack(2, 2);
48 EXPECT_TRUE(list.HasWriteBlockedStreamsGreaterThanPriority(3)); 46 EXPECT_TRUE(list.HasWriteBlockedStreamsGreaterThanPriority(3));
49 EXPECT_FALSE(list.HasWriteBlockedStreamsGreaterThanPriority(2)); 47 EXPECT_FALSE(list.HasWriteBlockedStreamsGreaterThanPriority(2));
50 } 48 }
51 49
52 TEST_P(WriteBlockedListTest, RemoveStreamFromWriteBlockedList) { 50 TEST_F(WriteBlockedListTest, RemoveStreamFromWriteBlockedList) {
53 list.PushBack(1, 4); 51 list.PushBack(1, 4);
54 EXPECT_TRUE(list.HasWriteBlockedStreams()); 52 EXPECT_TRUE(list.HasWriteBlockedStreams());
55 53
56 list.RemoveStreamFromWriteBlockedList(1, 5); 54 list.RemoveStreamFromWriteBlockedList(1, 5);
57 EXPECT_TRUE(list.HasWriteBlockedStreams()); 55 EXPECT_TRUE(list.HasWriteBlockedStreams());
58 56
59 list.PushBack(2, 4); 57 list.PushBack(2, 4);
60 list.PushBack(1, 4); 58 list.PushBack(1, 4);
61 list.RemoveStreamFromWriteBlockedList(1, 4); 59 list.RemoveStreamFromWriteBlockedList(1, 4);
62 list.RemoveStreamFromWriteBlockedList(2, 4); 60 list.RemoveStreamFromWriteBlockedList(2, 4);
63 EXPECT_FALSE(list.HasWriteBlockedStreams()); 61 EXPECT_FALSE(list.HasWriteBlockedStreams());
64 62
65 list.PushBack(1, 7); 63 list.PushBack(1, 7);
66 EXPECT_TRUE(list.HasWriteBlockedStreams()); 64 EXPECT_TRUE(list.HasWriteBlockedStreams());
67 } 65 }
68 66
69 TEST_P(WriteBlockedListTest, PopFront) { 67 TEST_F(WriteBlockedListTest, PopFront) {
70 list.PushBack(1, 4); 68 list.PushBack(1, 4);
71 EXPECT_EQ(1u, list.NumBlockedStreams()); 69 EXPECT_EQ(1u, list.NumBlockedStreams());
72 list.PushBack(2, 4); 70 list.PushBack(2, 4);
73 list.PushBack(1, 4); 71 list.PushBack(1, 4);
74 list.PushBack(3, 4); 72 list.PushBack(3, 4);
75 if (GetParam()) { 73 EXPECT_EQ(3u, list.NumBlockedStreams());
76 EXPECT_EQ(3u, list.NumBlockedStreams());
77 } else {
78 EXPECT_EQ(4u, list.NumBlockedStreams());
79 }
80 74
81 EXPECT_EQ(1, list.PopFront(4)); 75 EXPECT_EQ(1, list.PopFront(4));
82 EXPECT_EQ(2, list.PopFront(4)); 76 EXPECT_EQ(2, list.PopFront(4));
83 EXPECT_EQ(1, list.PopFront(4));
84 if (!GetParam()) {
85 EXPECT_EQ(1, list.PopFront(4));
86 }
87 EXPECT_EQ(1u, list.NumBlockedStreams()); 77 EXPECT_EQ(1u, list.NumBlockedStreams());
88 EXPECT_EQ(3, list.PopFront(4)); 78 EXPECT_EQ(3, list.PopFront(4));
89 } 79 }
90 80
91 TEST_P(WriteBlockedListTest, UpdateStreamPriorityInWriteBlockedList) { 81 TEST_F(WriteBlockedListTest, UpdateStreamPriorityInWriteBlockedList) {
92 if (GetParam()) { 82 list.PushBack(1, 1);
93 list.PushBack(1, 1); 83 list.PushBack(2, 2);
94 list.PushBack(2, 2); 84 list.PushBack(3, 3);
95 list.PushBack(3, 3); 85 list.PushBack(1, 3); // Re-prioritizes stream 1 at priority 3.
96 list.PushBack(1, 3); // Re-prioritizes stream 1 at priority 3. 86 list.PushBack(1, 3); // No effect.
97 list.PushBack(1, 3); // No effect. 87 EXPECT_EQ(3u, list.NumBlockedStreams());
98 EXPECT_EQ(3u, list.NumBlockedStreams()); 88 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
99 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size()); 89 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
100 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size()); 90 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
101 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
102 91
103 list.UpdateStreamPriorityInWriteBlockedList(1, 3, 2); 92 list.UpdateStreamPriorityInWriteBlockedList(1, 3, 2);
104 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size()); 93 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
105 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size()); 94 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
106 list.UpdateStreamPriorityInWriteBlockedList(3, 3, 1); 95 list.UpdateStreamPriorityInWriteBlockedList(3, 3, 1);
107 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size()); 96 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
108 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size()); 97 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
109 98
110 // Redundant update. 99 // Redundant update.
111 list.UpdateStreamPriorityInWriteBlockedList(1, 2, 2); 100 list.UpdateStreamPriorityInWriteBlockedList(1, 2, 2);
112 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size()); 101 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
113 102
114 // No entries for given stream_id / old_priority pair. 103 // No entries for given stream_id / old_priority pair.
115 list.UpdateStreamPriorityInWriteBlockedList(4, 4, 1); 104 list.UpdateStreamPriorityInWriteBlockedList(4, 4, 1);
116 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size()); 105 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
117 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size()); 106 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
118 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(4, &list)->size()); 107 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(4, &list)->size());
119 108
120 EXPECT_EQ(3, list.PopFront(1)); 109 EXPECT_EQ(3, list.PopFront(1));
121 EXPECT_EQ(2, list.PopFront(2)); 110 EXPECT_EQ(2, list.PopFront(2));
122 EXPECT_EQ(1, list.PopFront(2)); 111 EXPECT_EQ(1, list.PopFront(2));
123 EXPECT_EQ(0u, list.NumBlockedStreams()); 112 EXPECT_EQ(0u, list.NumBlockedStreams());
124 } else {
125 list.PushBack(1, 1);
126 list.PushBack(2, 2);
127 list.PushBack(3, 3);
128 list.PushBack(1, 3);
129 list.PushBack(1, 3);
130 EXPECT_EQ(5u, list.NumBlockedStreams());
131 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
132 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
133 EXPECT_EQ(3u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
134
135 list.UpdateStreamPriorityInWriteBlockedList(1, 1, 2);
136 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
137 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
138 list.UpdateStreamPriorityInWriteBlockedList(3, 3, 1);
139 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
140 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
141
142 // Redundant update.
143 list.UpdateStreamPriorityInWriteBlockedList(1, 3, 3);
144 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
145
146 // No entries for given stream_id / old_priority pair.
147 list.UpdateStreamPriorityInWriteBlockedList(4, 4, 1);
148 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
149 EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
150 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(4, &list)->size());
151
152 // Update multiple entries.
153 list.UpdateStreamPriorityInWriteBlockedList(1, 3, 4);
154 EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
155 EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(4, &list)->size());
156
157 EXPECT_EQ(3, list.PopFront(1));
158 EXPECT_EQ(2, list.PopFront(2));
159 EXPECT_EQ(1, list.PopFront(2));
160 EXPECT_EQ(1, list.PopFront(4));
161 EXPECT_EQ(0u, list.NumBlockedStreams());
162 }
163 } 113 }
164 114
165 } // namespace 115 } // namespace
166 116
167 } // namespace test 117 } // namespace test
168 } // namespace net 118 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/write_blocked_list.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698