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

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

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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
« no previous file with comments | « net/quic/quic_stream_sequencer.cc ('k') | net/quic/quic_time_wait_list_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 EXPECT_EQ("c", buffered_frames_->find(2)->second); 219 EXPECT_EQ("c", buffered_frames_->find(2)->second);
220 } 220 }
221 221
222 TEST_F(QuicStreamSequencerTest, NextxFrameNotConsumed) { 222 TEST_F(QuicStreamSequencerTest, NextxFrameNotConsumed) {
223 EXPECT_CALL(stream_, ProcessRawData(StrEq("abc"), 3)).WillOnce(Return(0)); 223 EXPECT_CALL(stream_, ProcessRawData(StrEq("abc"), 3)).WillOnce(Return(0));
224 224
225 OnFrame(0, "abc"); 225 OnFrame(0, "abc");
226 EXPECT_EQ(1u, buffered_frames_->size()); 226 EXPECT_EQ(1u, buffered_frames_->size());
227 EXPECT_EQ(0u, sequencer_->num_bytes_consumed()); 227 EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
228 EXPECT_EQ("abc", buffered_frames_->find(0)->second); 228 EXPECT_EQ("abc", buffered_frames_->find(0)->second);
229 EXPECT_EQ(0, sequencer_->num_early_frames_received());
229 } 230 }
230 231
231 TEST_F(QuicStreamSequencerTest, FutureFrameNotProcessed) { 232 TEST_F(QuicStreamSequencerTest, FutureFrameNotProcessed) {
232 OnFrame(3, "abc"); 233 OnFrame(3, "abc");
233 EXPECT_EQ(1u, buffered_frames_->size()); 234 EXPECT_EQ(1u, buffered_frames_->size());
234 EXPECT_EQ(0u, sequencer_->num_bytes_consumed()); 235 EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
235 EXPECT_EQ("abc", buffered_frames_->find(3)->second); 236 EXPECT_EQ("abc", buffered_frames_->find(3)->second);
237 EXPECT_EQ(1, sequencer_->num_early_frames_received());
236 } 238 }
237 239
238 TEST_F(QuicStreamSequencerTest, OutOfOrderFrameProcessed) { 240 TEST_F(QuicStreamSequencerTest, OutOfOrderFrameProcessed) {
239 // Buffer the first 241 // Buffer the first
240 OnFrame(6, "ghi"); 242 OnFrame(6, "ghi");
241 EXPECT_EQ(1u, buffered_frames_->size()); 243 EXPECT_EQ(1u, buffered_frames_->size());
242 EXPECT_EQ(0u, sequencer_->num_bytes_consumed()); 244 EXPECT_EQ(0u, sequencer_->num_bytes_consumed());
243 EXPECT_EQ(3u, sequencer_->num_bytes_buffered()); 245 EXPECT_EQ(3u, sequencer_->num_bytes_buffered());
244 // Buffer the second 246 // Buffer the second
245 OnFrame(3, "def"); 247 OnFrame(3, "def");
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 public: 331 public:
330 typedef pair<int, string> Frame; 332 typedef pair<int, string> Frame;
331 typedef vector<Frame> FrameList; 333 typedef vector<Frame> FrameList;
332 334
333 void CreateFrames() { 335 void CreateFrames() {
334 int payload_size = arraysize(kPayload) - 1; 336 int payload_size = arraysize(kPayload) - 1;
335 int remaining_payload = payload_size; 337 int remaining_payload = payload_size;
336 while (remaining_payload != 0) { 338 while (remaining_payload != 0) {
337 int size = min(OneToN(6), remaining_payload); 339 int size = min(OneToN(6), remaining_payload);
338 int index = payload_size - remaining_payload; 340 int index = payload_size - remaining_payload;
339 list_.push_back(make_pair(index, string(kPayload + index, size))); 341 list_.push_back(std::make_pair(index, string(kPayload + index, size)));
340 remaining_payload -= size; 342 remaining_payload -= size;
341 } 343 }
342 } 344 }
343 345
344 QuicSequencerRandomTest() { 346 QuicSequencerRandomTest() {
345 CreateFrames(); 347 CreateFrames();
346 } 348 }
347 349
348 int OneToN(int n) { 350 int OneToN(int n) {
349 return base::RandInt(1, n); 351 return base::RandInt(1, n);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 const int kNewDataLength = 3; 395 const int kNewDataLength = 3;
394 IOVector data = MakeIOVector(string(kNewDataLength, '.')); 396 IOVector data = MakeIOVector(string(kNewDataLength, '.'));
395 397
396 // No overlap if no buffered frames. 398 // No overlap if no buffered frames.
397 EXPECT_TRUE(buffered_frames_->empty()); 399 EXPECT_TRUE(buffered_frames_->empty());
398 EXPECT_FALSE(sequencer_->FrameOverlapsBufferedData( 400 EXPECT_FALSE(sequencer_->FrameOverlapsBufferedData(
399 QuicStreamFrame(1, false, kBufferedOffset - 1, data))); 401 QuicStreamFrame(1, false, kBufferedOffset - 1, data)));
400 402
401 // Add a buffered frame. 403 // Add a buffered frame.
402 buffered_frames->insert( 404 buffered_frames->insert(
403 make_pair(kBufferedOffset, string(kBufferedDataLength, '.'))); 405 std::make_pair(kBufferedOffset, string(kBufferedDataLength, '.')));
404 406
405 // New byte range partially overlaps with buffered frame, start offset 407 // New byte range partially overlaps with buffered frame, start offset
406 // preceeding buffered frame. 408 // preceeding buffered frame.
407 EXPECT_TRUE(sequencer_->FrameOverlapsBufferedData( 409 EXPECT_TRUE(sequencer_->FrameOverlapsBufferedData(
408 QuicStreamFrame(1, false, kBufferedOffset - 1, data))); 410 QuicStreamFrame(1, false, kBufferedOffset - 1, data)));
409 EXPECT_TRUE(sequencer_->FrameOverlapsBufferedData( 411 EXPECT_TRUE(sequencer_->FrameOverlapsBufferedData(
410 QuicStreamFrame(1, false, kBufferedOffset - kNewDataLength + 1, data))); 412 QuicStreamFrame(1, false, kBufferedOffset - kNewDataLength + 1, data)));
411 413
412 // New byte range partially overlaps with buffered frame, start offset 414 // New byte range partially overlaps with buffered frame, start offset
413 // inside existing buffered frame. 415 // inside existing buffered frame.
(...skipping 23 matching lines...) Expand all
437 QuicStreamFrame frame2(kClientDataStreamId1, false, 2, MakeIOVector("hello")); 439 QuicStreamFrame frame2(kClientDataStreamId1, false, 2, MakeIOVector("hello"));
438 EXPECT_TRUE(sequencer_->FrameOverlapsBufferedData(frame2)); 440 EXPECT_TRUE(sequencer_->FrameOverlapsBufferedData(frame2));
439 EXPECT_CALL(stream_, CloseConnectionWithDetails(QUIC_INVALID_STREAM_FRAME, _)) 441 EXPECT_CALL(stream_, CloseConnectionWithDetails(QUIC_INVALID_STREAM_FRAME, _))
440 .Times(1); 442 .Times(1);
441 sequencer_->OnStreamFrame(frame2); 443 sequencer_->OnStreamFrame(frame2);
442 } 444 }
443 445
444 } // namespace 446 } // namespace
445 } // namespace test 447 } // namespace test
446 } // namespace net 448 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_stream_sequencer.cc ('k') | net/quic/quic_time_wait_list_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698