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

Side by Side Diff: net/quic/test_tools/quic_test_utils.h

Issue 2861673004: QUIC - refactor stream creation. Guarded by --quic_reloadable_flag_quic_refactor_stream_creation. (Closed)
Patch Set: Updated patchset dependency 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
« no previous file with comments | « net/quic/quartc/quartc_session.cc ('k') | net/tools/quic/end_to_end_test.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 // Common utilities for Quic tests 5 // Common utilities for Quic tests
6 6
7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
9 9
10 #include <cstdint> 10 #include <cstdint>
11 #include <memory> 11 #include <memory>
12 #include <string> 12 #include <string>
13 #include <utility> 13 #include <utility>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/macros.h" 16 #include "base/macros.h"
17 #include "net/quic/core/congestion_control/loss_detection_interface.h" 17 #include "net/quic/core/congestion_control/loss_detection_interface.h"
18 #include "net/quic/core/congestion_control/send_algorithm_interface.h" 18 #include "net/quic/core/congestion_control/send_algorithm_interface.h"
19 #include "net/quic/core/quic_client_push_promise_index.h" 19 #include "net/quic/core/quic_client_push_promise_index.h"
20 #include "net/quic/core/quic_connection.h" 20 #include "net/quic/core/quic_connection.h"
21 #include "net/quic/core/quic_connection_close_delegate_interface.h" 21 #include "net/quic/core/quic_connection_close_delegate_interface.h"
22 #include "net/quic/core/quic_framer.h" 22 #include "net/quic/core/quic_framer.h"
23 #include "net/quic/core/quic_iovector.h" 23 #include "net/quic/core/quic_iovector.h"
24 #include "net/quic/core/quic_sent_packet_manager.h" 24 #include "net/quic/core/quic_sent_packet_manager.h"
25 #include "net/quic/core/quic_server_session_base.h" 25 #include "net/quic/core/quic_server_session_base.h"
26 #include "net/quic/core/quic_simple_buffer_allocator.h" 26 #include "net/quic/core/quic_simple_buffer_allocator.h"
27 #include "net/quic/platform/api/quic_ptr_util.h"
27 #include "net/quic/platform/api/quic_string_piece.h" 28 #include "net/quic/platform/api/quic_string_piece.h"
28 #include "net/quic/test_tools/mock_clock.h" 29 #include "net/quic/test_tools/mock_clock.h"
29 #include "net/quic/test_tools/mock_random.h" 30 #include "net/quic/test_tools/mock_random.h"
30 #include "net/test/gtest_util.h" 31 #include "net/test/gtest_util.h"
31 #include "net/tools/quic/quic_per_connection_packet_writer.h" 32 #include "net/tools/quic/quic_per_connection_packet_writer.h"
32 #include "net/tools/quic/test_tools/mock_quic_session_visitor.h" 33 #include "net/tools/quic/test_tools/mock_quic_session_visitor.h"
33 #include "testing/gmock/include/gmock/gmock.h" 34 #include "testing/gmock/include/gmock/gmock.h"
34 35
35 // EXPECT_QUIC_BUG is like EXPECT_DFATAL, except it ensures that no DFATAL 36 // EXPECT_QUIC_BUG is like EXPECT_DFATAL, except it ensures that no DFATAL
36 // logging is skipped due to exponential backoff. 37 // logging is skipped due to exponential backoff.
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 const QuicCryptoStream* GetCryptoStream() const override { 472 const QuicCryptoStream* GetCryptoStream() const override {
472 return crypto_stream_.get(); 473 return crypto_stream_.get();
473 } 474 }
474 475
475 MOCK_METHOD3(OnConnectionClosed, 476 MOCK_METHOD3(OnConnectionClosed,
476 void(QuicErrorCode error, 477 void(QuicErrorCode error,
477 const std::string& error_details, 478 const std::string& error_details,
478 ConnectionCloseSource source)); 479 ConnectionCloseSource source));
479 MOCK_METHOD1(CreateIncomingDynamicStream, QuicStream*(QuicStreamId id)); 480 MOCK_METHOD1(CreateIncomingDynamicStream, QuicStream*(QuicStreamId id));
480 MOCK_METHOD1(CreateOutgoingDynamicStream, QuicStream*(SpdyPriority priority)); 481 MOCK_METHOD1(CreateOutgoingDynamicStream, QuicStream*(SpdyPriority priority));
482 MOCK_METHOD1(MaybeCreateIncomingDynamicStream, QuicStream*(QuicStreamId id));
483 MOCK_METHOD1(MaybeCreateOutgoingDynamicStream,
484 QuicStream*(SpdyPriority priority));
481 MOCK_METHOD1(ShouldCreateIncomingDynamicStream, bool(QuicStreamId id)); 485 MOCK_METHOD1(ShouldCreateIncomingDynamicStream, bool(QuicStreamId id));
482 MOCK_METHOD0(ShouldCreateOutgoingDynamicStream, bool()); 486 MOCK_METHOD0(ShouldCreateOutgoingDynamicStream, bool());
483 MOCK_METHOD6( 487 MOCK_METHOD6(
484 WritevData, 488 WritevData,
485 QuicConsumedData(QuicStream* stream, 489 QuicConsumedData(QuicStream* stream,
486 QuicStreamId id, 490 QuicStreamId id,
487 QuicIOVector data, 491 QuicIOVector data,
488 QuicStreamOffset offset, 492 QuicStreamOffset offset,
489 StreamSendingState state, 493 StreamSendingState state,
490 QuicReferenceCountedPointer<QuicAckListenerInterface>)); 494 QuicReferenceCountedPointer<QuicAckListenerInterface>));
491 495
492 MOCK_METHOD3(SendRstStream, 496 MOCK_METHOD3(SendRstStream,
493 void(QuicStreamId stream_id, 497 void(QuicStreamId stream_id,
494 QuicRstStreamErrorCode error, 498 QuicRstStreamErrorCode error,
495 QuicStreamOffset bytes_written)); 499 QuicStreamOffset bytes_written));
496 500
497 MOCK_METHOD2(OnStreamHeaders, 501 MOCK_METHOD2(OnStreamHeaders,
498 void(QuicStreamId stream_id, QuicStringPiece headers_data)); 502 void(QuicStreamId stream_id, QuicStringPiece headers_data));
499 MOCK_METHOD2(OnStreamHeadersPriority, 503 MOCK_METHOD2(OnStreamHeadersPriority,
500 void(QuicStreamId stream_id, SpdyPriority priority)); 504 void(QuicStreamId stream_id, SpdyPriority priority));
501 MOCK_METHOD3(OnStreamHeadersComplete, 505 MOCK_METHOD3(OnStreamHeadersComplete,
502 void(QuicStreamId stream_id, bool fin, size_t frame_len)); 506 void(QuicStreamId stream_id, bool fin, size_t frame_len));
503 MOCK_CONST_METHOD0(IsCryptoHandshakeConfirmed, bool()); 507 MOCK_CONST_METHOD0(IsCryptoHandshakeConfirmed, bool());
508 MOCK_METHOD1(CreateStream, std::unique_ptr<QuicStream>(QuicStreamId id));
504 509
505 using QuicSession::ActivateStream; 510 using QuicSession::ActivateStream;
506 511
507 // Returns a QuicConsumedData that indicates all of |data| (and |fin| if set) 512 // Returns a QuicConsumedData that indicates all of |data| (and |fin| if set)
508 // has been consumed. 513 // has been consumed.
509 static QuicConsumedData ConsumeAllData( 514 static QuicConsumedData ConsumeAllData(
510 QuicStream* stream, 515 QuicStream* stream,
511 QuicStreamId id, 516 QuicStreamId id,
512 const QuicIOVector& data, 517 const QuicIOVector& data,
513 QuicStreamOffset offset, 518 QuicStreamOffset offset,
(...skipping 24 matching lines...) Expand all
538 // From QuicSession. 543 // From QuicSession.
539 MOCK_METHOD3(OnConnectionClosed, 544 MOCK_METHOD3(OnConnectionClosed,
540 void(QuicErrorCode error, 545 void(QuicErrorCode error,
541 const std::string& error_details, 546 const std::string& error_details,
542 ConnectionCloseSource source)); 547 ConnectionCloseSource source));
543 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id)); 548 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id));
544 MOCK_METHOD1(CreateOutgoingDynamicStream, 549 MOCK_METHOD1(CreateOutgoingDynamicStream,
545 QuicSpdyStream*(SpdyPriority priority)); 550 QuicSpdyStream*(SpdyPriority priority));
546 MOCK_METHOD1(ShouldCreateIncomingDynamicStream, bool(QuicStreamId id)); 551 MOCK_METHOD1(ShouldCreateIncomingDynamicStream, bool(QuicStreamId id));
547 MOCK_METHOD0(ShouldCreateOutgoingDynamicStream, bool()); 552 MOCK_METHOD0(ShouldCreateOutgoingDynamicStream, bool());
553 MOCK_METHOD1(CreateStream, std::unique_ptr<QuicStream>(QuicStreamId id));
548 MOCK_METHOD6( 554 MOCK_METHOD6(
549 WritevData, 555 WritevData,
550 QuicConsumedData( 556 QuicConsumedData(
551 QuicStream* stream, 557 QuicStream* stream,
552 QuicStreamId id, 558 QuicStreamId id,
553 QuicIOVector data, 559 QuicIOVector data,
554 QuicStreamOffset offset, 560 QuicStreamOffset offset,
555 StreamSendingState state, 561 StreamSendingState state,
556 QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener)); 562 QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener));
557 563
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 const SpdyHeaderBlock& headers, 606 const SpdyHeaderBlock& headers,
601 bool fin, 607 bool fin,
602 SpdyPriority priority, 608 SpdyPriority priority,
603 const QuicReferenceCountedPointer<QuicAckListenerInterface>& 609 const QuicReferenceCountedPointer<QuicAckListenerInterface>&
604 ack_listener)); 610 ack_listener));
605 MOCK_METHOD1(OnHeadersHeadOfLineBlocking, void(QuicTime::Delta delta)); 611 MOCK_METHOD1(OnHeadersHeadOfLineBlocking, void(QuicTime::Delta delta));
606 MOCK_METHOD4( 612 MOCK_METHOD4(
607 OnStreamFrameData, 613 OnStreamFrameData,
608 void(QuicStreamId stream_id, const char* data, size_t len, bool fin)); 614 void(QuicStreamId stream_id, const char* data, size_t len, bool fin));
609 615
616 QuicSpdyStream* QuicSpdySessionMaybeCreateIncomingDynamicStream(
617 QuicStreamId id) {
618 return QuicSpdySession::MaybeCreateIncomingDynamicStream(id);
619 }
620
621 bool QuicSpdySessionShouldCreateIncomingDynamicStream2(QuicStreamId id) {
622 return QuicSpdySession::ShouldCreateIncomingDynamicStream2(id);
623 }
624
625 QuicSpdyStream* QuicSpdySessionMaybeCreateOutgoingDynamicStream(
626 SpdyPriority priority) {
627 return QuicSpdySession::MaybeCreateOutgoingDynamicStream(priority);
628 }
629
630 bool QuicSpdySessionShouldCreateOutgoingDynamicStream2() {
631 return QuicSpdySession::ShouldCreateOutgoingDynamicStream2();
632 }
633
610 using QuicSession::ActivateStream; 634 using QuicSession::ActivateStream;
611 635
612 private: 636 private:
613 std::unique_ptr<QuicCryptoStream> crypto_stream_; 637 std::unique_ptr<QuicCryptoStream> crypto_stream_;
614 SpdyHeaderBlock write_headers_; 638 SpdyHeaderBlock write_headers_;
615 639
616 DISALLOW_COPY_AND_ASSIGN(MockQuicSpdySession); 640 DISALLOW_COPY_AND_ASSIGN(MockQuicSpdySession);
617 }; 641 };
618 642
619 class TestQuicSpdyServerSession : public QuicServerSessionBase { 643 class TestQuicSpdyServerSession : public QuicServerSessionBase {
620 public: 644 public:
621 // Takes ownership of |connection|. 645 // Takes ownership of |connection|.
622 TestQuicSpdyServerSession(QuicConnection* connection, 646 TestQuicSpdyServerSession(QuicConnection* connection,
623 const QuicConfig& config, 647 const QuicConfig& config,
624 const QuicCryptoServerConfig* crypto_config, 648 const QuicCryptoServerConfig* crypto_config,
625 QuicCompressedCertsCache* compressed_certs_cache); 649 QuicCompressedCertsCache* compressed_certs_cache);
626 ~TestQuicSpdyServerSession() override; 650 ~TestQuicSpdyServerSession() override;
627 651
628 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id)); 652 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id));
629 MOCK_METHOD1(CreateOutgoingDynamicStream, 653 MOCK_METHOD1(CreateOutgoingDynamicStream,
630 QuicSpdyStream*(SpdyPriority priority)); 654 QuicSpdyStream*(SpdyPriority priority));
655 MOCK_METHOD1(CreateStream, std::unique_ptr<QuicStream>(QuicStreamId id));
631 QuicCryptoServerStreamBase* CreateQuicCryptoServerStream( 656 QuicCryptoServerStreamBase* CreateQuicCryptoServerStream(
632 const QuicCryptoServerConfig* crypto_config, 657 const QuicCryptoServerConfig* crypto_config,
633 QuicCompressedCertsCache* compressed_certs_cache) override; 658 QuicCompressedCertsCache* compressed_certs_cache) override;
634 659
635 QuicCryptoServerStream* GetMutableCryptoStream() override; 660 QuicCryptoServerStream* GetMutableCryptoStream() override;
636 661
637 const QuicCryptoServerStream* GetCryptoStream() const override; 662 const QuicCryptoServerStream* GetCryptoStream() const override;
638 663
639 MockQuicCryptoServerStreamHelper* helper() { return &helper_; } 664 MockQuicCryptoServerStreamHelper* helper() { return &helper_; }
640 665
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 MOCK_METHOD1(OnProofVerifyDetailsAvailable, 708 MOCK_METHOD1(OnProofVerifyDetailsAvailable,
684 void(const ProofVerifyDetails& verify_details)); 709 void(const ProofVerifyDetails& verify_details));
685 710
686 // TestQuicSpdyClientSession 711 // TestQuicSpdyClientSession
687 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id)); 712 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id));
688 MOCK_METHOD1(CreateOutgoingDynamicStream, 713 MOCK_METHOD1(CreateOutgoingDynamicStream,
689 QuicSpdyStream*(SpdyPriority priority)); 714 QuicSpdyStream*(SpdyPriority priority));
690 MOCK_METHOD1(ShouldCreateIncomingDynamicStream, bool(QuicStreamId id)); 715 MOCK_METHOD1(ShouldCreateIncomingDynamicStream, bool(QuicStreamId id));
691 MOCK_METHOD0(ShouldCreateOutgoingDynamicStream, bool()); 716 MOCK_METHOD0(ShouldCreateOutgoingDynamicStream, bool());
692 717
718 MOCK_METHOD1(CreateStream, std::unique_ptr<QuicStream>(QuicStreamId id));
719
693 QuicCryptoClientStream* GetMutableCryptoStream() override; 720 QuicCryptoClientStream* GetMutableCryptoStream() override;
694 const QuicCryptoClientStream* GetCryptoStream() const override; 721 const QuicCryptoClientStream* GetCryptoStream() const override;
695 722
696 private: 723 private:
697 std::unique_ptr<QuicCryptoClientStream> crypto_stream_; 724 std::unique_ptr<QuicCryptoClientStream> crypto_stream_;
698 QuicClientPushPromiseIndex push_promise_index_; 725 QuicClientPushPromiseIndex push_promise_index_;
699 726
700 DISALLOW_COPY_AND_ASSIGN(TestQuicSpdyClientSession); 727 DISALLOW_COPY_AND_ASSIGN(TestQuicSpdyClientSession);
701 }; 728 };
702 729
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 // Utilities that will adapt stream ids when http stream pairs are 1011 // Utilities that will adapt stream ids when http stream pairs are
985 // enabled. 1012 // enabled.
986 QuicStreamId NextStreamId(QuicVersion version); 1013 QuicStreamId NextStreamId(QuicVersion version);
987 QuicStreamId GetNthClientInitiatedStreamId(QuicVersion version, int n); 1014 QuicStreamId GetNthClientInitiatedStreamId(QuicVersion version, int n);
988 QuicStreamId GetNthServerInitiatedStreamId(QuicVersion version, int n); 1015 QuicStreamId GetNthServerInitiatedStreamId(QuicVersion version, int n);
989 1016
990 } // namespace test 1017 } // namespace test
991 } // namespace net 1018 } // namespace net
992 1019
993 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 1020 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
OLDNEW
« no previous file with comments | « net/quic/quartc/quartc_session.cc ('k') | net/tools/quic/end_to_end_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698