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

Side by Side Diff: net/tools/quic/quic_simple_server_session_test.cc

Issue 1784903003: Remove FEC from send path. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@114770052
Patch Set: Restore accidentally removed OnRttChanged call Created 4 years, 9 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 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/tools/quic/quic_simple_server_session.h" 5 #include "net/tools/quic/quic_simple_server_session.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 DISALLOW_COPY_AND_ASSIGN(MockQuicCryptoServerStream); 100 DISALLOW_COPY_AND_ASSIGN(MockQuicCryptoServerStream);
101 }; 101 };
102 102
103 class MockConnectionWithSendStreamData : public MockConnection { 103 class MockConnectionWithSendStreamData : public MockConnection {
104 public: 104 public:
105 MockConnectionWithSendStreamData(MockConnectionHelper* helper, 105 MockConnectionWithSendStreamData(MockConnectionHelper* helper,
106 Perspective perspective, 106 Perspective perspective,
107 const QuicVersionVector& supported_versions) 107 const QuicVersionVector& supported_versions)
108 : MockConnection(helper, perspective, supported_versions) {} 108 : MockConnection(helper, perspective, supported_versions) {}
109 109
110 MOCK_METHOD6(SendStreamData, 110 MOCK_METHOD5(SendStreamData,
111 QuicConsumedData(QuicStreamId id, 111 QuicConsumedData(QuicStreamId id,
112 QuicIOVector iov, 112 QuicIOVector iov,
113 QuicStreamOffset offset, 113 QuicStreamOffset offset,
114 bool fin, 114 bool fin,
115 FecProtection fec_protection,
116 QuicAckListenerInterface* listern)); 115 QuicAckListenerInterface* listern));
117 }; 116 };
118 117
119 class QuicSimpleServerSessionPeer { 118 class QuicSimpleServerSessionPeer {
120 public: 119 public:
121 static void SetCryptoStream(QuicSimpleServerSession* s, 120 static void SetCryptoStream(QuicSimpleServerSession* s,
122 QuicCryptoServerStream* crypto_stream) { 121 QuicCryptoServerStream* crypto_stream) {
123 s->crypto_stream_.reset(crypto_stream); 122 s->crypto_stream_.reset(crypto_stream);
124 s->static_streams()[kCryptoStreamId] = crypto_stream; 123 s->static_streams()[kCryptoStreamId] = crypto_stream;
125 } 124 }
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 // PUSH_PROMISED are sent for all the resources. 449 // PUSH_PROMISED are sent for all the resources.
451 EXPECT_CALL(*headers_stream_, WritePushPromise(kClientDataStreamId1, 450 EXPECT_CALL(*headers_stream_, WritePushPromise(kClientDataStreamId1,
452 stream_id, _, nullptr)); 451 stream_id, _, nullptr));
453 if (i <= kMaxStreamsForTest) { 452 if (i <= kMaxStreamsForTest) {
454 // |kMaxStreamsForTest| promised responses should be sent. 453 // |kMaxStreamsForTest| promised responses should be sent.
455 EXPECT_CALL(*headers_stream_, WriteHeaders(stream_id, _, false, 454 EXPECT_CALL(*headers_stream_, WriteHeaders(stream_id, _, false,
456 kDefaultPriority, nullptr)); 455 kDefaultPriority, nullptr));
457 // Since flow control window is smaller than response body, not the 456 // Since flow control window is smaller than response body, not the
458 // whole body will be sent. 457 // whole body will be sent.
459 EXPECT_CALL(*connection_, 458 EXPECT_CALL(*connection_,
460 SendStreamData(stream_id, _, 0, false, _, nullptr)) 459 SendStreamData(stream_id, _, 0, false, nullptr))
461 .WillOnce( 460 .WillOnce(
462 Return(QuicConsumedData(kStreamFlowControlWindowSize, false))); 461 Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
463 EXPECT_CALL(*connection_, SendBlocked(stream_id)); 462 EXPECT_CALL(*connection_, SendBlocked(stream_id));
464 } 463 }
465 } 464 }
466 session_->PromisePushResources(request_url, push_resources, 465 session_->PromisePushResources(request_url, push_resources,
467 kClientDataStreamId1, request_headers); 466 kClientDataStreamId1, request_headers);
468 } 467 }
469 }; 468 };
470 469
(...skipping 16 matching lines...) Expand all
487 // draining, a queued promised stream will become open and send push response. 486 // draining, a queued promised stream will become open and send push response.
488 size_t num_resources = kMaxStreamsForTest + 1; 487 size_t num_resources = kMaxStreamsForTest + 1;
489 PromisePushResources(num_resources); 488 PromisePushResources(num_resources);
490 QuicStreamId next_out_going_stream_id = num_resources * 2; 489 QuicStreamId next_out_going_stream_id = num_resources * 2;
491 490
492 // After an open stream is marked draining, a new stream is expected to be 491 // After an open stream is marked draining, a new stream is expected to be
493 // created and a response sent on the stream. 492 // created and a response sent on the stream.
494 EXPECT_CALL(*headers_stream_, WriteHeaders(next_out_going_stream_id, _, false, 493 EXPECT_CALL(*headers_stream_, WriteHeaders(next_out_going_stream_id, _, false,
495 kDefaultPriority, nullptr)); 494 kDefaultPriority, nullptr));
496 EXPECT_CALL(*connection_, 495 EXPECT_CALL(*connection_,
497 SendStreamData(next_out_going_stream_id, _, 0, false, _, nullptr)) 496 SendStreamData(next_out_going_stream_id, _, 0, false, nullptr))
498 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false))); 497 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
499 EXPECT_CALL(*connection_, SendBlocked(next_out_going_stream_id)); 498 EXPECT_CALL(*connection_, SendBlocked(next_out_going_stream_id));
500 session_->StreamDraining(2); 499 session_->StreamDraining(2);
501 // Number of open outgoing streams should still be the same, because a new 500 // Number of open outgoing streams should still be the same, because a new
502 // stream is opened. And the queue should be empty. 501 // stream is opened. And the queue should be empty.
503 EXPECT_EQ(kMaxStreamsForTest, session_->GetNumOpenOutgoingStreams()); 502 EXPECT_EQ(kMaxStreamsForTest, session_->GetNumOpenOutgoingStreams());
504 } 503 }
505 504
506 TEST_P(QuicSimpleServerSessionServerPushTest, 505 TEST_P(QuicSimpleServerSessionServerPushTest,
507 ResetPromisedStreamToCancelServerPush) { 506 ResetPromisedStreamToCancelServerPush) {
(...skipping 13 matching lines...) Expand all
521 visitor_->OnRstStream(rst); 520 visitor_->OnRstStream(rst);
522 521
523 // When the first 2 streams becomes draining, the two queued up stream could 522 // When the first 2 streams becomes draining, the two queued up stream could
524 // be created. But since one of them was marked cancelled due to RST frame, 523 // be created. But since one of them was marked cancelled due to RST frame,
525 // only one queued resource will be sent out. 524 // only one queued resource will be sent out.
526 QuicStreamId stream_not_reset = (kMaxStreamsForTest + 1) * 2; 525 QuicStreamId stream_not_reset = (kMaxStreamsForTest + 1) * 2;
527 InSequence s; 526 InSequence s;
528 EXPECT_CALL(*headers_stream_, WriteHeaders(stream_not_reset, _, false, 527 EXPECT_CALL(*headers_stream_, WriteHeaders(stream_not_reset, _, false,
529 kDefaultPriority, nullptr)); 528 kDefaultPriority, nullptr));
530 EXPECT_CALL(*connection_, 529 EXPECT_CALL(*connection_,
531 SendStreamData(stream_not_reset, _, 0, false, _, nullptr)) 530 SendStreamData(stream_not_reset, _, 0, false, nullptr))
532 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false))); 531 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
533 EXPECT_CALL(*connection_, SendBlocked(stream_not_reset)); 532 EXPECT_CALL(*connection_, SendBlocked(stream_not_reset));
534 EXPECT_CALL(*headers_stream_, WriteHeaders(stream_got_reset, _, false, 533 EXPECT_CALL(*headers_stream_, WriteHeaders(stream_got_reset, _, false,
535 kDefaultPriority, nullptr)) 534 kDefaultPriority, nullptr))
536 .Times(0); 535 .Times(0);
537 536
538 session_->StreamDraining(2); 537 session_->StreamDraining(2);
539 session_->StreamDraining(4); 538 session_->StreamDraining(4);
540 } 539 }
541 540
542 TEST_P(QuicSimpleServerSessionServerPushTest, 541 TEST_P(QuicSimpleServerSessionServerPushTest,
543 CloseStreamToHandleMorePromisedStream) { 542 CloseStreamToHandleMorePromisedStream) {
544 // Tests that closing a open outgoing stream can trigger a promised resource 543 // Tests that closing a open outgoing stream can trigger a promised resource
545 // in the queue to be send out. 544 // in the queue to be send out.
546 size_t num_resources = kMaxStreamsForTest + 1; 545 size_t num_resources = kMaxStreamsForTest + 1;
547 PromisePushResources(num_resources); 546 PromisePushResources(num_resources);
548 QuicStreamId stream_to_open = num_resources * 2; 547 QuicStreamId stream_to_open = num_resources * 2;
549 548
550 // Resetting 1st open stream will close the stream and give space for extra 549 // Resetting 1st open stream will close the stream and give space for extra
551 // stream to be opened. 550 // stream to be opened.
552 QuicStreamId stream_got_reset = 2; 551 QuicStreamId stream_got_reset = 2;
553 EXPECT_CALL(*connection_, 552 EXPECT_CALL(*connection_,
554 SendRstStream(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT, _)); 553 SendRstStream(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT, _));
555 EXPECT_CALL(*headers_stream_, WriteHeaders(stream_to_open, _, false, 554 EXPECT_CALL(*headers_stream_, WriteHeaders(stream_to_open, _, false,
556 kDefaultPriority, nullptr)); 555 kDefaultPriority, nullptr));
557 EXPECT_CALL(*connection_, 556 EXPECT_CALL(*connection_,
558 SendStreamData(stream_to_open, _, 0, false, _, nullptr)) 557 SendStreamData(stream_to_open, _, 0, false, nullptr))
559 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false))); 558 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
560 559
561 EXPECT_CALL(*connection_, SendBlocked(stream_to_open)); 560 EXPECT_CALL(*connection_, SendBlocked(stream_to_open));
562 QuicRstStreamFrame rst(stream_got_reset, QUIC_STREAM_CANCELLED, 0); 561 QuicRstStreamFrame rst(stream_got_reset, QUIC_STREAM_CANCELLED, 0);
563 visitor_->OnRstStream(rst); 562 visitor_->OnRstStream(rst);
564 } 563 }
565 564
566 } // namespace 565 } // namespace
567 } // namespace test 566 } // namespace test
568 } // namespace net 567 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_client_session_test.cc ('k') | net/tools/quic/quic_simple_server_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698