diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-15 00:13:44 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-15 00:13:44 +0000 |
commit | 18ccfdb7574c4868e37f53386454277e3e63bbe8 (patch) | |
tree | f1e177773e0b1cdc80deb3d755a8d7baf1233df6 /net/socket/socket_test_util.cc | |
parent | 582a8575e5259762d5cb7b517b928ed7fc75ca11 (diff) | |
download | chromium_src-18ccfdb7574c4868e37f53386454277e3e63bbe8.zip chromium_src-18ccfdb7574c4868e37f53386454277e3e63bbe8.tar.gz chromium_src-18ccfdb7574c4868e37f53386454277e3e63bbe8.tar.bz2 |
[net] Use scoped_ptr<> consistently in ClientSocketFactory and related code
This will make it easier to modify ClientSocketFactory et al. to support
reprioritization. This also fixes a few latent memory leaks in tests.
Make SocketStream use a ClientSocketHandle instead of
just a StreamSocket.
Rename {set,release}_socket() to {Set,Pass}Socket().
BUG=166689
TBR=eroman@chromium.org, rsleevi@chromium.org, sergeyu@chromium.org
Review URL: https://codereview.chromium.org/22995002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217707 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/socket_test_util.cc')
-rw-r--r-- | net/socket/socket_test_util.cc | 100 |
1 files changed, 54 insertions, 46 deletions
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc index 8b2bdfc..159f62e 100644 --- a/net/socket/socket_test_util.cc +++ b/net/socket/socket_test_util.cc @@ -657,37 +657,39 @@ void MockClientSocketFactory::ResetNextMockIndexes() { mock_ssl_data_.ResetNextIndex(); } -DatagramClientSocket* MockClientSocketFactory::CreateDatagramClientSocket( +scoped_ptr<DatagramClientSocket> +MockClientSocketFactory::CreateDatagramClientSocket( DatagramSocket::BindType bind_type, const RandIntCallback& rand_int_cb, net::NetLog* net_log, const net::NetLog::Source& source) { SocketDataProvider* data_provider = mock_data_.GetNext(); - MockUDPClientSocket* socket = new MockUDPClientSocket(data_provider, net_log); - data_provider->set_socket(socket); - return socket; + scoped_ptr<MockUDPClientSocket> socket( + new MockUDPClientSocket(data_provider, net_log)); + data_provider->set_socket(socket.get()); + return socket.PassAs<DatagramClientSocket>(); } -StreamSocket* MockClientSocketFactory::CreateTransportClientSocket( +scoped_ptr<StreamSocket> MockClientSocketFactory::CreateTransportClientSocket( const AddressList& addresses, net::NetLog* net_log, const net::NetLog::Source& source) { SocketDataProvider* data_provider = mock_data_.GetNext(); - MockTCPClientSocket* socket = - new MockTCPClientSocket(addresses, net_log, data_provider); - data_provider->set_socket(socket); - return socket; + scoped_ptr<MockTCPClientSocket> socket( + new MockTCPClientSocket(addresses, net_log, data_provider)); + data_provider->set_socket(socket.get()); + return socket.PassAs<StreamSocket>(); } -SSLClientSocket* MockClientSocketFactory::CreateSSLClientSocket( - ClientSocketHandle* transport_socket, +scoped_ptr<SSLClientSocket> MockClientSocketFactory::CreateSSLClientSocket( + scoped_ptr<ClientSocketHandle> transport_socket, const HostPortPair& host_and_port, const SSLConfig& ssl_config, const SSLClientSocketContext& context) { - MockSSLClientSocket* socket = - new MockSSLClientSocket(transport_socket, host_and_port, ssl_config, - mock_ssl_data_.GetNext()); - return socket; + return scoped_ptr<SSLClientSocket>( + new MockSSLClientSocket(transport_socket.Pass(), + host_and_port, ssl_config, + mock_ssl_data_.GetNext())); } void MockClientSocketFactory::ClearSSLSessionCache() { @@ -1278,7 +1280,7 @@ void DeterministicMockTCPClientSocket::OnConnectComplete( // static void MockSSLClientSocket::ConnectCallback( - MockSSLClientSocket *ssl_client_socket, + MockSSLClientSocket* ssl_client_socket, const CompletionCallback& callback, int rv) { if (rv == OK) @@ -1287,7 +1289,7 @@ void MockSSLClientSocket::ConnectCallback( } MockSSLClientSocket::MockSSLClientSocket( - ClientSocketHandle* transport_socket, + scoped_ptr<ClientSocketHandle> transport_socket, const HostPortPair& host_port_pair, const SSLConfig& ssl_config, SSLSocketDataProvider* data) @@ -1295,7 +1297,7 @@ MockSSLClientSocket::MockSSLClientSocket( // Have to use the right BoundNetLog for LoadTimingInfo regression // tests. transport_socket->socket()->NetLog()), - transport_(transport_socket), + transport_(transport_socket.Pass()), data_(data), is_npn_state_set_(false), new_npn_value_(false), @@ -1664,10 +1666,10 @@ void ClientSocketPoolTest::ReleaseAllConnections(KeepAlive keep_alive) { } MockTransportClientSocketPool::MockConnectJob::MockConnectJob( - StreamSocket* socket, + scoped_ptr<StreamSocket> socket, ClientSocketHandle* handle, const CompletionCallback& callback) - : socket_(socket), + : socket_(socket.Pass()), handle_(handle), user_callback_(callback) { } @@ -1698,7 +1700,7 @@ void MockTransportClientSocketPool::MockConnectJob::OnConnect(int rv) { if (!socket_.get()) return; if (rv == OK) { - handle_->set_socket(socket_.release()); + handle_->SetSocket(socket_.Pass()); // Needed for socket pool tests that layer other sockets on top of mock // sockets. @@ -1740,9 +1742,10 @@ int MockTransportClientSocketPool::RequestSocket( const std::string& group_name, const void* socket_params, RequestPriority priority, ClientSocketHandle* handle, const CompletionCallback& callback, const BoundNetLog& net_log) { - StreamSocket* socket = client_socket_factory_->CreateTransportClientSocket( - AddressList(), net_log.net_log(), net::NetLog::Source()); - MockConnectJob* job = new MockConnectJob(socket, handle, callback); + scoped_ptr<StreamSocket> socket = + client_socket_factory_->CreateTransportClientSocket( + AddressList(), net_log.net_log(), net::NetLog::Source()); + MockConnectJob* job = new MockConnectJob(socket.Pass(), handle, callback); job_list_.push_back(job); handle->set_pool_id(1); return job->Connect(); @@ -1759,11 +1762,12 @@ void MockTransportClientSocketPool::CancelRequest(const std::string& group_name, } } -void MockTransportClientSocketPool::ReleaseSocket(const std::string& group_name, - StreamSocket* socket, int id) { +void MockTransportClientSocketPool::ReleaseSocket( + const std::string& group_name, + scoped_ptr<StreamSocket> socket, + int id) { EXPECT_EQ(1, id); release_count_++; - delete socket; } DeterministicMockClientSocketFactory::DeterministicMockClientSocketFactory() {} @@ -1791,42 +1795,45 @@ MockSSLClientSocket* DeterministicMockClientSocketFactory:: return ssl_client_sockets_[index]; } -DatagramClientSocket* +scoped_ptr<DatagramClientSocket> DeterministicMockClientSocketFactory::CreateDatagramClientSocket( DatagramSocket::BindType bind_type, const RandIntCallback& rand_int_cb, net::NetLog* net_log, const NetLog::Source& source) { DeterministicSocketData* data_provider = mock_data().GetNext(); - DeterministicMockUDPClientSocket* socket = - new DeterministicMockUDPClientSocket(net_log, data_provider); + scoped_ptr<DeterministicMockUDPClientSocket> socket( + new DeterministicMockUDPClientSocket(net_log, data_provider)); data_provider->set_delegate(socket->AsWeakPtr()); - udp_client_sockets().push_back(socket); - return socket; + udp_client_sockets().push_back(socket.get()); + return socket.PassAs<DatagramClientSocket>(); } -StreamSocket* DeterministicMockClientSocketFactory::CreateTransportClientSocket( +scoped_ptr<StreamSocket> +DeterministicMockClientSocketFactory::CreateTransportClientSocket( const AddressList& addresses, net::NetLog* net_log, const net::NetLog::Source& source) { DeterministicSocketData* data_provider = mock_data().GetNext(); - DeterministicMockTCPClientSocket* socket = - new DeterministicMockTCPClientSocket(net_log, data_provider); + scoped_ptr<DeterministicMockTCPClientSocket> socket( + new DeterministicMockTCPClientSocket(net_log, data_provider)); data_provider->set_delegate(socket->AsWeakPtr()); - tcp_client_sockets().push_back(socket); - return socket; + tcp_client_sockets().push_back(socket.get()); + return socket.PassAs<StreamSocket>(); } -SSLClientSocket* DeterministicMockClientSocketFactory::CreateSSLClientSocket( - ClientSocketHandle* transport_socket, +scoped_ptr<SSLClientSocket> +DeterministicMockClientSocketFactory::CreateSSLClientSocket( + scoped_ptr<ClientSocketHandle> transport_socket, const HostPortPair& host_and_port, const SSLConfig& ssl_config, const SSLClientSocketContext& context) { - MockSSLClientSocket* socket = - new MockSSLClientSocket(transport_socket, host_and_port, ssl_config, - mock_ssl_data_.GetNext()); - ssl_client_sockets_.push_back(socket); - return socket; + scoped_ptr<MockSSLClientSocket> socket( + new MockSSLClientSocket(transport_socket.Pass(), + host_and_port, ssl_config, + mock_ssl_data_.GetNext())); + ssl_client_sockets_.push_back(socket.get()); + return socket.PassAs<SSLClientSocket>(); } void DeterministicMockClientSocketFactory::ClearSSLSessionCache() { @@ -1859,8 +1866,9 @@ void MockSOCKSClientSocketPool::CancelRequest( } void MockSOCKSClientSocketPool::ReleaseSocket(const std::string& group_name, - StreamSocket* socket, int id) { - return transport_pool_->ReleaseSocket(group_name, socket, id); + scoped_ptr<StreamSocket> socket, + int id) { + return transport_pool_->ReleaseSocket(group_name, socket.Pass(), id); } const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |