OLD | NEW |
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 <stddef.h> | 10 #include <stddef.h> |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 | 69 |
70 // Returns an address for ::1. | 70 // Returns an address for ::1. |
71 IPAddress Loopback6(); | 71 IPAddress Loopback6(); |
72 | 72 |
73 // Returns an address for 0.0.0.0. | 73 // Returns an address for 0.0.0.0. |
74 IPAddress Any4(); | 74 IPAddress Any4(); |
75 | 75 |
76 void GenerateBody(std::string* body, int length); | 76 void GenerateBody(std::string* body, int length); |
77 | 77 |
78 // Create an encrypted packet for testing. | 78 // Create an encrypted packet for testing. |
79 // If versions == nullptr, uses &QuicSupportedVersions(). | 79 // If versions == nullptr, uses &AllSupportedVersions(). |
80 // Note that the packet is encrypted with NullEncrypter, so to decrypt the | 80 // Note that the packet is encrypted with NullEncrypter, so to decrypt the |
81 // constructed packet, the framer must be set to use NullDecrypter. | 81 // constructed packet, the framer must be set to use NullDecrypter. |
82 QuicEncryptedPacket* ConstructEncryptedPacket( | 82 QuicEncryptedPacket* ConstructEncryptedPacket( |
83 QuicConnectionId connection_id, | 83 QuicConnectionId connection_id, |
84 bool version_flag, | 84 bool version_flag, |
85 bool multipath_flag, | 85 bool multipath_flag, |
86 bool reset_flag, | 86 bool reset_flag, |
87 QuicPathId path_id, | 87 QuicPathId path_id, |
88 QuicPacketNumber packet_number, | 88 QuicPacketNumber packet_number, |
89 const std::string& data, | 89 const std::string& data, |
90 QuicConnectionIdLength connection_id_length, | 90 QuicConnectionIdLength connection_id_length, |
91 QuicPacketNumberLength packet_number_length, | 91 QuicPacketNumberLength packet_number_length, |
92 QuicVersionVector* versions, | 92 QuicVersionVector* versions, |
93 Perspective perspective); | 93 Perspective perspective); |
94 | 94 |
95 // Create an encrypted packet for testing. | 95 // Create an encrypted packet for testing. |
96 // If versions == nullptr, uses &QuicSupportedVersions(). | 96 // If versions == nullptr, uses &AllSupportedVersions(). |
97 // Note that the packet is encrypted with NullEncrypter, so to decrypt the | 97 // Note that the packet is encrypted with NullEncrypter, so to decrypt the |
98 // constructed packet, the framer must be set to use NullDecrypter. | 98 // constructed packet, the framer must be set to use NullDecrypter. |
99 QuicEncryptedPacket* ConstructEncryptedPacket( | 99 QuicEncryptedPacket* ConstructEncryptedPacket( |
100 QuicConnectionId connection_id, | 100 QuicConnectionId connection_id, |
101 bool version_flag, | 101 bool version_flag, |
102 bool multipath_flag, | 102 bool multipath_flag, |
103 bool reset_flag, | 103 bool reset_flag, |
104 QuicPathId path_id, | 104 QuicPathId path_id, |
105 QuicPacketNumber packet_number, | 105 QuicPacketNumber packet_number, |
106 const std::string& data, | 106 const std::string& data, |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 void SendOrQueuePacket(SerializedPacket* packet) override; | 491 void SendOrQueuePacket(SerializedPacket* packet) override; |
492 | 492 |
493 std::vector<QuicEncryptedPacket*> encrypted_packets_; | 493 std::vector<QuicEncryptedPacket*> encrypted_packets_; |
494 | 494 |
495 private: | 495 private: |
496 DISALLOW_COPY_AND_ASSIGN(PacketSavingConnection); | 496 DISALLOW_COPY_AND_ASSIGN(PacketSavingConnection); |
497 }; | 497 }; |
498 | 498 |
499 class MockQuicSession : public QuicSession { | 499 class MockQuicSession : public QuicSession { |
500 public: | 500 public: |
| 501 // Takes ownership of |connection|. |
501 explicit MockQuicSession(QuicConnection* connection); | 502 explicit MockQuicSession(QuicConnection* connection); |
502 ~MockQuicSession() override; | 503 ~MockQuicSession() override; |
503 | 504 |
504 QuicCryptoStream* GetCryptoStream() override { return crypto_stream_.get(); } | 505 QuicCryptoStream* GetCryptoStream() override { return crypto_stream_.get(); } |
505 | 506 |
506 MOCK_METHOD3(OnConnectionClosed, | 507 MOCK_METHOD3(OnConnectionClosed, |
507 void(QuicErrorCode error, | 508 void(QuicErrorCode error, |
508 const std::string& error_details, | 509 const std::string& error_details, |
509 ConnectionCloseSource source)); | 510 ConnectionCloseSource source)); |
510 MOCK_METHOD1(CreateIncomingDynamicStream, | 511 MOCK_METHOD1(CreateIncomingDynamicStream, |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 QuicAckListenerInterface* ack_notifier_delegate); | 548 QuicAckListenerInterface* ack_notifier_delegate); |
548 | 549 |
549 private: | 550 private: |
550 std::unique_ptr<QuicCryptoStream> crypto_stream_; | 551 std::unique_ptr<QuicCryptoStream> crypto_stream_; |
551 | 552 |
552 DISALLOW_COPY_AND_ASSIGN(MockQuicSession); | 553 DISALLOW_COPY_AND_ASSIGN(MockQuicSession); |
553 }; | 554 }; |
554 | 555 |
555 class MockQuicSpdySession : public QuicSpdySession { | 556 class MockQuicSpdySession : public QuicSpdySession { |
556 public: | 557 public: |
| 558 // Takes ownership of |connection|. |
557 explicit MockQuicSpdySession(QuicConnection* connection); | 559 explicit MockQuicSpdySession(QuicConnection* connection); |
558 ~MockQuicSpdySession() override; | 560 ~MockQuicSpdySession() override; |
559 | 561 |
560 QuicCryptoStream* GetCryptoStream() override { return crypto_stream_.get(); } | 562 QuicCryptoStream* GetCryptoStream() override { return crypto_stream_.get(); } |
561 const SpdyHeaderBlock& GetWriteHeaders() { return write_headers_; } | 563 const SpdyHeaderBlock& GetWriteHeaders() { return write_headers_; } |
562 | 564 |
563 // From QuicSession. | 565 // From QuicSession. |
564 MOCK_METHOD3(OnConnectionClosed, | 566 MOCK_METHOD3(OnConnectionClosed, |
565 void(QuicErrorCode error, | 567 void(QuicErrorCode error, |
566 const std::string& error_details, | 568 const std::string& error_details, |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 | 635 |
634 private: | 636 private: |
635 std::unique_ptr<QuicCryptoStream> crypto_stream_; | 637 std::unique_ptr<QuicCryptoStream> crypto_stream_; |
636 SpdyHeaderBlock write_headers_; | 638 SpdyHeaderBlock write_headers_; |
637 | 639 |
638 DISALLOW_COPY_AND_ASSIGN(MockQuicSpdySession); | 640 DISALLOW_COPY_AND_ASSIGN(MockQuicSpdySession); |
639 }; | 641 }; |
640 | 642 |
641 class TestQuicSpdyServerSession : public QuicServerSessionBase { | 643 class TestQuicSpdyServerSession : public QuicServerSessionBase { |
642 public: | 644 public: |
| 645 // Takes ownership of |connection|. |
643 TestQuicSpdyServerSession(QuicConnection* connection, | 646 TestQuicSpdyServerSession(QuicConnection* connection, |
644 const QuicConfig& config, | 647 const QuicConfig& config, |
645 const QuicCryptoServerConfig* crypto_config, | 648 const QuicCryptoServerConfig* crypto_config, |
646 QuicCompressedCertsCache* compressed_certs_cache); | 649 QuicCompressedCertsCache* compressed_certs_cache); |
647 ~TestQuicSpdyServerSession() override; | 650 ~TestQuicSpdyServerSession() override; |
648 | 651 |
649 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id)); | 652 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id)); |
650 MOCK_METHOD1(CreateOutgoingDynamicStream, | 653 MOCK_METHOD1(CreateOutgoingDynamicStream, |
651 QuicSpdyStream*(SpdyPriority priority)); | 654 QuicSpdyStream*(SpdyPriority priority)); |
652 QuicCryptoServerStreamBase* CreateQuicCryptoServerStream( | 655 QuicCryptoServerStreamBase* CreateQuicCryptoServerStream( |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 MOCK_METHOD0(RevertRetransmissionTimeout, void()); | 746 MOCK_METHOD0(RevertRetransmissionTimeout, void()); |
744 MOCK_CONST_METHOD2(TimeUntilSend, | 747 MOCK_CONST_METHOD2(TimeUntilSend, |
745 QuicTime::Delta(QuicTime now, | 748 QuicTime::Delta(QuicTime now, |
746 QuicByteCount bytes_in_flight)); | 749 QuicByteCount bytes_in_flight)); |
747 MOCK_CONST_METHOD1(PacingRate, QuicBandwidth(QuicByteCount)); | 750 MOCK_CONST_METHOD1(PacingRate, QuicBandwidth(QuicByteCount)); |
748 MOCK_CONST_METHOD0(BandwidthEstimate, QuicBandwidth(void)); | 751 MOCK_CONST_METHOD0(BandwidthEstimate, QuicBandwidth(void)); |
749 MOCK_CONST_METHOD0(HasReliableBandwidthEstimate, bool()); | 752 MOCK_CONST_METHOD0(HasReliableBandwidthEstimate, bool()); |
750 MOCK_METHOD1(OnRttUpdated, void(QuicPacketNumber)); | 753 MOCK_METHOD1(OnRttUpdated, void(QuicPacketNumber)); |
751 MOCK_CONST_METHOD0(RetransmissionDelay, QuicTime::Delta(void)); | 754 MOCK_CONST_METHOD0(RetransmissionDelay, QuicTime::Delta(void)); |
752 MOCK_CONST_METHOD0(GetCongestionWindow, QuicByteCount()); | 755 MOCK_CONST_METHOD0(GetCongestionWindow, QuicByteCount()); |
| 756 MOCK_CONST_METHOD0(GetDebugState, std::string()); |
753 MOCK_CONST_METHOD0(InSlowStart, bool()); | 757 MOCK_CONST_METHOD0(InSlowStart, bool()); |
754 MOCK_CONST_METHOD0(InRecovery, bool()); | 758 MOCK_CONST_METHOD0(InRecovery, bool()); |
755 MOCK_CONST_METHOD0(GetSlowStartThreshold, QuicByteCount()); | 759 MOCK_CONST_METHOD0(GetSlowStartThreshold, QuicByteCount()); |
756 MOCK_CONST_METHOD0(GetCongestionControlType, CongestionControlType()); | 760 MOCK_CONST_METHOD0(GetCongestionControlType, CongestionControlType()); |
757 MOCK_METHOD2(ResumeConnectionState, | 761 MOCK_METHOD2(ResumeConnectionState, |
758 void(const CachedNetworkParameters&, bool)); | 762 void(const CachedNetworkParameters&, bool)); |
| 763 MOCK_METHOD1(OnApplicationLimited, void(QuicByteCount)); |
759 | 764 |
760 private: | 765 private: |
761 DISALLOW_COPY_AND_ASSIGN(MockSendAlgorithm); | 766 DISALLOW_COPY_AND_ASSIGN(MockSendAlgorithm); |
762 }; | 767 }; |
763 | 768 |
764 class MockLossAlgorithm : public LossDetectionInterface { | 769 class MockLossAlgorithm : public LossDetectionInterface { |
765 public: | 770 public: |
766 MockLossAlgorithm(); | 771 MockLossAlgorithm(); |
767 ~MockLossAlgorithm() override; | 772 ~MockLossAlgorithm() override; |
768 | 773 |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
931 MOCK_CONST_METHOD0(GetRetransmissionTime, const QuicTime(void)); | 936 MOCK_CONST_METHOD0(GetRetransmissionTime, const QuicTime(void)); |
932 MOCK_CONST_METHOD0(GetRttStats, const RttStats*(void)); | 937 MOCK_CONST_METHOD0(GetRttStats, const RttStats*(void)); |
933 MOCK_CONST_METHOD0(BandwidthEstimate, QuicBandwidth(void)); | 938 MOCK_CONST_METHOD0(BandwidthEstimate, QuicBandwidth(void)); |
934 MOCK_CONST_METHOD0(SustainedBandwidthRecorder, | 939 MOCK_CONST_METHOD0(SustainedBandwidthRecorder, |
935 const QuicSustainedBandwidthRecorder*(void)); | 940 const QuicSustainedBandwidthRecorder*(void)); |
936 MOCK_CONST_METHOD0(GetCongestionWindowInTcpMss, QuicPacketCount(void)); | 941 MOCK_CONST_METHOD0(GetCongestionWindowInTcpMss, QuicPacketCount(void)); |
937 MOCK_CONST_METHOD1(EstimateMaxPacketsInFlight, | 942 MOCK_CONST_METHOD1(EstimateMaxPacketsInFlight, |
938 QuicPacketCount(QuicByteCount)); | 943 QuicPacketCount(QuicByteCount)); |
939 MOCK_CONST_METHOD0(GetCongestionWindowInBytes, QuicByteCount(void)); | 944 MOCK_CONST_METHOD0(GetCongestionWindowInBytes, QuicByteCount(void)); |
940 MOCK_CONST_METHOD0(GetSlowStartThresholdInTcpMss, QuicPacketCount(void)); | 945 MOCK_CONST_METHOD0(GetSlowStartThresholdInTcpMss, QuicPacketCount(void)); |
| 946 MOCK_CONST_METHOD0(GetDebugState, std::string()); |
941 MOCK_METHOD1(CancelRetransmissionsForStream, void(QuicStreamId)); | 947 MOCK_METHOD1(CancelRetransmissionsForStream, void(QuicStreamId)); |
942 MOCK_METHOD2(OnConnectionMigration, void(QuicPathId, PeerAddressChangeType)); | 948 MOCK_METHOD2(OnConnectionMigration, void(QuicPathId, PeerAddressChangeType)); |
943 MOCK_CONST_METHOD0(IsHandshakeConfirmed, bool(void)); | 949 MOCK_CONST_METHOD0(IsHandshakeConfirmed, bool(void)); |
944 MOCK_METHOD1(SetDebugDelegate, void(DebugDelegate*)); | 950 MOCK_METHOD1(SetDebugDelegate, void(DebugDelegate*)); |
945 MOCK_CONST_METHOD1(GetLargestObserved, QuicPacketNumber(QuicPathId)); | 951 MOCK_CONST_METHOD1(GetLargestObserved, QuicPacketNumber(QuicPathId)); |
946 MOCK_CONST_METHOD1(GetLargestSentPacket, QuicPacketNumber(QuicPathId)); | 952 MOCK_CONST_METHOD1(GetLargestSentPacket, QuicPacketNumber(QuicPathId)); |
947 MOCK_CONST_METHOD1(GetLeastPacketAwaitedByPeer, QuicPacketNumber(QuicPathId)); | 953 MOCK_CONST_METHOD1(GetLeastPacketAwaitedByPeer, QuicPacketNumber(QuicPathId)); |
948 MOCK_METHOD1(SetNetworkChangeVisitor, void(NetworkChangeVisitor*)); | 954 MOCK_METHOD1(SetNetworkChangeVisitor, void(NetworkChangeVisitor*)); |
949 MOCK_CONST_METHOD0(InSlowStart, bool(void)); | 955 MOCK_CONST_METHOD0(InSlowStart, bool(void)); |
950 MOCK_CONST_METHOD0(GetConsecutiveRtoCount, size_t(void)); | 956 MOCK_CONST_METHOD0(GetConsecutiveRtoCount, size_t(void)); |
951 MOCK_CONST_METHOD0(GetConsecutiveTlpCount, size_t(void)); | 957 MOCK_CONST_METHOD0(GetConsecutiveTlpCount, size_t(void)); |
| 958 MOCK_METHOD0(OnApplicationLimited, void(void)); |
952 }; | 959 }; |
953 | 960 |
954 class MockConnectionCloseDelegate | 961 class MockConnectionCloseDelegate |
955 : public QuicConnectionCloseDelegateInterface { | 962 : public QuicConnectionCloseDelegateInterface { |
956 public: | 963 public: |
957 MockConnectionCloseDelegate(); | 964 MockConnectionCloseDelegate(); |
958 ~MockConnectionCloseDelegate() override; | 965 ~MockConnectionCloseDelegate() override; |
959 | 966 |
960 MOCK_METHOD3(OnUnrecoverableError, | 967 MOCK_METHOD3(OnUnrecoverableError, |
961 void(QuicErrorCode, | 968 void(QuicErrorCode, |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1016 TestQuicSpdyServerSession** server_session); | 1023 TestQuicSpdyServerSession** server_session); |
1017 | 1024 |
1018 // Helper to generate client side stream ids, generalizes | 1025 // Helper to generate client side stream ids, generalizes |
1019 // kClientDataStreamId1 etc. above. | 1026 // kClientDataStreamId1 etc. above. |
1020 QuicStreamId QuicClientDataStreamId(int i); | 1027 QuicStreamId QuicClientDataStreamId(int i); |
1021 | 1028 |
1022 } // namespace test | 1029 } // namespace test |
1023 } // namespace net | 1030 } // namespace net |
1024 | 1031 |
1025 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ | 1032 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ |
OLD | NEW |