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

Unified Diff: net/quic/test_tools/quic_test_utils.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/test_tools/quic_test_packet_maker.cc ('k') | net/quic/test_tools/quic_test_utils.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/test_tools/quic_test_utils.h
diff --git a/net/quic/test_tools/quic_test_utils.h b/net/quic/test_tools/quic_test_utils.h
deleted file mode 100644
index 5282d62d081d93c51fa5495569c280ac9c28064d..0000000000000000000000000000000000000000
--- a/net/quic/test_tools/quic_test_utils.h
+++ /dev/null
@@ -1,607 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Common utilities for Quic tests
-
-#ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
-#define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
-
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/strings/string_piece.h"
-#include "net/quic/congestion_control/loss_detection_interface.h"
-#include "net/quic/congestion_control/send_algorithm_interface.h"
-#include "net/quic/quic_ack_notifier.h"
-#include "net/quic/quic_client_session_base.h"
-#include "net/quic/quic_connection.h"
-#include "net/quic/quic_dispatcher.h"
-#include "net/quic/quic_framer.h"
-#include "net/quic/quic_per_connection_packet_writer.h"
-#include "net/quic/quic_sent_packet_manager.h"
-#include "net/quic/quic_session.h"
-#include "net/quic/test_tools/mock_clock.h"
-#include "net/quic/test_tools/mock_random.h"
-#include "net/spdy/spdy_framer.h"
-#include "testing/gmock/include/gmock/gmock.h"
-
-namespace net {
-
-namespace test {
-
-static const QuicConnectionId kTestConnectionId = 42;
-static const uint16 kTestPort = 123;
-static const uint32 kInitialStreamFlowControlWindowForTest =
- 32 * 1024; // 32 KB
-static const uint32 kInitialSessionFlowControlWindowForTest =
- 64 * 1024; // 64 KB
-
-// Data stream IDs start at 5: the crypto stream is 1, headers stream is 3.
-static const QuicStreamId kClientDataStreamId1 = 5;
-static const QuicStreamId kClientDataStreamId2 = 7;
-static const QuicStreamId kClientDataStreamId3 = 9;
-static const QuicStreamId kClientDataStreamId4 = 11;
-
-// Returns the test peer IP address.
-IPAddressNumber TestPeerIPAddress();
-
-// Upper limit on versions we support.
-QuicVersion QuicVersionMax();
-
-// Lower limit on versions we support.
-QuicVersion QuicVersionMin();
-
-// Returns an address for 127.0.0.1.
-IPAddressNumber Loopback4();
-
-// Returns an address for ::1.
-IPAddressNumber Loopback6();
-
-void GenerateBody(std::string* body, int length);
-
-// Create an encrypted packet for testing.
-QuicEncryptedPacket* ConstructEncryptedPacket(
- QuicConnectionId connection_id,
- bool version_flag,
- bool reset_flag,
- QuicPacketSequenceNumber sequence_number,
- const std::string& data);
-
-void CompareCharArraysWithHexError(const std::string& description,
- const char* actual,
- const int actual_len,
- const char* expected,
- const int expected_len);
-
-bool DecodeHexString(const base::StringPiece& hex, std::string* bytes);
-
-// Returns the length of a QuicPacket that is capable of holding either a
-// stream frame or a minimal ack frame. Sets |*payload_length| to the number
-// of bytes of stream data that will fit in such a packet.
-size_t GetPacketLengthForOneStream(
- QuicVersion version,
- bool include_version,
- QuicConnectionIdLength connection_id_length,
- QuicSequenceNumberLength sequence_number_length,
- InFecGroup is_in_fec_group,
- size_t* payload_length);
-
-// Returns QuicConfig set to default values.
-QuicConfig DefaultQuicConfig();
-
-// Returns a version vector consisting of |version|.
-QuicVersionVector SupportedVersions(QuicVersion version);
-
-// Testing convenience method to construct a QuicAckFrame with entropy_hash set
-// to 0 and largest_observed from peer set to |largest_observed|.
-QuicAckFrame MakeAckFrame(QuicPacketSequenceNumber largest_observed);
-
-// Testing convenience method to construct a QuicAckFrame with |num_nack_ranges|
-// nack ranges of width 1 packet, starting from |least_unacked|.
-QuicAckFrame MakeAckFrameWithNackRanges(size_t num_nack_ranges,
- QuicPacketSequenceNumber least_unacked);
-
-// Returns a QuicPacket that is owned by the caller, and
-// is populated with the fields in |header| and |frames|, or is nullptr if the
-// packet could not be created.
-QuicPacket* BuildUnsizedDataPacket(QuicFramer* framer,
- const QuicPacketHeader& header,
- const QuicFrames& frames);
-// Returns a QuicPacket that is owned by the caller, and of size |packet_size|.
-QuicPacket* BuildUnsizedDataPacket(QuicFramer* framer,
- const QuicPacketHeader& header,
- const QuicFrames& frames,
- size_t packet_size);
-
-template<typename SaveType>
-class ValueRestore {
- public:
- ValueRestore(SaveType* name, SaveType value)
- : name_(name),
- value_(*name) {
- *name_ = value;
- }
- ~ValueRestore() {
- *name_ = value_;
- }
-
- private:
- SaveType* name_;
- SaveType value_;
-
- DISALLOW_COPY_AND_ASSIGN(ValueRestore);
-};
-
-// Simple random number generator used to compute random numbers suitable
-// for pseudo-randomly dropping packets in tests. It works by computing
-// the sha1 hash of the current seed, and using the first 64 bits as
-// the next random number, and the next seed.
-class SimpleRandom {
- public:
- SimpleRandom() : seed_(0) {}
-
- // Returns a random number in the range [0, kuint64max].
- uint64 RandUint64();
-
- void set_seed(uint64 seed) { seed_ = seed; }
-
- private:
- uint64 seed_;
-
- DISALLOW_COPY_AND_ASSIGN(SimpleRandom);
-};
-
-class MockFramerVisitor : public QuicFramerVisitorInterface {
- public:
- MockFramerVisitor();
- ~MockFramerVisitor() override;
-
- MOCK_METHOD1(OnError, void(QuicFramer* framer));
- // The constructor sets this up to return false by default.
- MOCK_METHOD1(OnProtocolVersionMismatch, bool(QuicVersion version));
- MOCK_METHOD0(OnPacket, void());
- MOCK_METHOD1(OnPublicResetPacket, void(const QuicPublicResetPacket& header));
- MOCK_METHOD1(OnVersionNegotiationPacket,
- void(const QuicVersionNegotiationPacket& packet));
- MOCK_METHOD0(OnRevivedPacket, void());
- // The constructor sets this up to return true by default.
- MOCK_METHOD1(OnUnauthenticatedHeader, bool(const QuicPacketHeader& header));
- // The constructor sets this up to return true by default.
- MOCK_METHOD1(OnUnauthenticatedPublicHeader, bool(
- const QuicPacketPublicHeader& header));
- MOCK_METHOD1(OnDecryptedPacket, void(EncryptionLevel level));
- MOCK_METHOD1(OnPacketHeader, bool(const QuicPacketHeader& header));
- MOCK_METHOD1(OnFecProtectedPayload, void(base::StringPiece payload));
- MOCK_METHOD1(OnStreamFrame, bool(const QuicStreamFrame& frame));
- MOCK_METHOD1(OnAckFrame, bool(const QuicAckFrame& frame));
- MOCK_METHOD1(OnStopWaitingFrame, bool(const QuicStopWaitingFrame& frame));
- MOCK_METHOD1(OnPingFrame, bool(const QuicPingFrame& frame));
- MOCK_METHOD1(OnFecData, void(const QuicFecData& fec));
- MOCK_METHOD1(OnRstStreamFrame, bool(const QuicRstStreamFrame& frame));
- MOCK_METHOD1(OnConnectionCloseFrame,
- bool(const QuicConnectionCloseFrame& frame));
- MOCK_METHOD1(OnGoAwayFrame, bool(const QuicGoAwayFrame& frame));
- MOCK_METHOD1(OnWindowUpdateFrame, bool(const QuicWindowUpdateFrame& frame));
- MOCK_METHOD1(OnBlockedFrame, bool(const QuicBlockedFrame& frame));
- MOCK_METHOD0(OnPacketComplete, void());
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockFramerVisitor);
-};
-
-class NoOpFramerVisitor : public QuicFramerVisitorInterface {
- public:
- NoOpFramerVisitor() {}
-
- void OnError(QuicFramer* framer) override {}
- void OnPacket() override {}
- void OnPublicResetPacket(const QuicPublicResetPacket& packet) override {}
- void OnVersionNegotiationPacket(
- const QuicVersionNegotiationPacket& packet) override {}
- void OnRevivedPacket() override {}
- bool OnProtocolVersionMismatch(QuicVersion version) override;
- bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override;
- bool OnUnauthenticatedPublicHeader(
- const QuicPacketPublicHeader& header) override;
- void OnDecryptedPacket(EncryptionLevel level) override {}
- bool OnPacketHeader(const QuicPacketHeader& header) override;
- void OnFecProtectedPayload(base::StringPiece payload) override {}
- bool OnStreamFrame(const QuicStreamFrame& frame) override;
- bool OnAckFrame(const QuicAckFrame& frame) override;
- bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override;
- bool OnPingFrame(const QuicPingFrame& frame) override;
- void OnFecData(const QuicFecData& fec) override {}
- bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override;
- bool OnConnectionCloseFrame(const QuicConnectionCloseFrame& frame) override;
- bool OnGoAwayFrame(const QuicGoAwayFrame& frame) override;
- bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) override;
- bool OnBlockedFrame(const QuicBlockedFrame& frame) override;
- void OnPacketComplete() override {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(NoOpFramerVisitor);
-};
-
-class MockConnectionVisitor : public QuicConnectionVisitorInterface {
- public:
- MockConnectionVisitor();
- ~MockConnectionVisitor() override;
-
- MOCK_METHOD1(OnStreamFrames, void(const std::vector<QuicStreamFrame>& frame));
- MOCK_METHOD1(OnWindowUpdateFrames,
- void(const std::vector<QuicWindowUpdateFrame>& frame));
- MOCK_METHOD1(OnBlockedFrames,
- void(const std::vector<QuicBlockedFrame>& frame));
- MOCK_METHOD1(OnRstStream, void(const QuicRstStreamFrame& frame));
- MOCK_METHOD1(OnGoAway, void(const QuicGoAwayFrame& frame));
- MOCK_METHOD2(OnConnectionClosed, void(QuicErrorCode error, bool from_peer));
- MOCK_METHOD0(OnWriteBlocked, void());
- MOCK_METHOD0(OnCanWrite, void());
- MOCK_METHOD1(OnCongestionWindowChange, void(QuicTime now));
- MOCK_CONST_METHOD0(WillingAndAbleToWrite, bool());
- MOCK_CONST_METHOD0(HasPendingHandshake, bool());
- MOCK_CONST_METHOD0(HasOpenDataStreams, bool());
- MOCK_METHOD1(OnSuccessfulVersionNegotiation,
- void(const QuicVersion& version));
- MOCK_METHOD0(OnConfigNegotiated, void());
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockConnectionVisitor);
-};
-
-class MockHelper : public QuicConnectionHelperInterface {
- public:
- MockHelper();
- ~MockHelper() override;
- const QuicClock* GetClock() const override;
- QuicRandom* GetRandomGenerator() override;
- QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) override;
- void AdvanceTime(QuicTime::Delta delta);
-
- private:
- MockClock clock_;
- MockRandom random_generator_;
-
- DISALLOW_COPY_AND_ASSIGN(MockHelper);
-};
-
-class NiceMockPacketWriterFactory : public QuicConnection::PacketWriterFactory {
- public:
- NiceMockPacketWriterFactory() {}
- ~NiceMockPacketWriterFactory() override {}
-
- QuicPacketWriter* Create(QuicConnection* /*connection*/) const override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(NiceMockPacketWriterFactory);
-};
-
-class MockConnection : public QuicConnection {
- public:
- // Uses a MockHelper, ConnectionId of 42, and 127.0.0.1:123.
- explicit MockConnection(bool is_server);
-
- // Uses a MockHelper, ConnectionId of 42, and 127.0.0.1:123.
- MockConnection(bool is_server, bool is_secure);
-
- // Uses a MockHelper, ConnectionId of 42.
- MockConnection(IPEndPoint address, bool is_server);
-
- // Uses a MockHelper, and 127.0.0.1:123
- MockConnection(QuicConnectionId connection_id, bool is_server);
-
- // Uses a Mock helper, ConnectionId of 42, and 127.0.0.1:123.
- MockConnection(bool is_server, const QuicVersionVector& supported_versions);
-
- ~MockConnection() override;
-
- // If the constructor that uses a MockHelper has been used then this method
- // will advance the time of the MockClock.
- void AdvanceTime(QuicTime::Delta delta);
-
- MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address,
- const IPEndPoint& peer_address,
- const QuicEncryptedPacket& packet));
- MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error));
- MOCK_METHOD2(SendConnectionCloseWithDetails,
- void(QuicErrorCode error, const std::string& details));
- MOCK_METHOD2(SendConnectionClosePacket,
- void(QuicErrorCode error, const std::string& details));
- MOCK_METHOD3(SendRstStream, void(QuicStreamId id,
- QuicRstStreamErrorCode error,
- QuicStreamOffset bytes_written));
- MOCK_METHOD3(SendGoAway,
- void(QuicErrorCode error,
- QuicStreamId last_good_stream_id,
- const std::string& reason));
- MOCK_METHOD1(SendBlocked, void(QuicStreamId id));
- MOCK_METHOD2(SendWindowUpdate, void(QuicStreamId id,
- QuicStreamOffset byte_offset));
- MOCK_METHOD0(OnCanWrite, void());
-
- MOCK_METHOD1(ResumeConnectionState, bool(const CachedNetworkParameters&));
-
- void ProcessUdpPacketInternal(const IPEndPoint& self_address,
- const IPEndPoint& peer_address,
- const QuicEncryptedPacket& packet) {
- QuicConnection::ProcessUdpPacket(self_address, peer_address, packet);
- }
-
- bool OnProtocolVersionMismatch(QuicVersion version) override {
- return false;
- }
-
- private:
- scoped_ptr<QuicConnectionHelperInterface> helper_;
-
- DISALLOW_COPY_AND_ASSIGN(MockConnection);
-};
-
-class PacketSavingConnection : public MockConnection {
- public:
- explicit PacketSavingConnection(bool is_server);
-
- PacketSavingConnection(bool is_server,
- const QuicVersionVector& supported_versions);
-
- ~PacketSavingConnection() override;
-
- void SendOrQueuePacket(QueuedPacket packet) override;
-
- std::vector<QuicEncryptedPacket*> encrypted_packets_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(PacketSavingConnection);
-};
-
-class MockSession : public QuicSession {
- public:
- explicit MockSession(QuicConnection* connection);
- ~MockSession() override;
- MOCK_METHOD2(OnConnectionClosed, void(QuicErrorCode error, bool from_peer));
- MOCK_METHOD1(CreateIncomingDataStream, QuicDataStream*(QuicStreamId id));
- MOCK_METHOD0(GetCryptoStream, QuicCryptoStream*());
- MOCK_METHOD0(CreateOutgoingDataStream, QuicDataStream*());
- MOCK_METHOD6(WritevData,
- QuicConsumedData(QuicStreamId id,
- const IOVector& data,
- QuicStreamOffset offset,
- bool fin,
- FecProtection fec_protection,
- QuicAckNotifier::DelegateInterface*));
- MOCK_METHOD2(OnStreamHeaders, void(QuicStreamId stream_id,
- base::StringPiece headers_data));
- MOCK_METHOD2(OnStreamHeadersPriority, void(QuicStreamId stream_id,
- QuicPriority priority));
- MOCK_METHOD3(OnStreamHeadersComplete, void(QuicStreamId stream_id,
- bool fin,
- size_t frame_len));
- MOCK_METHOD3(SendRstStream, void(QuicStreamId stream_id,
- QuicRstStreamErrorCode error,
- QuicStreamOffset bytes_written));
- MOCK_METHOD0(IsCryptoHandshakeConfirmed, bool());
-
- using QuicSession::ActivateStream;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockSession);
-};
-
-class TestSession : public QuicSession {
- public:
- TestSession(QuicConnection* connection, const QuicConfig& config);
- ~TestSession() override;
-
- MOCK_METHOD1(CreateIncomingDataStream, QuicDataStream*(QuicStreamId id));
- MOCK_METHOD0(CreateOutgoingDataStream, QuicDataStream*());
-
- void SetCryptoStream(QuicCryptoStream* stream);
-
- QuicCryptoStream* GetCryptoStream() override;
-
- private:
- QuicCryptoStream* crypto_stream_;
-
- DISALLOW_COPY_AND_ASSIGN(TestSession);
-};
-
-class TestClientSession : public QuicClientSessionBase {
- public:
- TestClientSession(QuicConnection* connection, const QuicConfig& config);
- ~TestClientSession() override;
-
- // QuicClientSessionBase
- MOCK_METHOD1(OnProofValid,
- void(const QuicCryptoClientConfig::CachedState& cached));
- MOCK_METHOD1(OnProofVerifyDetailsAvailable,
- void(const ProofVerifyDetails& verify_details));
-
- // TestClientSession
- MOCK_METHOD1(CreateIncomingDataStream, QuicDataStream*(QuicStreamId id));
- MOCK_METHOD0(CreateOutgoingDataStream, QuicDataStream*());
-
- void SetCryptoStream(QuicCryptoStream* stream);
-
- QuicCryptoStream* GetCryptoStream() override;
-
- private:
- QuicCryptoStream* crypto_stream_;
-
- DISALLOW_COPY_AND_ASSIGN(TestClientSession);
-};
-
-class MockPacketWriter : public QuicPacketWriter {
- public:
- MockPacketWriter();
- ~MockPacketWriter() override;
-
- MOCK_METHOD4(WritePacket,
- WriteResult(const char* buffer,
- size_t buf_len,
- const IPAddressNumber& self_address,
- const IPEndPoint& peer_address));
- MOCK_CONST_METHOD0(IsWriteBlockedDataBuffered, bool());
- MOCK_CONST_METHOD0(IsWriteBlocked, bool());
- MOCK_METHOD0(SetWritable, void());
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockPacketWriter);
-};
-
-class MockSendAlgorithm : public SendAlgorithmInterface {
- public:
- MockSendAlgorithm();
- ~MockSendAlgorithm() override;
-
- MOCK_METHOD3(SetFromConfig, void(const QuicConfig& config,
- bool is_server,
- bool using_pacing));
- MOCK_METHOD1(SetNumEmulatedConnections, void(int num_connections));
- MOCK_METHOD1(SetMaxPacketSize, void(QuicByteCount max_packet_size));
- MOCK_METHOD4(OnCongestionEvent, void(bool rtt_updated,
- QuicByteCount bytes_in_flight,
- const CongestionVector& acked_packets,
- const CongestionVector& lost_packets));
- MOCK_METHOD5(OnPacketSent,
- bool(QuicTime, QuicByteCount, QuicPacketSequenceNumber,
- QuicByteCount, HasRetransmittableData));
- MOCK_METHOD1(OnRetransmissionTimeout, void(bool));
- MOCK_METHOD0(RevertRetransmissionTimeout, void());
- MOCK_CONST_METHOD3(TimeUntilSend,
- QuicTime::Delta(QuicTime now,
- QuicByteCount bytes_in_flight,
- HasRetransmittableData));
- MOCK_CONST_METHOD0(PacingRate, QuicBandwidth(void));
- MOCK_CONST_METHOD0(BandwidthEstimate, QuicBandwidth(void));
- MOCK_CONST_METHOD0(HasReliableBandwidthEstimate, bool());
- MOCK_METHOD1(OnRttUpdated, void(QuicPacketSequenceNumber));
- MOCK_CONST_METHOD0(RetransmissionDelay, QuicTime::Delta(void));
- MOCK_CONST_METHOD0(GetCongestionWindow, QuicByteCount());
- MOCK_CONST_METHOD0(InSlowStart, bool());
- MOCK_CONST_METHOD0(InRecovery, bool());
- MOCK_CONST_METHOD0(GetSlowStartThreshold, QuicByteCount());
- MOCK_CONST_METHOD0(GetCongestionControlType, CongestionControlType());
- MOCK_METHOD1(ResumeConnectionState, bool(const CachedNetworkParameters&));
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockSendAlgorithm);
-};
-
-class MockLossAlgorithm : public LossDetectionInterface {
- public:
- MockLossAlgorithm();
- ~MockLossAlgorithm() override;
-
- MOCK_CONST_METHOD0(GetLossDetectionType, LossDetectionType());
- MOCK_METHOD4(DetectLostPackets,
- SequenceNumberSet(const QuicUnackedPacketMap& unacked_packets,
- const QuicTime& time,
- QuicPacketSequenceNumber largest_observed,
- const RttStats& rtt_stats));
- MOCK_CONST_METHOD0(GetLossTimeout, QuicTime());
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockLossAlgorithm);
-};
-
-class TestEntropyCalculator :
- public QuicReceivedEntropyHashCalculatorInterface {
- public:
- TestEntropyCalculator();
- ~TestEntropyCalculator() override;
-
- QuicPacketEntropyHash EntropyHash(
- QuicPacketSequenceNumber sequence_number) const override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestEntropyCalculator);
-};
-
-class MockEntropyCalculator : public TestEntropyCalculator {
- public:
- MockEntropyCalculator();
- ~MockEntropyCalculator() override;
-
- MOCK_CONST_METHOD1(
- EntropyHash,
- QuicPacketEntropyHash(QuicPacketSequenceNumber sequence_number));
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockEntropyCalculator);
-};
-
-class MockAckNotifierDelegate : public QuicAckNotifier::DelegateInterface {
- public:
- MockAckNotifierDelegate();
-
- MOCK_METHOD3(OnAckNotification,
- void(int num_retransmitted_packets,
- int num_retransmitted_bytes,
- QuicTime::Delta delta_largest_observed));
-
- protected:
- // Object is ref counted.
- ~MockAckNotifierDelegate() override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockAckNotifierDelegate);
-};
-
-class MockNetworkChangeVisitor :
- public QuicSentPacketManager::NetworkChangeVisitor {
- public:
- MockNetworkChangeVisitor();
- ~MockNetworkChangeVisitor() override;
-
- MOCK_METHOD0(OnCongestionWindowChange, void());
- MOCK_METHOD0(OnRttChange, void());
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockNetworkChangeVisitor);
-};
-
-// Creates per-connection packet writers that register themselves with the
-// TestWriterFactory on each write so that TestWriterFactory::OnPacketSent can
-// be routed to the appropriate QuicConnection.
-class TestWriterFactory : public QuicDispatcher::PacketWriterFactory {
- public:
- TestWriterFactory();
- ~TestWriterFactory() override;
-
- QuicPacketWriter* Create(QuicServerPacketWriter* writer,
- QuicConnection* connection) override;
-
- // Calls OnPacketSent on the last QuicConnection to write through one of the
- // packet writers created by this factory.
- void OnPacketSent(WriteResult result);
-
- private:
- class PerConnectionPacketWriter : public QuicPerConnectionPacketWriter {
- public:
- PerConnectionPacketWriter(TestWriterFactory* factory,
- QuicServerPacketWriter* writer,
- QuicConnection* connection);
- ~PerConnectionPacketWriter() override;
-
- WriteResult WritePacket(const char* buffer,
- size_t buf_len,
- const IPAddressNumber& self_address,
- const IPEndPoint& peer_address) override;
-
- private:
- TestWriterFactory* factory_;
- };
-
- // If an asynchronous write is happening and |writer| gets deleted, this
- // clears the pointer to it to prevent use-after-free.
- void Unregister(PerConnectionPacketWriter* writer);
-
- PerConnectionPacketWriter* current_writer_;
-};
-
-} // namespace test
-} // namespace net
-
-#endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
« no previous file with comments | « net/quic/test_tools/quic_test_packet_maker.cc ('k') | net/quic/test_tools/quic_test_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698