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

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

Issue 1535363003: Switch to standard integer types in net/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: stddef Created 5 years 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_spdy_stream.h ('k') | net/quic/quic_stream_factory.h » ('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 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/quic/quic_spdy_stream.h" 5 #include "net/quic/quic_spdy_stream.h"
6 6
7 #include "base/strings/string_number_conversions.h" 7 #include "base/strings/string_number_conversions.h"
8 8
9 #include "net/quic/quic_connection.h" 9 #include "net/quic/quic_connection.h"
10 #include "net/quic/quic_utils.h" 10 #include "net/quic/quic_utils.h"
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 ASSERT_EQ(body.data()[i + 1], buffer2[0]) << i; 342 ASSERT_EQ(body.data()[i + 1], buffer2[0]) << i;
343 } 343 }
344 } 344 }
345 345
346 TEST_P(QuicSpdyStreamTest, StreamFlowControlBlocked) { 346 TEST_P(QuicSpdyStreamTest, StreamFlowControlBlocked) {
347 // Tests that we send a BLOCKED frame to the peer when we attempt to write, 347 // Tests that we send a BLOCKED frame to the peer when we attempt to write,
348 // but are flow control blocked. 348 // but are flow control blocked.
349 Initialize(kShouldProcessData); 349 Initialize(kShouldProcessData);
350 350
351 // Set a small flow control limit. 351 // Set a small flow control limit.
352 const uint64 kWindow = 36; 352 const uint64_t kWindow = 36;
353 QuicFlowControllerPeer::SetSendWindowOffset(stream_->flow_controller(), 353 QuicFlowControllerPeer::SetSendWindowOffset(stream_->flow_controller(),
354 kWindow); 354 kWindow);
355 EXPECT_EQ(kWindow, QuicFlowControllerPeer::SendWindowOffset( 355 EXPECT_EQ(kWindow, QuicFlowControllerPeer::SendWindowOffset(
356 stream_->flow_controller())); 356 stream_->flow_controller()));
357 357
358 // Try to send more data than the flow control limit allows. 358 // Try to send more data than the flow control limit allows.
359 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_); 359 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_);
360 string body; 360 string body;
361 const uint64 kOverflow = 15; 361 const uint64_t kOverflow = 15;
362 GenerateBody(&body, kWindow + kOverflow); 362 GenerateBody(&body, kWindow + kOverflow);
363 363
364 EXPECT_CALL(*connection_, SendBlocked(kClientDataStreamId1)); 364 EXPECT_CALL(*connection_, SendBlocked(kClientDataStreamId1));
365 EXPECT_CALL(*session_, WritevData(kClientDataStreamId1, _, _, _, _, _)) 365 EXPECT_CALL(*session_, WritevData(kClientDataStreamId1, _, _, _, _, _))
366 .WillOnce(Return(QuicConsumedData(kWindow, true))); 366 .WillOnce(Return(QuicConsumedData(kWindow, true)));
367 stream_->WriteOrBufferData(body, false, nullptr); 367 stream_->WriteOrBufferData(body, false, nullptr);
368 368
369 // Should have sent as much as possible, resulting in no send window left. 369 // Should have sent as much as possible, resulting in no send window left.
370 EXPECT_EQ(0u, 370 EXPECT_EQ(0u,
371 QuicFlowControllerPeer::SendWindowSize(stream_->flow_controller())); 371 QuicFlowControllerPeer::SendWindowSize(stream_->flow_controller()));
372 372
373 // And we should have queued the overflowed data. 373 // And we should have queued the overflowed data.
374 EXPECT_EQ(kOverflow, ReliableQuicStreamPeer::SizeOfQueuedData(stream_)); 374 EXPECT_EQ(kOverflow, ReliableQuicStreamPeer::SizeOfQueuedData(stream_));
375 } 375 }
376 376
377 TEST_P(QuicSpdyStreamTest, StreamFlowControlNoWindowUpdateIfNotConsumed) { 377 TEST_P(QuicSpdyStreamTest, StreamFlowControlNoWindowUpdateIfNotConsumed) {
378 // The flow control receive window decreases whenever we add new bytes to the 378 // The flow control receive window decreases whenever we add new bytes to the
379 // sequencer, whether they are consumed immediately or buffered. However we 379 // sequencer, whether they are consumed immediately or buffered. However we
380 // only send WINDOW_UPDATE frames based on increasing number of bytes 380 // only send WINDOW_UPDATE frames based on increasing number of bytes
381 // consumed. 381 // consumed.
382 382
383 // Don't process data - it will be buffered instead. 383 // Don't process data - it will be buffered instead.
384 Initialize(!kShouldProcessData); 384 Initialize(!kShouldProcessData);
385 385
386 // Expect no WINDOW_UPDATE frames to be sent. 386 // Expect no WINDOW_UPDATE frames to be sent.
387 EXPECT_CALL(*connection_, SendWindowUpdate(_, _)).Times(0); 387 EXPECT_CALL(*connection_, SendWindowUpdate(_, _)).Times(0);
388 388
389 // Set a small flow control receive window. 389 // Set a small flow control receive window.
390 const uint64 kWindow = 36; 390 const uint64_t kWindow = 36;
391 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(), 391 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(),
392 kWindow); 392 kWindow);
393 QuicFlowControllerPeer::SetMaxReceiveWindow(stream_->flow_controller(), 393 QuicFlowControllerPeer::SetMaxReceiveWindow(stream_->flow_controller(),
394 kWindow); 394 kWindow);
395 EXPECT_EQ(kWindow, QuicFlowControllerPeer::ReceiveWindowOffset( 395 EXPECT_EQ(kWindow, QuicFlowControllerPeer::ReceiveWindowOffset(
396 stream_->flow_controller())); 396 stream_->flow_controller()));
397 397
398 // Stream receives enough data to fill a fraction of the receive window. 398 // Stream receives enough data to fill a fraction of the receive window.
399 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_); 399 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_);
400 string body; 400 string body;
(...skipping 17 matching lines...) Expand all
418 QuicFlowControllerPeer::ReceiveWindowSize(stream_->flow_controller())); 418 QuicFlowControllerPeer::ReceiveWindowSize(stream_->flow_controller()));
419 } 419 }
420 420
421 TEST_P(QuicSpdyStreamTest, StreamFlowControlWindowUpdate) { 421 TEST_P(QuicSpdyStreamTest, StreamFlowControlWindowUpdate) {
422 // Tests that on receipt of data, the stream updates its receive window offset 422 // Tests that on receipt of data, the stream updates its receive window offset
423 // appropriately, and sends WINDOW_UPDATE frames when its receive window drops 423 // appropriately, and sends WINDOW_UPDATE frames when its receive window drops
424 // too low. 424 // too low.
425 Initialize(kShouldProcessData); 425 Initialize(kShouldProcessData);
426 426
427 // Set a small flow control limit. 427 // Set a small flow control limit.
428 const uint64 kWindow = 36; 428 const uint64_t kWindow = 36;
429 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(), 429 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(),
430 kWindow); 430 kWindow);
431 QuicFlowControllerPeer::SetMaxReceiveWindow(stream_->flow_controller(), 431 QuicFlowControllerPeer::SetMaxReceiveWindow(stream_->flow_controller(),
432 kWindow); 432 kWindow);
433 EXPECT_EQ(kWindow, QuicFlowControllerPeer::ReceiveWindowOffset( 433 EXPECT_EQ(kWindow, QuicFlowControllerPeer::ReceiveWindowOffset(
434 stream_->flow_controller())); 434 stream_->flow_controller()));
435 435
436 // Stream receives enough data to fill a fraction of the receive window. 436 // Stream receives enough data to fill a fraction of the receive window.
437 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_); 437 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_);
438 string body; 438 string body;
(...skipping 23 matching lines...) Expand all
462 stream_->flow_controller())); 462 stream_->flow_controller()));
463 } 463 }
464 464
465 TEST_P(QuicSpdyStreamTest, ConnectionFlowControlWindowUpdate) { 465 TEST_P(QuicSpdyStreamTest, ConnectionFlowControlWindowUpdate) {
466 // Tests that on receipt of data, the connection updates its receive window 466 // Tests that on receipt of data, the connection updates its receive window
467 // offset appropriately, and sends WINDOW_UPDATE frames when its receive 467 // offset appropriately, and sends WINDOW_UPDATE frames when its receive
468 // window drops too low. 468 // window drops too low.
469 Initialize(kShouldProcessData); 469 Initialize(kShouldProcessData);
470 470
471 // Set a small flow control limit for streams and connection. 471 // Set a small flow control limit for streams and connection.
472 const uint64 kWindow = 36; 472 const uint64_t kWindow = 36;
473 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(), 473 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(),
474 kWindow); 474 kWindow);
475 QuicFlowControllerPeer::SetMaxReceiveWindow(stream_->flow_controller(), 475 QuicFlowControllerPeer::SetMaxReceiveWindow(stream_->flow_controller(),
476 kWindow); 476 kWindow);
477 QuicFlowControllerPeer::SetReceiveWindowOffset(stream2_->flow_controller(), 477 QuicFlowControllerPeer::SetReceiveWindowOffset(stream2_->flow_controller(),
478 kWindow); 478 kWindow);
479 QuicFlowControllerPeer::SetMaxReceiveWindow(stream2_->flow_controller(), 479 QuicFlowControllerPeer::SetMaxReceiveWindow(stream2_->flow_controller(),
480 kWindow); 480 kWindow);
481 QuicFlowControllerPeer::SetReceiveWindowOffset(session_->flow_controller(), 481 QuicFlowControllerPeer::SetReceiveWindowOffset(session_->flow_controller(),
482 kWindow); 482 kWindow);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 517
518 TEST_P(QuicSpdyStreamTest, StreamFlowControlViolation) { 518 TEST_P(QuicSpdyStreamTest, StreamFlowControlViolation) {
519 // Tests that on if the peer sends too much data (i.e. violates the flow 519 // Tests that on if the peer sends too much data (i.e. violates the flow
520 // control protocol), then we terminate the connection. 520 // control protocol), then we terminate the connection.
521 521
522 // Stream should not process data, so that data gets buffered in the 522 // Stream should not process data, so that data gets buffered in the
523 // sequencer, triggering flow control limits. 523 // sequencer, triggering flow control limits.
524 Initialize(!kShouldProcessData); 524 Initialize(!kShouldProcessData);
525 525
526 // Set a small flow control limit. 526 // Set a small flow control limit.
527 const uint64 kWindow = 50; 527 const uint64_t kWindow = 50;
528 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(), 528 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(),
529 kWindow); 529 kWindow);
530 530
531 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_); 531 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_);
532 stream_->OnStreamHeaders(headers); 532 stream_->OnStreamHeaders(headers);
533 stream_->OnStreamHeadersComplete(false, headers.size()); 533 stream_->OnStreamHeadersComplete(false, headers.size());
534 534
535 // Receive data to overflow the window, violating flow control. 535 // Receive data to overflow the window, violating flow control.
536 string body; 536 string body;
537 GenerateBody(&body, kWindow + 1); 537 GenerateBody(&body, kWindow + 1);
(...skipping 25 matching lines...) Expand all
563 TEST_P(QuicSpdyStreamTest, ConnectionFlowControlViolation) { 563 TEST_P(QuicSpdyStreamTest, ConnectionFlowControlViolation) {
564 // Tests that on if the peer sends too much data (i.e. violates the flow 564 // Tests that on if the peer sends too much data (i.e. violates the flow
565 // control protocol), at the connection level (rather than the stream level) 565 // control protocol), at the connection level (rather than the stream level)
566 // then we terminate the connection. 566 // then we terminate the connection.
567 567
568 // Stream should not process data, so that data gets buffered in the 568 // Stream should not process data, so that data gets buffered in the
569 // sequencer, triggering flow control limits. 569 // sequencer, triggering flow control limits.
570 Initialize(!kShouldProcessData); 570 Initialize(!kShouldProcessData);
571 571
572 // Set a small flow control window on streams, and connection. 572 // Set a small flow control window on streams, and connection.
573 const uint64 kStreamWindow = 50; 573 const uint64_t kStreamWindow = 50;
574 const uint64 kConnectionWindow = 10; 574 const uint64_t kConnectionWindow = 10;
575 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(), 575 QuicFlowControllerPeer::SetReceiveWindowOffset(stream_->flow_controller(),
576 kStreamWindow); 576 kStreamWindow);
577 QuicFlowControllerPeer::SetReceiveWindowOffset(session_->flow_controller(), 577 QuicFlowControllerPeer::SetReceiveWindowOffset(session_->flow_controller(),
578 kConnectionWindow); 578 kConnectionWindow);
579 579
580 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_); 580 string headers = SpdyUtils::SerializeUncompressedHeaders(headers_);
581 stream_->OnStreamHeaders(headers); 581 stream_->OnStreamHeaders(headers);
582 stream_->OnStreamHeadersComplete(false, headers.size()); 582 stream_->OnStreamHeadersComplete(false, headers.size());
583 583
584 // Send enough data to overflow the connection level flow control window. 584 // Send enough data to overflow the connection level flow control window.
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 852
853 // Writing Trailers should fail, as the FIN has already been sent. 853 // Writing Trailers should fail, as the FIN has already been sent.
854 // populated with the number of body bytes written. 854 // populated with the number of body bytes written.
855 EXPECT_DFATAL(stream_->WriteTrailers(SpdyHeaderBlock(), nullptr), 855 EXPECT_DFATAL(stream_->WriteTrailers(SpdyHeaderBlock(), nullptr),
856 "Trailers cannot be sent after a FIN"); 856 "Trailers cannot be sent after a FIN");
857 } 857 }
858 858
859 } // namespace 859 } // namespace
860 } // namespace test 860 } // namespace test
861 } // namespace net 861 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_spdy_stream.h ('k') | net/quic/quic_stream_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698