summaryrefslogtreecommitdiff
path: root/chromium/net/tools/quic/test_tools
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/tools/quic/test_tools')
-rw-r--r--chromium/net/tools/quic/test_tools/mock_epoll_server.h7
-rw-r--r--chromium/net/tools/quic/test_tools/mock_quic_server_session_visitor.h2
-rw-r--r--chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.cc5
-rw-r--r--chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.h8
-rw-r--r--chromium/net/tools/quic/test_tools/packet_dropping_test_writer.cc5
-rw-r--r--chromium/net/tools/quic/test_tools/packet_dropping_test_writer.h9
-rw-r--r--chromium/net/tools/quic/test_tools/quic_client_peer.cc10
-rw-r--r--chromium/net/tools/quic/test_tools/quic_client_peer.h2
-rw-r--r--chromium/net/tools/quic/test_tools/quic_dispatcher_peer.cc6
-rw-r--r--chromium/net/tools/quic/test_tools/quic_dispatcher_peer.h2
-rw-r--r--chromium/net/tools/quic/test_tools/quic_test_client.cc14
-rw-r--r--chromium/net/tools/quic/test_tools/quic_test_client.h7
-rw-r--r--chromium/net/tools/quic/test_tools/quic_test_server.cc25
-rw-r--r--chromium/net/tools/quic/test_tools/quic_test_server.h4
-rw-r--r--chromium/net/tools/quic/test_tools/server_thread.h4
15 files changed, 78 insertions, 32 deletions
diff --git a/chromium/net/tools/quic/test_tools/mock_epoll_server.h b/chromium/net/tools/quic/test_tools/mock_epoll_server.h
index f56f4ab1953..9eac59403bc 100644
--- a/chromium/net/tools/quic/test_tools/mock_epoll_server.h
+++ b/chromium/net/tools/quic/test_tools/mock_epoll_server.h
@@ -8,6 +8,9 @@
#include <stddef.h>
#include <stdint.h>
+#include <unordered_map>
+#include <unordered_set>
+
#include "base/logging.h"
#include "base/macros.h"
#include "net/tools/epoll_server/epoll_server.h"
@@ -52,7 +55,7 @@ class FakeTimeEpollServer : public EpollServer {
class MockEpollServer : public FakeTimeEpollServer {
public: // type definitions
- typedef base::hash_multimap<int64_t, struct epoll_event> EventQueue;
+ using EventQueue = std::unordered_multimap<int64_t, struct epoll_event>;
MockEpollServer();
~MockEpollServer() override;
@@ -81,7 +84,7 @@ class MockEpollServer : public FakeTimeEpollServer {
WaitForEventsAndExecuteCallbacks();
}
- base::hash_set<AlarmCB*>::size_type NumberOfAlarms() const {
+ std::unordered_set<AlarmCB*>::size_type NumberOfAlarms() const {
return all_alarms_.size();
}
diff --git a/chromium/net/tools/quic/test_tools/mock_quic_server_session_visitor.h b/chromium/net/tools/quic/test_tools/mock_quic_server_session_visitor.h
index 22a1b05bc45..aba8a9c90e0 100644
--- a/chromium/net/tools/quic/test_tools/mock_quic_server_session_visitor.h
+++ b/chromium/net/tools/quic/test_tools/mock_quic_server_session_visitor.h
@@ -24,8 +24,6 @@ class MockQuicServerSessionVisitor : public QuicServerSessionVisitor {
void(QuicBlockedWriterInterface* blocked_writer));
MOCK_METHOD1(OnConnectionAddedToTimeWaitList,
void(QuicConnectionId connection_id));
- MOCK_METHOD1(OnConnectionRemovedFromTimeWaitList,
- void(QuicConnectionId connection_id));
private:
DISALLOW_COPY_AND_ASSIGN(MockQuicServerSessionVisitor);
diff --git a/chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.cc b/chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.cc
index 468e6efded7..54b780507fa 100644
--- a/chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.cc
+++ b/chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.cc
@@ -14,8 +14,9 @@ namespace test {
MockTimeWaitListManager::MockTimeWaitListManager(
QuicPacketWriter* writer,
QuicServerSessionVisitor* visitor,
- QuicConnectionHelperInterface* helper)
- : QuicTimeWaitListManager(writer, visitor, helper) {
+ QuicConnectionHelperInterface* helper,
+ QuicAlarmFactory* alarm_factory)
+ : QuicTimeWaitListManager(writer, visitor, helper, alarm_factory) {
// Though AddConnectionIdToTimeWait is mocked, we want to retain its
// functionality.
EXPECT_CALL(*this, AddConnectionIdToTimeWait(_, _, _, _))
diff --git a/chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.h b/chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.h
index 5d5542b14a6..fab8c38cce5 100644
--- a/chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.h
+++ b/chromium/net/tools/quic/test_tools/mock_quic_time_wait_list_manager.h
@@ -17,20 +17,22 @@ class MockTimeWaitListManager : public QuicTimeWaitListManager {
public:
MockTimeWaitListManager(QuicPacketWriter* writer,
QuicServerSessionVisitor* visitor,
- QuicConnectionHelperInterface* helper);
+ QuicConnectionHelperInterface* helper,
+ QuicAlarmFactory* alarm_factory);
~MockTimeWaitListManager() override;
MOCK_METHOD4(AddConnectionIdToTimeWait,
void(QuicConnectionId connection_id,
QuicVersion version,
bool connection_rejected_statelessly,
- std::vector<QuicEncryptedPacket*>* termination_packets));
+ std::vector<std::unique_ptr<QuicEncryptedPacket>>*
+ termination_packets));
void QuicTimeWaitListManager_AddConnectionIdToTimeWait(
QuicConnectionId connection_id,
QuicVersion version,
bool connection_rejected_statelessly,
- std::vector<QuicEncryptedPacket*>* termination_packets) {
+ std::vector<std::unique_ptr<QuicEncryptedPacket>>* termination_packets) {
QuicTimeWaitListManager::AddConnectionIdToTimeWait(
connection_id, version, connection_rejected_statelessly,
termination_packets);
diff --git a/chromium/net/tools/quic/test_tools/packet_dropping_test_writer.cc b/chromium/net/tools/quic/test_tools/packet_dropping_test_writer.cc
index 3858b7828b8..4d85d5a85f9 100644
--- a/chromium/net/tools/quic/test_tools/packet_dropping_test_writer.cc
+++ b/chromium/net/tools/quic/test_tools/packet_dropping_test_writer.cc
@@ -66,11 +66,12 @@ PacketDroppingTestWriter::PacketDroppingTestWriter()
PacketDroppingTestWriter::~PacketDroppingTestWriter() {}
void PacketDroppingTestWriter::Initialize(QuicConnectionHelperInterface* helper,
+ QuicAlarmFactory* alarm_factory,
Delegate* on_can_write) {
clock_ = helper->GetClock();
write_unblocked_alarm_.reset(
- helper->CreateAlarm(new WriteUnblockedAlarm(this)));
- delay_alarm_.reset(helper->CreateAlarm(new DelayAlarm(this)));
+ alarm_factory->CreateAlarm(new WriteUnblockedAlarm(this)));
+ delay_alarm_.reset(alarm_factory->CreateAlarm(new DelayAlarm(this)));
on_can_write_.reset(on_can_write);
}
diff --git a/chromium/net/tools/quic/test_tools/packet_dropping_test_writer.h b/chromium/net/tools/quic/test_tools/packet_dropping_test_writer.h
index 20d2c278e38..2e3fcbca0ea 100644
--- a/chromium/net/tools/quic/test_tools/packet_dropping_test_writer.h
+++ b/chromium/net/tools/quic/test_tools/packet_dropping_test_writer.h
@@ -9,11 +9,11 @@
#include <stdint.h>
#include <list>
+#include <memory>
#include <string>
#include "base/logging.h"
#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
#include "base/synchronization/lock.h"
#include "net/base/ip_address.h"
#include "net/quic/quic_alarm.h"
@@ -45,6 +45,7 @@ class PacketDroppingTestWriter : public QuicPacketWriterWrapper {
// |on_can_write| will be triggered when fake-unblocking; ownership will be
// assumed.
void Initialize(QuicConnectionHelperInterface* helper,
+ QuicAlarmFactory* alarm_factory,
Delegate* on_can_write);
// QuicPacketWriter methods:
@@ -153,9 +154,9 @@ class PacketDroppingTestWriter : public QuicPacketWriterWrapper {
typedef std::list<DelayedWrite> DelayedPacketList;
const QuicClock* clock_;
- scoped_ptr<QuicAlarm> write_unblocked_alarm_;
- scoped_ptr<QuicAlarm> delay_alarm_;
- scoped_ptr<Delegate> on_can_write_;
+ std::unique_ptr<QuicAlarm> write_unblocked_alarm_;
+ std::unique_ptr<QuicAlarm> delay_alarm_;
+ std::unique_ptr<Delegate> on_can_write_;
net::test::SimpleRandom simple_random_;
// Stored packets delayed by fake packet delay or bandwidth restrictions.
DelayedPacketList delayed_packets_;
diff --git a/chromium/net/tools/quic/test_tools/quic_client_peer.cc b/chromium/net/tools/quic/test_tools/quic_client_peer.cc
index 71d3520f9d7..961cc823e2d 100644
--- a/chromium/net/tools/quic/test_tools/quic_client_peer.cc
+++ b/chromium/net/tools/quic/test_tools/quic_client_peer.cc
@@ -10,6 +10,11 @@ namespace net {
namespace test {
// static
+QuicCryptoClientConfig* QuicClientPeer::GetCryptoConfig(QuicClient* client) {
+ return client->crypto_config();
+}
+
+// static
bool QuicClientPeer::CreateUDPSocketAndBind(QuicClient* client) {
return client->CreateUDPSocketAndBind();
}
@@ -25,5 +30,10 @@ void QuicClientPeer::SetClientPort(QuicClient* client, int port) {
IPEndPoint(client->GetLatestClientAddress().address(), port);
}
+// static
+void QuicClientPeer::SetWriter(QuicClient* client, QuicPacketWriter* writer) {
+ client->set_writer(writer);
+}
+
} // namespace test
} // namespace net
diff --git a/chromium/net/tools/quic/test_tools/quic_client_peer.h b/chromium/net/tools/quic/test_tools/quic_client_peer.h
index 4d249a3087d..711fb78c5a9 100644
--- a/chromium/net/tools/quic/test_tools/quic_client_peer.h
+++ b/chromium/net/tools/quic/test_tools/quic_client_peer.h
@@ -19,9 +19,11 @@ namespace test {
class QuicClientPeer {
public:
+ static QuicCryptoClientConfig* GetCryptoConfig(QuicClient* client);
static bool CreateUDPSocketAndBind(QuicClient* client);
static void CleanUpUDPSocket(QuicClient* client, int fd);
static void SetClientPort(QuicClient* client, int port);
+ static void SetWriter(QuicClient* client, QuicPacketWriter* writer);
private:
DISALLOW_COPY_AND_ASSIGN(QuicClientPeer);
diff --git a/chromium/net/tools/quic/test_tools/quic_dispatcher_peer.cc b/chromium/net/tools/quic/test_tools/quic_dispatcher_peer.cc
index 232043fbc5c..48a61f71d68 100644
--- a/chromium/net/tools/quic/test_tools/quic_dispatcher_peer.cc
+++ b/chromium/net/tools/quic/test_tools/quic_dispatcher_peer.cc
@@ -42,6 +42,12 @@ QuicConnectionHelperInterface* QuicDispatcherPeer::GetHelper(
}
// static
+QuicAlarmFactory* QuicDispatcherPeer::GetAlarmFactory(
+ QuicDispatcher* dispatcher) {
+ return dispatcher->alarm_factory_.get();
+}
+
+// static
QuicDispatcher::WriteBlockedList* QuicDispatcherPeer::GetWriteBlockedList(
QuicDispatcher* dispatcher) {
return &dispatcher->write_blocked_list_;
diff --git a/chromium/net/tools/quic/test_tools/quic_dispatcher_peer.h b/chromium/net/tools/quic/test_tools/quic_dispatcher_peer.h
index cbd60e27b8f..4ff4d2d38b6 100644
--- a/chromium/net/tools/quic/test_tools/quic_dispatcher_peer.h
+++ b/chromium/net/tools/quic/test_tools/quic_dispatcher_peer.h
@@ -32,6 +32,8 @@ class QuicDispatcherPeer {
static QuicConnectionHelperInterface* GetHelper(QuicDispatcher* dispatcher);
+ static QuicAlarmFactory* GetAlarmFactory(QuicDispatcher* dispatcher);
+
static QuicDispatcher::WriteBlockedList* GetWriteBlockedList(
QuicDispatcher* dispatcher);
diff --git a/chromium/net/tools/quic/test_tools/quic_test_client.cc b/chromium/net/tools/quic/test_tools/quic_test_client.cc
index db9a9b982e8..760c451af1c 100644
--- a/chromium/net/tools/quic/test_tools/quic_test_client.cc
+++ b/chromium/net/tools/quic/test_tools/quic_test_client.cc
@@ -4,6 +4,8 @@
#include "net/tools/quic/test_tools/quic_test_client.h"
+#include <memory>
+
#include "base/time/time.h"
#include "net/base/completion_callback.h"
#include "net/base/net_errors.h"
@@ -52,7 +54,7 @@ class RecordingProofVerifier : public ProofVerifier {
const string& signature,
const ProofVerifyContext* context,
string* error_details,
- scoped_ptr<ProofVerifyDetails>* details,
+ std::unique_ptr<ProofVerifyDetails>* details,
ProofVerifierCallback* callback) override {
common_name_.clear();
if (certs.empty()) {
@@ -184,9 +186,7 @@ QuicTestClient::QuicTestClient(IPEndPoint server_address,
config,
supported_versions,
&epoll_server_)),
- allow_bidirectional_data_(false),
- num_requests_(0),
- num_responses_(0) {
+ allow_bidirectional_data_(false) {
Initialize();
}
@@ -204,6 +204,8 @@ void QuicTestClient::Initialize() {
connect_attempted_ = false;
auto_reconnect_ = false;
buffer_body_ = true;
+ num_requests_ = 0;
+ num_responses_ = 0;
ClearPerRequestState();
// As chrome will generally do this, we want it to be the default when it's
// not overridden.
@@ -311,7 +313,7 @@ ssize_t QuicTestClient::SendMessage(const HTTPMessage& message) {
// CHECK(message.body_chunks().empty())
// << "HTTPMessage::body_chunks not supported";
- scoped_ptr<BalsaHeaders> munged_headers(MungeHeaders(message.headers()));
+ std::unique_ptr<BalsaHeaders> munged_headers(MungeHeaders(message.headers()));
ssize_t ret = GetOrCreateStreamAndSendRequest(
(munged_headers.get() ? munged_headers.get() : message.headers()),
message.body(), message.has_complete_message(), nullptr);
@@ -561,6 +563,7 @@ void QuicTestClient::OnClose(QuicSpdyStream* stream) {
// Always close the stream, regardless of whether it was the last stream
// written.
client()->OnClose(stream);
+ ++num_responses_;
}
if (stream_ != stream) {
return;
@@ -581,7 +584,6 @@ void QuicTestClient::OnClose(QuicSpdyStream* stream) {
response_header_size_ = response_headers_.GetSizeForWriteBuffer();
response_body_size_ = stream_->data().size();
stream_ = nullptr;
- ++num_responses_;
}
bool QuicTestClient::CheckVary(const SpdyHeaderBlock& client_request,
diff --git a/chromium/net/tools/quic/test_tools/quic_test_client.h b/chromium/net/tools/quic/test_tools/quic_test_client.h
index b8530f46f46..a25a842d5cb 100644
--- a/chromium/net/tools/quic/test_tools/quic_test_client.h
+++ b/chromium/net/tools/quic/test_tools/quic_test_client.h
@@ -8,10 +8,11 @@
#include <stddef.h>
#include <stdint.h>
+#include <cstdint>
+#include <memory>
#include <string>
#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
#include "net/base/ip_address.h"
#include "net/base/ip_endpoint.h"
#include "net/quic/proto/cached_network_parameters.pb.h"
@@ -23,6 +24,8 @@
#include "net/tools/quic/quic_client.h"
#include "net/tools/quic/test_tools/simple_client.h"
+using base::StringPiece;
+
namespace net {
class ProofVerifier;
@@ -233,7 +236,7 @@ class QuicTestClient : public test::SimpleClient,
bool HaveActiveStream();
EpollServer epoll_server_;
- scoped_ptr<MockableQuicClient> client_; // The actual client
+ std::unique_ptr<MockableQuicClient> client_; // The actual client
QuicSpdyClientStream* stream_;
QuicRstStreamErrorCode stream_error_;
diff --git a/chromium/net/tools/quic/test_tools/quic_test_server.cc b/chromium/net/tools/quic/test_tools/quic_test_server.cc
index dc5fc45141d..a872bb02f98 100644
--- a/chromium/net/tools/quic/test_tools/quic_test_server.cc
+++ b/chromium/net/tools/quic/test_tools/quic_test_server.cc
@@ -7,7 +7,7 @@
#include "base/logging.h"
#include "base/run_loop.h"
#include "base/synchronization/lock.h"
-#include "base/thread_task_runner_handle.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "net/base/ip_endpoint.h"
#include "net/base/net_errors.h"
#include "net/quic/crypto/crypto_handshake.h"
@@ -19,6 +19,7 @@
#include "net/quic/quic_packet_writer.h"
#include "net/quic/quic_protocol.h"
#include "net/tools/quic/quic_dispatcher.h"
+#include "net/tools/quic/quic_epoll_alarm_factory.h"
#include "net/tools/quic/quic_epoll_connection_helper.h"
#include "net/tools/quic/quic_simple_server_session.h"
#include "net/tools/quic/quic_simple_server_stream.h"
@@ -76,8 +77,13 @@ class QuicTestDispatcher : public QuicDispatcher {
QuicTestDispatcher(const QuicConfig& config,
const QuicCryptoServerConfig* crypto_config,
const QuicVersionVector& versions,
- QuicConnectionHelperInterface* helper)
- : QuicDispatcher(config, crypto_config, versions, helper),
+ std::unique_ptr<QuicConnectionHelperInterface> helper,
+ std::unique_ptr<QuicAlarmFactory> alarm_factory)
+ : QuicDispatcher(config,
+ crypto_config,
+ versions,
+ std::move(helper),
+ std::move(alarm_factory)),
session_factory_(nullptr),
stream_factory_(nullptr),
crypto_stream_factory_(nullptr) {}
@@ -90,7 +96,7 @@ class QuicTestDispatcher : public QuicDispatcher {
return QuicDispatcher::CreateQuicSession(id, client);
}
QuicConnection* connection = new QuicConnection(
- id, client, helper(), CreatePerConnectionWriter(),
+ id, client, helper(), alarm_factory(), CreatePerConnectionWriter(),
/* owns_writer= */ true, Perspective::IS_SERVER, supported_versions());
QuicServerSessionBase* session = nullptr;
@@ -150,8 +156,10 @@ QuicTestServer::QuicTestServer(ProofSource* proof_source,
QuicDispatcher* QuicTestServer::CreateQuicDispatcher() {
return new QuicTestDispatcher(
config(), &crypto_config(), supported_versions(),
- new QuicEpollConnectionHelper(epoll_server(),
- QuicAllocator::BUFFER_POOL));
+ std::unique_ptr<QuicEpollConnectionHelper>(new QuicEpollConnectionHelper(
+ epoll_server(), QuicAllocator::BUFFER_POOL)),
+ std::unique_ptr<QuicEpollAlarmFactory>(
+ new QuicEpollAlarmFactory(epoll_server())));
}
void QuicTestServer::SetSessionFactory(SessionFactory* factory) {
@@ -180,8 +188,11 @@ ImmediateGoAwaySession::ImmediateGoAwaySession(
connection,
visitor,
crypto_config,
- compressed_certs_cache) {
+ compressed_certs_cache) {}
+
+void ImmediateGoAwaySession::OnStreamFrame(const QuicStreamFrame& frame) {
SendGoAway(QUIC_PEER_GOING_AWAY, "");
+ QuicSimpleServerSession::OnStreamFrame(frame);
}
} // namespace test
diff --git a/chromium/net/tools/quic/test_tools/quic_test_server.h b/chromium/net/tools/quic/test_tools/quic_test_server.h
index 7af5f51a97c..0b96be2cb84 100644
--- a/chromium/net/tools/quic/test_tools/quic_test_server.h
+++ b/chromium/net/tools/quic/test_tools/quic_test_server.h
@@ -5,9 +5,9 @@
#ifndef NET_TOOLS_QUIC_TEST_TOOLS_QUIC_TEST_SERVER_H_
#define NET_TOOLS_QUIC_TEST_TOOLS_QUIC_TEST_SERVER_H_
+#include <memory>
#include <string>
-#include "base/memory/scoped_ptr.h"
#include "net/base/ip_endpoint.h"
#include "net/quic/quic_session.h"
#include "net/tools/quic/quic_dispatcher.h"
@@ -92,6 +92,8 @@ class ImmediateGoAwaySession : public QuicSimpleServerSession {
QuicServerSessionVisitor* visitor,
const QuicCryptoServerConfig* crypto_config,
QuicCompressedCertsCache* compressed_certs_cache);
+ // Override to send GoAway.
+ void OnStreamFrame(const QuicStreamFrame& frame) override;
};
} // namespace test
diff --git a/chromium/net/tools/quic/test_tools/server_thread.h b/chromium/net/tools/quic/test_tools/server_thread.h
index 244a87c55e5..b907fd16010 100644
--- a/chromium/net/tools/quic/test_tools/server_thread.h
+++ b/chromium/net/tools/quic/test_tools/server_thread.h
@@ -5,6 +5,8 @@
#ifndef NET_TOOLS_QUIC_TEST_TOOLS_SERVER_THREAD_H_
#define NET_TOOLS_QUIC_TEST_TOOLS_SERVER_THREAD_H_
+#include <memory>
+
#include "base/macros.h"
#include "base/threading/simple_thread.h"
#include "net/base/ip_endpoint.h"
@@ -63,7 +65,7 @@ class ServerThread : public base::SimpleThread {
base::WaitableEvent resume_; // Notified when the server should resume.
base::WaitableEvent quit_; // Notified when the server should quit.
- scoped_ptr<QuicServer> server_;
+ std::unique_ptr<QuicServer> server_;
IPEndPoint address_;
base::Lock port_lock_;
int port_;