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

Side by Side Diff: net/spdy/core/spdy_frame_reader_test.cc

Issue 2895993003: Misc cleanup in net/spdy/core. (Closed)
Patch Set: Rebase. Created 3 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
OLDNEW
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/core/spdy_frame_reader.h" 5 #include "net/spdy/core/spdy_frame_reader.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <iostream> 8 #include <iostream>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 12 matching lines...) Expand all
23 sizeof(kFrameData)); 23 sizeof(kFrameData));
24 EXPECT_FALSE(frame_reader.IsDoneReading()); 24 EXPECT_FALSE(frame_reader.IsDoneReading());
25 25
26 uint16_t uint16_val; 26 uint16_t uint16_val;
27 EXPECT_TRUE(frame_reader.ReadUInt16(&uint16_val)); 27 EXPECT_TRUE(frame_reader.ReadUInt16(&uint16_val));
28 EXPECT_FALSE(frame_reader.IsDoneReading()); 28 EXPECT_FALSE(frame_reader.IsDoneReading());
29 EXPECT_EQ(1, uint16_val); 29 EXPECT_EQ(1, uint16_val);
30 30
31 EXPECT_TRUE(frame_reader.ReadUInt16(&uint16_val)); 31 EXPECT_TRUE(frame_reader.ReadUInt16(&uint16_val));
32 EXPECT_TRUE(frame_reader.IsDoneReading()); 32 EXPECT_TRUE(frame_reader.IsDoneReading());
33 EXPECT_EQ(1<<15, uint16_val); 33 EXPECT_EQ(1 << 15, uint16_val);
34 } 34 }
35 35
36 TEST(SpdyFrameReaderTest, ReadUInt32) { 36 TEST(SpdyFrameReaderTest, ReadUInt32) {
37 // Frame data in network byte order. 37 // Frame data in network byte order.
38 const uint32_t kFrameData[] = { 38 const uint32_t kFrameData[] = {
39 base::HostToNet32(1), base::HostToNet32(0x80000000), 39 base::HostToNet32(1), base::HostToNet32(0x80000000),
40 }; 40 };
41 41
42 SpdyFrameReader frame_reader(reinterpret_cast<const char*>(kFrameData), 42 SpdyFrameReader frame_reader(reinterpret_cast<const char*>(kFrameData),
43 arraysize(kFrameData) * sizeof(uint32_t)); 43 arraysize(kFrameData) * sizeof(uint32_t));
44 EXPECT_FALSE(frame_reader.IsDoneReading()); 44 EXPECT_FALSE(frame_reader.IsDoneReading());
45 45
46 uint32_t uint32_val; 46 uint32_t uint32_val;
47 EXPECT_TRUE(frame_reader.ReadUInt32(&uint32_val)); 47 EXPECT_TRUE(frame_reader.ReadUInt32(&uint32_val));
48 EXPECT_FALSE(frame_reader.IsDoneReading()); 48 EXPECT_FALSE(frame_reader.IsDoneReading());
49 EXPECT_EQ(1u, uint32_val); 49 EXPECT_EQ(1u, uint32_val);
50 50
51 EXPECT_TRUE(frame_reader.ReadUInt32(&uint32_val)); 51 EXPECT_TRUE(frame_reader.ReadUInt32(&uint32_val));
52 EXPECT_TRUE(frame_reader.IsDoneReading()); 52 EXPECT_TRUE(frame_reader.IsDoneReading());
53 EXPECT_EQ(1u<<31, uint32_val); 53 EXPECT_EQ(1u << 31, uint32_val);
54 } 54 }
55 55
56 TEST(SpdyFrameReaderTest, ReadStringPiece16) { 56 TEST(SpdyFrameReaderTest, ReadStringPiece16) {
57 // Frame data in network byte order. 57 // Frame data in network byte order.
58 const char kFrameData[] = { 58 const char kFrameData[] = {
59 0x00, 0x02, // uint16_t(2) 59 0x00, 0x02, // uint16_t(2)
60 0x48, 0x69, // "Hi" 60 0x48, 0x69, // "Hi"
61 0x00, 0x10, // uint16_t(16) 61 0x00, 0x10, // uint16_t(16)
62 0x54, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2c, 62 0x54, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2c,
63 0x20, 0x31, 0x2c, 0x20, 0x32, 0x2c, 0x20, 0x33, // "Testing, 1, 2, 3" 63 0x20, 0x31, 0x2c, 0x20, 0x32, 0x2c, 0x20, 0x33, // "Testing, 1, 2, 3"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 0x00, 0x00, 0x00, // part of a uint32_t 118 0x00, 0x00, 0x00, // part of a uint32_t
119 }; 119 };
120 120
121 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData)); 121 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData));
122 EXPECT_FALSE(frame_reader.IsDoneReading()); 122 EXPECT_FALSE(frame_reader.IsDoneReading());
123 123
124 uint32_t uint32_val; 124 uint32_t uint32_val;
125 EXPECT_FALSE(frame_reader.ReadUInt32(&uint32_val)); 125 EXPECT_FALSE(frame_reader.ReadUInt32(&uint32_val));
126 126
127 // Also make sure that trying to read a uint16_t, which technically could 127 // Also make sure that trying to read a uint16_t, which technically could
128 // work, 128 // work, fails immediately due to previously encountered failed read.
129 // fails immediately due to previously encountered failed read.
130 uint16_t uint16_val; 129 uint16_t uint16_val;
131 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val)); 130 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val));
132 } 131 }
133 132
134 // Tests ReadStringPiece16() with a buffer too small to fit the entire string. 133 // Tests ReadStringPiece16() with a buffer too small to fit the entire string.
135 TEST(SpdyFrameReaderTest, ReadStringPiece16WithBufferTooSmall) { 134 TEST(SpdyFrameReaderTest, ReadStringPiece16WithBufferTooSmall) {
136 // Frame data in network byte order. 135 // Frame data in network byte order.
137 const char kFrameData[] = { 136 const char kFrameData[] = {
138 0x00, 0x03, // uint16_t(3) 137 0x00, 0x03, // uint16_t(3)
139 0x48, 0x69, // "Hi" 138 0x48, 0x69, // "Hi"
140 }; 139 };
141 140
142 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData)); 141 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData));
143 EXPECT_FALSE(frame_reader.IsDoneReading()); 142 EXPECT_FALSE(frame_reader.IsDoneReading());
144 143
145 SpdyStringPiece stringpiece_val; 144 SpdyStringPiece stringpiece_val;
146 EXPECT_FALSE(frame_reader.ReadStringPiece16(&stringpiece_val)); 145 EXPECT_FALSE(frame_reader.ReadStringPiece16(&stringpiece_val));
147 146
148 // Also make sure that trying to read a uint16_t, which technically could 147 // Also make sure that trying to read a uint16_t, which technically could
149 // work, 148 // work, fails immediately due to previously encountered failed read.
150 // fails immediately due to previously encountered failed read.
151 uint16_t uint16_val; 149 uint16_t uint16_val;
152 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val)); 150 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val));
153 } 151 }
154 152
155 // Tests ReadStringPiece16() with a buffer too small even to fit the length. 153 // Tests ReadStringPiece16() with a buffer too small even to fit the length.
156 TEST(SpdyFrameReaderTest, ReadStringPiece16WithBufferWayTooSmall) { 154 TEST(SpdyFrameReaderTest, ReadStringPiece16WithBufferWayTooSmall) {
157 // Frame data in network byte order. 155 // Frame data in network byte order.
158 const char kFrameData[] = { 156 const char kFrameData[] = {
159 0x00, // part of a uint16_t 157 0x00, // part of a uint16_t
160 }; 158 };
161 159
162 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData)); 160 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData));
163 EXPECT_FALSE(frame_reader.IsDoneReading()); 161 EXPECT_FALSE(frame_reader.IsDoneReading());
164 162
165 SpdyStringPiece stringpiece_val; 163 SpdyStringPiece stringpiece_val;
166 EXPECT_FALSE(frame_reader.ReadStringPiece16(&stringpiece_val)); 164 EXPECT_FALSE(frame_reader.ReadStringPiece16(&stringpiece_val));
167 165
168 // Also make sure that trying to read a uint16_t, which technically could 166 // Also make sure that trying to read a uint16_t, which technically could
169 // work, 167 // work, fails immediately due to previously encountered failed read.
170 // fails immediately due to previously encountered failed read.
171 uint16_t uint16_val; 168 uint16_t uint16_val;
172 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val)); 169 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val));
173 } 170 }
174 171
175 // Tests ReadStringPiece32() with a buffer too small to fit the entire string. 172 // Tests ReadStringPiece32() with a buffer too small to fit the entire string.
176 TEST(SpdyFrameReaderTest, ReadStringPiece32WithBufferTooSmall) { 173 TEST(SpdyFrameReaderTest, ReadStringPiece32WithBufferTooSmall) {
177 // Frame data in network byte order. 174 // Frame data in network byte order.
178 const char kFrameData[] = { 175 const char kFrameData[] = {
179 0x00, 0x00, 0x00, 0x03, // uint32_t(3) 176 0x00, 0x00, 0x00, 0x03, // uint32_t(3)
180 0x48, 0x69, // "Hi" 177 0x48, 0x69, // "Hi"
181 }; 178 };
182 179
183 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData)); 180 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData));
184 EXPECT_FALSE(frame_reader.IsDoneReading()); 181 EXPECT_FALSE(frame_reader.IsDoneReading());
185 182
186 SpdyStringPiece stringpiece_val; 183 SpdyStringPiece stringpiece_val;
187 EXPECT_FALSE(frame_reader.ReadStringPiece32(&stringpiece_val)); 184 EXPECT_FALSE(frame_reader.ReadStringPiece32(&stringpiece_val));
188 185
189 // Also make sure that trying to read a uint16_t, which technically could 186 // Also make sure that trying to read a uint16_t, which technically could
190 // work, 187 // work, fails immediately due to previously encountered failed read.
191 // fails immediately due to previously encountered failed read.
192 uint16_t uint16_val; 188 uint16_t uint16_val;
193 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val)); 189 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val));
194 } 190 }
195 191
196 // Tests ReadStringPiece32() with a buffer too small even to fit the length. 192 // Tests ReadStringPiece32() with a buffer too small even to fit the length.
197 TEST(SpdyFrameReaderTest, ReadStringPiece32WithBufferWayTooSmall) { 193 TEST(SpdyFrameReaderTest, ReadStringPiece32WithBufferWayTooSmall) {
198 // Frame data in network byte order. 194 // Frame data in network byte order.
199 const char kFrameData[] = { 195 const char kFrameData[] = {
200 0x00, 0x00, 0x00, // part of a uint32_t 196 0x00, 0x00, 0x00, // part of a uint32_t
201 }; 197 };
202 198
203 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData)); 199 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData));
204 EXPECT_FALSE(frame_reader.IsDoneReading()); 200 EXPECT_FALSE(frame_reader.IsDoneReading());
205 201
206 SpdyStringPiece stringpiece_val; 202 SpdyStringPiece stringpiece_val;
207 EXPECT_FALSE(frame_reader.ReadStringPiece32(&stringpiece_val)); 203 EXPECT_FALSE(frame_reader.ReadStringPiece32(&stringpiece_val));
208 204
209 // Also make sure that trying to read a uint16_t, which technically could 205 // Also make sure that trying to read a uint16_t, which technically could
210 // work, 206 // work, fails immediately due to previously encountered failed read.
211 // fails immediately due to previously encountered failed read.
212 uint16_t uint16_val; 207 uint16_t uint16_val;
213 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val)); 208 EXPECT_FALSE(frame_reader.ReadUInt16(&uint16_val));
214 } 209 }
215 210
216 TEST(SpdyFrameReaderTest, ReadBytes) { 211 TEST(SpdyFrameReaderTest, ReadBytes) {
217 // Frame data in network byte order. 212 // Frame data in network byte order.
218 const char kFrameData[] = { 213 const char kFrameData[] = {
219 0x66, 0x6f, 0x6f, // "foo" 214 0x66, 0x6f, 0x6f, // "foo"
220 0x48, 0x69, // "Hi" 215 0x48, 0x69, // "Hi"
221 }; 216 };
222 217
223 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData)); 218 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData));
224 EXPECT_FALSE(frame_reader.IsDoneReading()); 219 EXPECT_FALSE(frame_reader.IsDoneReading());
225 220
226 char dest1[3] = {}; 221 char dest1[3] = {};
227 EXPECT_TRUE(frame_reader.ReadBytes(&dest1, arraysize(dest1))); 222 EXPECT_TRUE(frame_reader.ReadBytes(&dest1, arraysize(dest1)));
228 EXPECT_FALSE(frame_reader.IsDoneReading()); 223 EXPECT_FALSE(frame_reader.IsDoneReading());
229 EXPECT_EQ("foo", SpdyStringPiece(dest1, arraysize(dest1))); 224 EXPECT_EQ("foo", SpdyStringPiece(dest1, arraysize(dest1)));
230 225
231 char dest2[2] = {}; 226 char dest2[2] = {};
232 EXPECT_TRUE(frame_reader.ReadBytes(&dest2, arraysize(dest2))); 227 EXPECT_TRUE(frame_reader.ReadBytes(&dest2, arraysize(dest2)));
233 EXPECT_TRUE(frame_reader.IsDoneReading()); 228 EXPECT_TRUE(frame_reader.IsDoneReading());
234 EXPECT_EQ("Hi", SpdyStringPiece(dest2, arraysize(dest2))); 229 EXPECT_EQ("Hi", SpdyStringPiece(dest2, arraysize(dest2)));
235 } 230 }
236 231
237 TEST(SpdyFrameReaderTest, ReadBytesWithBufferTooSmall) { 232 TEST(SpdyFrameReaderTest, ReadBytesWithBufferTooSmall) {
238 // Frame data in network byte order. 233 // Frame data in network byte order.
239 const char kFrameData[] = { 234 const char kFrameData[] = {
240 0x01, 235 0x01,
241 }; 236 };
242 237
243 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData)); 238 SpdyFrameReader frame_reader(kFrameData, arraysize(kFrameData));
244 EXPECT_FALSE(frame_reader.IsDoneReading()); 239 EXPECT_FALSE(frame_reader.IsDoneReading());
245 240
246 char dest[arraysize(kFrameData) + 2] = {}; 241 char dest[arraysize(kFrameData) + 2] = {};
247 EXPECT_FALSE(frame_reader.ReadBytes(&dest, arraysize(kFrameData) + 1)); 242 EXPECT_FALSE(frame_reader.ReadBytes(&dest, arraysize(kFrameData) + 1));
248 EXPECT_STREQ("", dest); 243 EXPECT_STREQ("", dest);
249 } 244 }
250 245
251 } // namespace net 246 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698