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

Side by Side Diff: net/quic/quic_stream_sequencer_test.cc

Issue 1680643002: Refactor gmock_mutant.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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/quic/quic_stream_sequencer.h" 5 #include "net/quic/quic_stream_sequencer.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 175
176 INSTANTIATE_TEST_CASE_P(QuicStreamSequencerTests, 176 INSTANTIATE_TEST_CASE_P(QuicStreamSequencerTests,
177 QuicStreamSequencerTest, 177 QuicStreamSequencerTest,
178 ::testing::Values(false, true)); 178 ::testing::Values(false, true));
179 179
180 // TODO(rch): reorder these tests so they build on each other. 180 // TODO(rch): reorder these tests so they build on each other.
181 181
182 TEST_P(QuicStreamSequencerTest, RejectOldFrame) { 182 TEST_P(QuicStreamSequencerTest, RejectOldFrame) {
183 EXPECT_CALL(stream_, OnDataAvailable()) 183 EXPECT_CALL(stream_, OnDataAvailable())
184 .WillOnce(testing::Invoke( 184 .WillOnce(testing::Invoke(
185 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3))); 185 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
186 base::Unretained(this), 3)));
186 187
187 OnFrame(0, "abc"); 188 OnFrame(0, "abc");
188 189
189 EXPECT_EQ(0u, NumBufferedBytes()); 190 EXPECT_EQ(0u, NumBufferedBytes());
190 EXPECT_EQ(3u, sequencer_->NumBytesConsumed()); 191 EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
191 EXPECT_EQ(3u, stream_.flow_controller()->bytes_consumed()); 192 EXPECT_EQ(3u, stream_.flow_controller()->bytes_consumed());
192 // Ignore this - it matches a past packet number and we should not see it 193 // Ignore this - it matches a past packet number and we should not see it
193 // again. 194 // again.
194 OnFrame(0, "def"); 195 OnFrame(0, "def");
195 EXPECT_EQ(0u, NumBufferedBytes()); 196 EXPECT_EQ(0u, NumBufferedBytes());
196 } 197 }
197 198
198 TEST_P(QuicStreamSequencerTest, RejectBufferedFrame) { 199 TEST_P(QuicStreamSequencerTest, RejectBufferedFrame) {
199 EXPECT_CALL(stream_, OnDataAvailable()); 200 EXPECT_CALL(stream_, OnDataAvailable());
200 201
201 OnFrame(0, "abc"); 202 OnFrame(0, "abc");
202 EXPECT_EQ(3u, NumBufferedBytes()); 203 EXPECT_EQ(3u, NumBufferedBytes());
203 EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); 204 EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
204 205
205 // Ignore this - it matches a buffered frame. 206 // Ignore this - it matches a buffered frame.
206 // Right now there's no checking that the payload is consistent. 207 // Right now there's no checking that the payload is consistent.
207 OnFrame(0, "def"); 208 OnFrame(0, "def");
208 EXPECT_EQ(3u, NumBufferedBytes()); 209 EXPECT_EQ(3u, NumBufferedBytes());
209 } 210 }
210 211
211 TEST_P(QuicStreamSequencerTest, FullFrameConsumed) { 212 TEST_P(QuicStreamSequencerTest, FullFrameConsumed) {
212 EXPECT_CALL(stream_, OnDataAvailable()) 213 EXPECT_CALL(stream_, OnDataAvailable())
213 .WillOnce(testing::Invoke( 214 .WillOnce(testing::Invoke(
214 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3))); 215 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
216 base::Unretained(this), 3)));
215 217
216 OnFrame(0, "abc"); 218 OnFrame(0, "abc");
217 EXPECT_EQ(0u, NumBufferedBytes()); 219 EXPECT_EQ(0u, NumBufferedBytes());
218 EXPECT_EQ(3u, sequencer_->NumBytesConsumed()); 220 EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
219 } 221 }
220 222
221 TEST_P(QuicStreamSequencerTest, BlockedThenFullFrameConsumed) { 223 TEST_P(QuicStreamSequencerTest, BlockedThenFullFrameConsumed) {
222 sequencer_->SetBlockedUntilFlush(); 224 sequencer_->SetBlockedUntilFlush();
223 225
224 OnFrame(0, "abc"); 226 OnFrame(0, "abc");
225 EXPECT_EQ(3u, NumBufferedBytes()); 227 EXPECT_EQ(3u, NumBufferedBytes());
226 EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); 228 EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
227 229
228 EXPECT_CALL(stream_, OnDataAvailable()) 230 EXPECT_CALL(stream_, OnDataAvailable())
229 .WillOnce(testing::Invoke( 231 .WillOnce(testing::Invoke(
230 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3))); 232 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
233 base::Unretained(this), 3)));
231 sequencer_->SetUnblocked(); 234 sequencer_->SetUnblocked();
232 EXPECT_EQ(0u, NumBufferedBytes()); 235 EXPECT_EQ(0u, NumBufferedBytes());
233 EXPECT_EQ(3u, sequencer_->NumBytesConsumed()); 236 EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
234 237
235 EXPECT_CALL(stream_, OnDataAvailable()) 238 EXPECT_CALL(stream_, OnDataAvailable())
236 .WillOnce(testing::Invoke( 239 .WillOnce(testing::Invoke(
237 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3))); 240 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
241 base::Unretained(this), 3)));
238 EXPECT_FALSE(sequencer_->IsClosed()); 242 EXPECT_FALSE(sequencer_->IsClosed());
239 OnFinFrame(3, "def"); 243 OnFinFrame(3, "def");
240 EXPECT_TRUE(sequencer_->IsClosed()); 244 EXPECT_TRUE(sequencer_->IsClosed());
241 } 245 }
242 246
243 TEST_P(QuicStreamSequencerTest, BlockedThenFullFrameAndFinConsumed) { 247 TEST_P(QuicStreamSequencerTest, BlockedThenFullFrameAndFinConsumed) {
244 sequencer_->SetBlockedUntilFlush(); 248 sequencer_->SetBlockedUntilFlush();
245 249
246 OnFinFrame(0, "abc"); 250 OnFinFrame(0, "abc");
247 EXPECT_EQ(3u, NumBufferedBytes()); 251 EXPECT_EQ(3u, NumBufferedBytes());
248 EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); 252 EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
249 253
250 EXPECT_CALL(stream_, OnDataAvailable()) 254 EXPECT_CALL(stream_, OnDataAvailable())
251 .WillOnce(testing::Invoke( 255 .WillOnce(testing::Invoke(
252 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3))); 256 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
257 base::Unretained(this), 3)));
253 EXPECT_FALSE(sequencer_->IsClosed()); 258 EXPECT_FALSE(sequencer_->IsClosed());
254 sequencer_->SetUnblocked(); 259 sequencer_->SetUnblocked();
255 EXPECT_TRUE(sequencer_->IsClosed()); 260 EXPECT_TRUE(sequencer_->IsClosed());
256 EXPECT_EQ(0u, NumBufferedBytes()); 261 EXPECT_EQ(0u, NumBufferedBytes());
257 EXPECT_EQ(3u, sequencer_->NumBytesConsumed()); 262 EXPECT_EQ(3u, sequencer_->NumBytesConsumed());
258 } 263 }
259 264
260 TEST_P(QuicStreamSequencerTest, EmptyFrame) { 265 TEST_P(QuicStreamSequencerTest, EmptyFrame) {
261 EXPECT_CALL(stream_, 266 EXPECT_CALL(stream_,
262 CloseConnectionWithDetails(QUIC_INVALID_STREAM_FRAME, _)); 267 CloseConnectionWithDetails(QUIC_INVALID_STREAM_FRAME, _));
263 OnFrame(0, ""); 268 OnFrame(0, "");
264 EXPECT_EQ(0u, NumBufferedBytes()); 269 EXPECT_EQ(0u, NumBufferedBytes());
265 EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); 270 EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
266 } 271 }
267 272
268 TEST_P(QuicStreamSequencerTest, EmptyFinFrame) { 273 TEST_P(QuicStreamSequencerTest, EmptyFinFrame) {
269 EXPECT_CALL(stream_, OnDataAvailable()); 274 EXPECT_CALL(stream_, OnDataAvailable());
270 OnFinFrame(0, ""); 275 OnFinFrame(0, "");
271 EXPECT_EQ(0u, NumBufferedBytes()); 276 EXPECT_EQ(0u, NumBufferedBytes());
272 EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); 277 EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
273 } 278 }
274 279
275 TEST_P(QuicStreamSequencerTest, PartialFrameConsumed) { 280 TEST_P(QuicStreamSequencerTest, PartialFrameConsumed) {
276 EXPECT_CALL(stream_, OnDataAvailable()) 281 EXPECT_CALL(stream_, OnDataAvailable())
277 .WillOnce(testing::Invoke( 282 .WillOnce(testing::Invoke(
278 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 2))); 283 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
284 base::Unretained(this), 2)));
279 285
280 OnFrame(0, "abc"); 286 OnFrame(0, "abc");
281 EXPECT_EQ(1u, NumBufferedBytes()); 287 EXPECT_EQ(1u, NumBufferedBytes());
282 EXPECT_EQ(2u, sequencer_->NumBytesConsumed()); 288 EXPECT_EQ(2u, sequencer_->NumBytesConsumed());
283 } 289 }
284 290
285 TEST_P(QuicStreamSequencerTest, NextxFrameNotConsumed) { 291 TEST_P(QuicStreamSequencerTest, NextxFrameNotConsumed) {
286 EXPECT_CALL(stream_, OnDataAvailable()); 292 EXPECT_CALL(stream_, OnDataAvailable());
287 293
288 OnFrame(0, "abc"); 294 OnFrame(0, "abc");
(...skipping 16 matching lines...) Expand all
305 EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); 311 EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
306 EXPECT_EQ(3u, sequencer_->NumBytesBuffered()); 312 EXPECT_EQ(3u, sequencer_->NumBytesBuffered());
307 // Buffer the second 313 // Buffer the second
308 OnFrame(3, "def"); 314 OnFrame(3, "def");
309 EXPECT_EQ(6u, NumBufferedBytes()); 315 EXPECT_EQ(6u, NumBufferedBytes());
310 EXPECT_EQ(0u, sequencer_->NumBytesConsumed()); 316 EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
311 EXPECT_EQ(6u, sequencer_->NumBytesBuffered()); 317 EXPECT_EQ(6u, sequencer_->NumBytesBuffered());
312 318
313 EXPECT_CALL(stream_, OnDataAvailable()) 319 EXPECT_CALL(stream_, OnDataAvailable())
314 .WillOnce(testing::Invoke( 320 .WillOnce(testing::Invoke(
315 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 9))); 321 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
322 base::Unretained(this), 9)));
316 323
317 // Now process all of them at once. 324 // Now process all of them at once.
318 OnFrame(0, "abc"); 325 OnFrame(0, "abc");
319 EXPECT_EQ(9u, sequencer_->NumBytesConsumed()); 326 EXPECT_EQ(9u, sequencer_->NumBytesConsumed());
320 EXPECT_EQ(0u, sequencer_->NumBytesBuffered()); 327 EXPECT_EQ(0u, sequencer_->NumBytesBuffered());
321 328
322 EXPECT_EQ(0u, NumBufferedBytes()); 329 EXPECT_EQ(0u, NumBufferedBytes());
323 } 330 }
324 331
325 TEST_P(QuicStreamSequencerTest, BasicHalfCloseOrdered) { 332 TEST_P(QuicStreamSequencerTest, BasicHalfCloseOrdered) {
326 InSequence s; 333 InSequence s;
327 334
328 EXPECT_CALL(stream_, OnDataAvailable()) 335 EXPECT_CALL(stream_, OnDataAvailable())
329 .WillOnce(testing::Invoke( 336 .WillOnce(testing::Invoke(
330 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3))); 337 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
338 base::Unretained(this), 3)));
331 OnFinFrame(0, "abc"); 339 OnFinFrame(0, "abc");
332 340
333 EXPECT_EQ(3u, QuicStreamSequencerPeer::GetCloseOffset(sequencer_.get())); 341 EXPECT_EQ(3u, QuicStreamSequencerPeer::GetCloseOffset(sequencer_.get()));
334 } 342 }
335 343
336 TEST_P(QuicStreamSequencerTest, BasicHalfCloseUnorderedWithFlush) { 344 TEST_P(QuicStreamSequencerTest, BasicHalfCloseUnorderedWithFlush) {
337 OnFinFrame(6, ""); 345 OnFinFrame(6, "");
338 EXPECT_EQ(6u, QuicStreamSequencerPeer::GetCloseOffset(sequencer_.get())); 346 EXPECT_EQ(6u, QuicStreamSequencerPeer::GetCloseOffset(sequencer_.get()));
339 347
340 OnFrame(3, "def"); 348 OnFrame(3, "def");
341 EXPECT_CALL(stream_, OnDataAvailable()) 349 EXPECT_CALL(stream_, OnDataAvailable())
342 .WillOnce(testing::Invoke( 350 .WillOnce(testing::Invoke(
343 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 6))); 351 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
352 base::Unretained(this), 6)));
344 EXPECT_FALSE(sequencer_->IsClosed()); 353 EXPECT_FALSE(sequencer_->IsClosed());
345 OnFrame(0, "abc"); 354 OnFrame(0, "abc");
346 EXPECT_TRUE(sequencer_->IsClosed()); 355 EXPECT_TRUE(sequencer_->IsClosed());
347 } 356 }
348 357
349 TEST_P(QuicStreamSequencerTest, BasicHalfUnordered) { 358 TEST_P(QuicStreamSequencerTest, BasicHalfUnordered) {
350 OnFinFrame(3, ""); 359 OnFinFrame(3, "");
351 EXPECT_EQ(3u, QuicStreamSequencerPeer::GetCloseOffset(sequencer_.get())); 360 EXPECT_EQ(3u, QuicStreamSequencerPeer::GetCloseOffset(sequencer_.get()));
352 361
353 EXPECT_CALL(stream_, OnDataAvailable()) 362 EXPECT_CALL(stream_, OnDataAvailable())
354 .WillOnce(testing::Invoke( 363 .WillOnce(testing::Invoke(
355 CreateFunctor(this, &QuicStreamSequencerTest::ConsumeData, 3))); 364 CreateFunctor(&QuicStreamSequencerTest::ConsumeData,
365 base::Unretained(this), 3)));
356 EXPECT_FALSE(sequencer_->IsClosed()); 366 EXPECT_FALSE(sequencer_->IsClosed());
357 OnFrame(0, "abc"); 367 OnFrame(0, "abc");
358 EXPECT_TRUE(sequencer_->IsClosed()); 368 EXPECT_TRUE(sequencer_->IsClosed());
359 } 369 }
360 370
361 TEST_P(QuicStreamSequencerTest, TerminateWithReadv) { 371 TEST_P(QuicStreamSequencerTest, TerminateWithReadv) {
362 char buffer[3]; 372 char buffer[3];
363 373
364 OnFinFrame(3, ""); 374 OnFinFrame(3, "");
365 EXPECT_EQ(3u, QuicStreamSequencerPeer::GetCloseOffset(sequencer_.get())); 375 EXPECT_EQ(3u, QuicStreamSequencerPeer::GetCloseOffset(sequencer_.get()));
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 EXPECT_EQ(timestamp, t1); 738 EXPECT_EQ(timestamp, t1);
729 QuicStreamSequencerTest::ConsumeData(3); 739 QuicStreamSequencerTest::ConsumeData(3);
730 EXPECT_EQ(0u, NumBufferedBytes()); 740 EXPECT_EQ(0u, NumBufferedBytes());
731 EXPECT_EQ(6u, sequencer_->NumBytesConsumed()); 741 EXPECT_EQ(6u, sequencer_->NumBytesConsumed());
732 EXPECT_EQ(0u, sequencer_->NumBytesBuffered()); 742 EXPECT_EQ(0u, sequencer_->NumBytesBuffered());
733 } 743 }
734 744
735 } // namespace 745 } // namespace
736 } // namespace test 746 } // namespace test
737 } // namespace net 747 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_session_test.cc ('k') | remoting/host/it2me/it2me_confirmation_dialog_proxy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698