Chromium Code Reviews| Index: webrtc/base/virtualsocket_unittest.cc |
| diff --git a/webrtc/base/virtualsocket_unittest.cc b/webrtc/base/virtualsocket_unittest.cc |
| index e2f1d05f16f446fdaf4b95c36074978cff47606f..bf5be4e4f1439a19af2bddbbfbb0dfebbea0a401 100644 |
| --- a/webrtc/base/virtualsocket_unittest.cc |
| +++ b/webrtc/base/virtualsocket_unittest.cc |
| @@ -17,8 +17,9 @@ |
| #include <memory> |
| #include "webrtc/base/arraysize.h" |
| -#include "webrtc/base/logging.h" |
| #include "webrtc/base/gunit.h" |
| +#include "webrtc/base/logging.h" |
| +#include "webrtc/base/ptr_util.h" |
| #include "webrtc/base/testclient.h" |
| #include "webrtc/base/testutils.h" |
| #include "webrtc/base/thread.h" |
| @@ -38,7 +39,7 @@ using webrtc::testing::StreamSink; |
| struct Sender : public MessageHandler { |
| Sender(Thread* th, AsyncSocket* s, uint32_t rt) |
| : thread(th), |
| - socket(new AsyncUDPSocket(s)), |
| + socket(MakeUnique<AsyncUDPSocket>(s)), |
| done(false), |
| rate(rt), |
| count(0) { |
| @@ -84,7 +85,7 @@ struct Sender : public MessageHandler { |
| struct Receiver : public MessageHandler, public sigslot::has_slots<> { |
| Receiver(Thread* th, AsyncSocket* s, uint32_t bw) |
| : thread(th), |
| - socket(new AsyncUDPSocket(s)), |
| + socket(MakeUnique<AsyncUDPSocket>(s)), |
| bandwidth(bw), |
| done(false), |
| count(0), |
| @@ -145,7 +146,7 @@ struct Receiver : public MessageHandler, public sigslot::has_slots<> { |
| class VirtualSocketServerTest : public testing::Test { |
| public: |
| VirtualSocketServerTest() |
| - : ss_(new VirtualSocketServer(nullptr)), |
| + : ss_(nullptr), |
| kIPv4AnyAddress(IPAddress(INADDR_ANY), 0), |
| kIPv6AnyAddress(IPAddress(in6addr_any), 0) {} |
| @@ -172,23 +173,23 @@ class VirtualSocketServerTest : public testing::Test { |
| // the default route as the source address. Also, it can receive packets sent |
| // to the default route. |
| void TestDefaultRoute(const IPAddress& default_route) { |
| - ss_->SetDefaultRoute(default_route); |
| + ss_.SetDefaultRoute(default_route); |
| // Create client1 bound to the any address. |
| AsyncSocket* socket = |
|
Taylor Brandstetter
2017/05/07 21:37:00
Would be better to use MakeUnique here rather than
nisse-webrtc
2017/05/08 07:51:15
I think AsyncUDPSocket takes over ownership, via a
kwiberg-webrtc
2017/05/08 10:21:26
I would definitely say that using unique_ptr here
|
| - ss_->CreateAsyncSocket(default_route.family(), SOCK_DGRAM); |
| + ss_.CreateAsyncSocket(default_route.family(), SOCK_DGRAM); |
| socket->Bind(EmptySocketAddressWithFamily(default_route.family())); |
| SocketAddress client1_any_addr = socket->GetLocalAddress(); |
| EXPECT_TRUE(client1_any_addr.IsAnyIP()); |
| - TestClient* client1 = new TestClient(new AsyncUDPSocket(socket)); |
| + auto client1 = MakeUnique<TestClient>(MakeUnique<AsyncUDPSocket>(socket)); |
| // Create client2 bound to the default route. |
| AsyncSocket* socket2 = |
| - ss_->CreateAsyncSocket(default_route.family(), SOCK_DGRAM); |
| + ss_.CreateAsyncSocket(default_route.family(), SOCK_DGRAM); |
| socket2->Bind(SocketAddress(default_route, 0)); |
| SocketAddress client2_addr = socket2->GetLocalAddress(); |
| EXPECT_FALSE(client2_addr.IsAnyIP()); |
| - TestClient* client2 = new TestClient(new AsyncUDPSocket(socket2)); |
| + auto client2 = MakeUnique<TestClient>(MakeUnique<AsyncUDPSocket>(socket2)); |
| // Client1 sends to client2, client2 should see the default route as |
| // client1's address. |
| @@ -204,17 +205,17 @@ class VirtualSocketServerTest : public testing::Test { |
| } |
| void BasicTest(const SocketAddress& initial_addr) { |
| - AsyncSocket* socket = ss_->CreateAsyncSocket(initial_addr.family(), |
| - SOCK_DGRAM); |
| + AsyncSocket* socket = |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| socket->Bind(initial_addr); |
| SocketAddress server_addr = socket->GetLocalAddress(); |
| // Make sure VSS didn't switch families on us. |
| EXPECT_EQ(server_addr.family(), initial_addr.family()); |
| - TestClient* client1 = new TestClient(new AsyncUDPSocket(socket)); |
| + auto client1 = MakeUnique<TestClient>(MakeUnique<AsyncUDPSocket>(socket)); |
| AsyncSocket* socket2 = |
| - ss_->CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| - TestClient* client2 = new TestClient(new AsyncUDPSocket(socket2)); |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| + auto client2 = MakeUnique<TestClient>(MakeUnique<AsyncUDPSocket>(socket2)); |
| SocketAddress client2_addr; |
| EXPECT_EQ(3, client2->SendTo("foo", 3, server_addr)); |
| @@ -227,7 +228,8 @@ class VirtualSocketServerTest : public testing::Test { |
| SocketAddress empty = EmptySocketAddressWithFamily(initial_addr.family()); |
| for (int i = 0; i < 10; i++) { |
| - client2 = new TestClient(AsyncUDPSocket::Create(ss_, empty)); |
| + client2 = MakeUnique<TestClient>( |
| + WrapUnique(AsyncUDPSocket::Create(&ss_, empty))); |
| SocketAddress next_client2_addr; |
| EXPECT_EQ(3, client2->SendTo("foo", 3, server_addr)); |
| @@ -252,15 +254,15 @@ class VirtualSocketServerTest : public testing::Test { |
| EmptySocketAddressWithFamily(initial_addr.family()); |
| // Create client |
| - AsyncSocket* client = ss_->CreateAsyncSocket(initial_addr.family(), |
| - SOCK_STREAM); |
| + AsyncSocket* client = |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| sink.Monitor(client); |
| EXPECT_EQ(client->GetState(), AsyncSocket::CS_CLOSED); |
| EXPECT_TRUE(client->GetLocalAddress().IsNil()); |
| // Create server |
| - AsyncSocket* server = ss_->CreateAsyncSocket(initial_addr.family(), |
| - SOCK_STREAM); |
| + AsyncSocket* server = |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| sink.Monitor(server); |
| EXPECT_NE(0, server->Listen(5)); // Bind required |
| EXPECT_EQ(0, server->Bind(initial_addr)); |
| @@ -284,7 +286,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_FALSE(sink.Check(client, SSE_OPEN)); |
| EXPECT_FALSE(sink.Check(client, SSE_CLOSE)); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // Client still connecting |
| EXPECT_EQ(client->GetState(), AsyncSocket::CS_CONNECTING); |
| @@ -302,7 +304,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(accepted->GetLocalAddress(), server->GetLocalAddress()); |
| EXPECT_EQ(accepted->GetRemoteAddress(), client->GetLocalAddress()); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // Client has connected |
| EXPECT_EQ(client->GetState(), AsyncSocket::CS_CONNECTED); |
| @@ -320,20 +322,20 @@ class VirtualSocketServerTest : public testing::Test { |
| EmptySocketAddressWithFamily(initial_addr.family()); |
| // Create client |
| - AsyncSocket* client = ss_->CreateAsyncSocket(initial_addr.family(), |
| - SOCK_STREAM); |
| + AsyncSocket* client = |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| sink.Monitor(client); |
| // Create server |
| - AsyncSocket* server = ss_->CreateAsyncSocket(initial_addr.family(), |
| - SOCK_STREAM); |
| + AsyncSocket* server = |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| sink.Monitor(server); |
| EXPECT_EQ(0, server->Bind(initial_addr)); |
| EXPECT_EQ(server->GetLocalAddress().family(), initial_addr.family()); |
| // Attempt connect to non-listening socket |
| EXPECT_EQ(0, client->Connect(server->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // No pending server connections |
| EXPECT_FALSE(sink.Check(server, SSE_READ)); |
| @@ -355,10 +357,10 @@ class VirtualSocketServerTest : public testing::Test { |
| // Create client and server |
| std::unique_ptr<AsyncSocket> client( |
| - ss_->CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| sink.Monitor(client.get()); |
| std::unique_ptr<AsyncSocket> server( |
| - ss_->CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| sink.Monitor(server.get()); |
| // Initiate connect |
| @@ -372,13 +374,13 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_FALSE(sink.Check(server.get(), SSE_READ)); |
| server->Close(); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // Result: connection failed |
| EXPECT_EQ(client->GetState(), AsyncSocket::CS_CLOSED); |
| EXPECT_TRUE(sink.Check(client.get(), SSE_ERROR)); |
| - server.reset(ss_->CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| + server.reset(ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| sink.Monitor(server.get()); |
| // Initiate connect |
| @@ -388,20 +390,20 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(0, server->Listen(5)); |
| EXPECT_EQ(0, client->Connect(server->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // Server close while socket is in accept queue |
| EXPECT_TRUE(sink.Check(server.get(), SSE_READ)); |
| server->Close(); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // Result: connection failed |
| EXPECT_EQ(client->GetState(), AsyncSocket::CS_CLOSED); |
| EXPECT_TRUE(sink.Check(client.get(), SSE_ERROR)); |
| // New server |
| - server.reset(ss_->CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| + server.reset(ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| sink.Monitor(server.get()); |
| // Initiate connect |
| @@ -411,7 +413,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(0, server->Listen(5)); |
| EXPECT_EQ(0, client->Connect(server->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // Server accepts connection |
| EXPECT_TRUE(sink.Check(server.get(), SSE_READ)); |
| @@ -426,7 +428,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(client->GetState(), AsyncSocket::CS_CONNECTING); |
| client->Close(); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // Result: accepted socket closes |
| EXPECT_EQ(accepted->GetState(), AsyncSocket::CS_CLOSED); |
| @@ -439,13 +441,13 @@ class VirtualSocketServerTest : public testing::Test { |
| const SocketAddress kEmptyAddr; |
| // Create clients |
| - AsyncSocket* a = ss_->CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| + AsyncSocket* a = ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| sink.Monitor(a); |
| a->Bind(initial_addr); |
| EXPECT_EQ(a->GetLocalAddress().family(), initial_addr.family()); |
| std::unique_ptr<AsyncSocket> b( |
| - ss_->CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM)); |
| sink.Monitor(b.get()); |
| b->Bind(initial_addr); |
| EXPECT_EQ(b->GetLocalAddress().family(), initial_addr.family()); |
| @@ -453,7 +455,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(0, a->Connect(b->GetLocalAddress())); |
| EXPECT_EQ(0, b->Connect(a->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_TRUE(sink.Check(a, SSE_OPEN)); |
| EXPECT_EQ(a->GetState(), AsyncSocket::CS_CONNECTED); |
| @@ -467,7 +469,7 @@ class VirtualSocketServerTest : public testing::Test { |
| b->Close(); |
| EXPECT_EQ(1, a->Send("b", 1)); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| char buffer[10]; |
| EXPECT_FALSE(sink.Check(b.get(), SSE_READ)); |
| @@ -488,12 +490,12 @@ class VirtualSocketServerTest : public testing::Test { |
| const SocketAddress kEmptyAddr; |
| // Connect two sockets |
| - AsyncSocket* a = ss_->CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| + AsyncSocket* a = ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| sink.Monitor(a); |
| a->Bind(initial_addr); |
| EXPECT_EQ(a->GetLocalAddress().family(), initial_addr.family()); |
| - AsyncSocket* b = ss_->CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| + AsyncSocket* b = ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| sink.Monitor(b); |
| b->Bind(initial_addr); |
| EXPECT_EQ(b->GetLocalAddress().family(), initial_addr.family()); |
| @@ -501,11 +503,11 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(0, a->Connect(b->GetLocalAddress())); |
| EXPECT_EQ(0, b->Connect(a->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| const size_t kBufferSize = 2000; |
| - ss_->set_send_buffer_capacity(kBufferSize); |
| - ss_->set_recv_buffer_capacity(kBufferSize); |
| + ss_.set_send_buffer_capacity(kBufferSize); |
| + ss_.set_recv_buffer_capacity(kBufferSize); |
| const size_t kDataSize = 5000; |
| char send_buffer[kDataSize], recv_buffer[kDataSize]; |
| @@ -519,7 +521,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(static_cast<int>(kBufferSize), result); |
| send_pos += result; |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_FALSE(sink.Check(a, SSE_WRITE)); |
| EXPECT_TRUE(sink.Check(b, SSE_READ)); |
| @@ -528,7 +530,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(static_cast<int>(kBufferSize), result); |
| send_pos += result; |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_FALSE(sink.Check(a, SSE_WRITE)); |
| EXPECT_FALSE(sink.Check(b, SSE_READ)); |
| @@ -542,7 +544,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(500, result); |
| recv_pos += result; |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_TRUE(sink.Check(a, SSE_WRITE)); |
| EXPECT_TRUE(sink.Check(b, SSE_READ)); |
| @@ -562,7 +564,7 @@ class VirtualSocketServerTest : public testing::Test { |
| recv_pos += result; |
| } |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_TRUE(sink.Check(b, SSE_READ)); |
| // Continue to empty the recv buffer |
| @@ -581,7 +583,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(500, result); |
| send_pos += result; |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_TRUE(sink.Check(b, SSE_READ)); |
| // Receive the last of the data |
| @@ -595,7 +597,7 @@ class VirtualSocketServerTest : public testing::Test { |
| recv_pos += result; |
| } |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_FALSE(sink.Check(b, SSE_READ)); |
| // The received data matches the sent data |
| @@ -608,10 +610,8 @@ class VirtualSocketServerTest : public testing::Test { |
| const SocketAddress kEmptyAddr; |
| // Connect two sockets |
| - AsyncSocket* a = ss_->CreateAsyncSocket(initial_addr.family(), |
| - SOCK_STREAM); |
| - AsyncSocket* b = ss_->CreateAsyncSocket(initial_addr.family(), |
| - SOCK_STREAM); |
| + AsyncSocket* a = ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| + AsyncSocket* b = ss_.CreateAsyncSocket(initial_addr.family(), SOCK_STREAM); |
| a->Bind(initial_addr); |
| EXPECT_EQ(a->GetLocalAddress().family(), initial_addr.family()); |
| @@ -620,7 +620,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(0, a->Connect(b->GetLocalAddress())); |
| EXPECT_EQ(0, b->Connect(a->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| // First, deliver all packets in 0 ms. |
| char buffer[2] = { 0, 0 }; |
| @@ -630,7 +630,7 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_EQ(1, a->Send(buffer, 1)); |
| } |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| for (char i = 0; i < cNumPackets; ++i) { |
| EXPECT_EQ(1, b->Recv(buffer, sizeof(buffer), nullptr)); |
| @@ -641,16 +641,16 @@ class VirtualSocketServerTest : public testing::Test { |
| const uint32_t mean = 50; |
| const uint32_t stddev = 50; |
| - ss_->set_delay_mean(mean); |
| - ss_->set_delay_stddev(stddev); |
| - ss_->UpdateDelayDistribution(); |
| + ss_.set_delay_mean(mean); |
| + ss_.set_delay_stddev(stddev); |
| + ss_.UpdateDelayDistribution(); |
| for (char i = 0; i < cNumPackets; ++i) { |
| buffer[0] = 'A' + i; |
| EXPECT_EQ(1, a->Send(buffer, 1)); |
| } |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| for (char i = 0; i < cNumPackets; ++i) { |
| EXPECT_EQ(1, b->Recv(buffer, sizeof(buffer), nullptr)); |
| @@ -663,9 +663,9 @@ class VirtualSocketServerTest : public testing::Test { |
| // address. |
| void BandwidthTest(const SocketAddress& initial_addr) { |
| AsyncSocket* send_socket = |
| - ss_->CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| AsyncSocket* recv_socket = |
| - ss_->CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| ASSERT_EQ(0, send_socket->Bind(initial_addr)); |
| ASSERT_EQ(0, recv_socket->Bind(initial_addr)); |
| EXPECT_EQ(send_socket->GetLocalAddress().family(), initial_addr.family()); |
| @@ -673,7 +673,7 @@ class VirtualSocketServerTest : public testing::Test { |
| ASSERT_EQ(0, send_socket->Connect(recv_socket->GetLocalAddress())); |
| uint32_t bandwidth = 64 * 1024; |
| - ss_->set_bandwidth(bandwidth); |
| + ss_.set_bandwidth(bandwidth); |
| Thread* pthMain = Thread::Current(); |
| Sender sender(pthMain, send_socket, 80 * 1024); |
| @@ -686,7 +686,7 @@ class VirtualSocketServerTest : public testing::Test { |
| ASSERT_TRUE(receiver.count >= 5 * 3 * bandwidth / 4); |
| ASSERT_TRUE(receiver.count <= 6 * bandwidth); // queue could drain for 1s |
| - ss_->set_bandwidth(0); |
| + ss_.set_bandwidth(0); |
| } |
| // It is important that initial_addr's port has to be 0 such that the |
| @@ -700,14 +700,14 @@ class VirtualSocketServerTest : public testing::Test { |
| const uint32_t mean = 2000; |
| const uint32_t stddev = 500; |
| - ss_->set_delay_mean(mean); |
| - ss_->set_delay_stddev(stddev); |
| - ss_->UpdateDelayDistribution(); |
| + ss_.set_delay_mean(mean); |
| + ss_.set_delay_stddev(stddev); |
| + ss_.UpdateDelayDistribution(); |
| AsyncSocket* send_socket = |
| - ss_->CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| AsyncSocket* recv_socket = |
| - ss_->CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| + ss_.CreateAsyncSocket(initial_addr.family(), SOCK_DGRAM); |
| ASSERT_EQ(0, send_socket->Bind(initial_addr)); |
| ASSERT_EQ(0, recv_socket->Bind(initial_addr)); |
| EXPECT_EQ(send_socket->GetLocalAddress().family(), initial_addr.family()); |
| @@ -722,7 +722,7 @@ class VirtualSocketServerTest : public testing::Test { |
| pthMain->ProcessMessages(10000); |
| sender.done = receiver.done = true; |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| const double sample_mean = receiver.sum / receiver.samples; |
| double num = |
| @@ -737,9 +737,9 @@ class VirtualSocketServerTest : public testing::Test { |
| EXPECT_NEAR(mean, sample_mean, 0.15 * mean); |
| EXPECT_NEAR(stddev, sample_stddev, 0.15 * stddev); |
| - ss_->set_delay_mean(0); |
| - ss_->set_delay_stddev(0); |
| - ss_->UpdateDelayDistribution(); |
| + ss_.set_delay_mean(0); |
| + ss_.set_delay_stddev(0); |
| + ss_.UpdateDelayDistribution(); |
| } |
| // Test cross-family communication between a client bound to client_addr and a |
| @@ -753,8 +753,8 @@ class VirtualSocketServerTest : public testing::Test { |
| const SocketAddress kEmptyAddr; |
| // Client gets a IPv4 address |
| - AsyncSocket* client = ss_->CreateAsyncSocket(client_addr.family(), |
| - SOCK_STREAM); |
| + AsyncSocket* client = |
| + ss_.CreateAsyncSocket(client_addr.family(), SOCK_STREAM); |
| sink.Monitor(client); |
| EXPECT_EQ(client->GetState(), AsyncSocket::CS_CLOSED); |
| EXPECT_EQ(client->GetLocalAddress(), kEmptyAddr); |
| @@ -762,26 +762,26 @@ class VirtualSocketServerTest : public testing::Test { |
| // Server gets a non-mapped non-any IPv6 address. |
| // IPv4 sockets should not be able to connect to this. |
| - AsyncSocket* server = ss_->CreateAsyncSocket(server_addr.family(), |
| - SOCK_STREAM); |
| + AsyncSocket* server = |
| + ss_.CreateAsyncSocket(server_addr.family(), SOCK_STREAM); |
| sink.Monitor(server); |
| server->Bind(server_addr); |
| server->Listen(5); |
| if (shouldSucceed) { |
| EXPECT_EQ(0, client->Connect(server->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_TRUE(sink.Check(server, SSE_READ)); |
| Socket* accepted = server->Accept(&accept_address); |
| EXPECT_TRUE(nullptr != accepted); |
| EXPECT_NE(kEmptyAddr, accept_address); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_TRUE(sink.Check(client, SSE_OPEN)); |
| EXPECT_EQ(client->GetRemoteAddress(), server->GetLocalAddress()); |
| } else { |
| // Check that the connection failed. |
| EXPECT_EQ(-1, client->Connect(server->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_FALSE(sink.Check(server, SSE_READ)); |
| EXPECT_TRUE(nullptr == server->Accept(&accept_address)); |
| @@ -798,14 +798,14 @@ class VirtualSocketServerTest : public testing::Test { |
| void CrossFamilyDatagramTest(const SocketAddress& client_addr, |
| const SocketAddress& server_addr, |
| bool shouldSucceed) { |
| - AsyncSocket* socket = ss_->CreateAsyncSocket(SOCK_DGRAM); |
| + AsyncSocket* socket = ss_.CreateAsyncSocket(SOCK_DGRAM); |
| socket->Bind(server_addr); |
| SocketAddress bound_server_addr = socket->GetLocalAddress(); |
| - TestClient* client1 = new TestClient(new AsyncUDPSocket(socket)); |
| + auto client1 = MakeUnique<TestClient>(MakeUnique<AsyncUDPSocket>(socket)); |
| - AsyncSocket* socket2 = ss_->CreateAsyncSocket(SOCK_DGRAM); |
| + AsyncSocket* socket2 = ss_.CreateAsyncSocket(SOCK_DGRAM); |
| socket2->Bind(client_addr); |
| - TestClient* client2 = new TestClient(new AsyncUDPSocket(socket2)); |
| + auto client2 = MakeUnique<TestClient>(MakeUnique<AsyncUDPSocket>(socket2)); |
| SocketAddress client2_addr; |
| if (shouldSucceed) { |
| @@ -822,12 +822,10 @@ class VirtualSocketServerTest : public testing::Test { |
| } |
| protected: |
| - virtual void SetUp() { |
| - Thread::Current()->set_socketserver(ss_); |
| - } |
| + virtual void SetUp() { Thread::Current()->set_socketserver(&ss_); } |
| virtual void TearDown() { Thread::Current()->set_socketserver(nullptr); } |
| - VirtualSocketServer* ss_; |
| + VirtualSocketServer ss_; |
| const SocketAddress kIPv4AnyAddress; |
| const SocketAddress kIPv6AnyAddress; |
| }; |
| @@ -1025,33 +1023,33 @@ TEST_F(VirtualSocketServerTest, CanSendDatagramFromUnboundIPv6ToIPv4Any) { |
| TEST_F(VirtualSocketServerTest, SetSendingBlockedWithUdpSocket) { |
| AsyncSocket* socket1 = |
| - ss_->CreateAsyncSocket(kIPv4AnyAddress.family(), SOCK_DGRAM); |
| + ss_.CreateAsyncSocket(kIPv4AnyAddress.family(), SOCK_DGRAM); |
| AsyncSocket* socket2 = |
| - ss_->CreateAsyncSocket(kIPv4AnyAddress.family(), SOCK_DGRAM); |
| + ss_.CreateAsyncSocket(kIPv4AnyAddress.family(), SOCK_DGRAM); |
| socket1->Bind(kIPv4AnyAddress); |
| socket2->Bind(kIPv4AnyAddress); |
| - TestClient* client1 = new TestClient(new AsyncUDPSocket(socket1)); |
| + auto client1 = MakeUnique<TestClient>(MakeUnique<AsyncUDPSocket>(socket1)); |
| - ss_->SetSendingBlocked(true); |
| + ss_.SetSendingBlocked(true); |
| EXPECT_EQ(-1, client1->SendTo("foo", 3, socket2->GetLocalAddress())); |
| EXPECT_TRUE(socket1->IsBlocking()); |
| EXPECT_EQ(0, client1->ready_to_send_count()); |
| - ss_->SetSendingBlocked(false); |
| + ss_.SetSendingBlocked(false); |
| EXPECT_EQ(1, client1->ready_to_send_count()); |
| EXPECT_EQ(3, client1->SendTo("foo", 3, socket2->GetLocalAddress())); |
| } |
| TEST_F(VirtualSocketServerTest, SetSendingBlockedWithTcpSocket) { |
| constexpr size_t kBufferSize = 1024; |
| - ss_->set_send_buffer_capacity(kBufferSize); |
| - ss_->set_recv_buffer_capacity(kBufferSize); |
| + ss_.set_send_buffer_capacity(kBufferSize); |
| + ss_.set_recv_buffer_capacity(kBufferSize); |
| StreamSink sink; |
| AsyncSocket* socket1 = |
| - ss_->CreateAsyncSocket(kIPv4AnyAddress.family(), SOCK_STREAM); |
| + ss_.CreateAsyncSocket(kIPv4AnyAddress.family(), SOCK_STREAM); |
| AsyncSocket* socket2 = |
| - ss_->CreateAsyncSocket(kIPv4AnyAddress.family(), SOCK_STREAM); |
| + ss_.CreateAsyncSocket(kIPv4AnyAddress.family(), SOCK_STREAM); |
| sink.Monitor(socket1); |
| sink.Monitor(socket2); |
| socket1->Bind(kIPv4AnyAddress); |
| @@ -1060,14 +1058,14 @@ TEST_F(VirtualSocketServerTest, SetSendingBlockedWithTcpSocket) { |
| // Connect sockets. |
| EXPECT_EQ(0, socket1->Connect(socket2->GetLocalAddress())); |
| EXPECT_EQ(0, socket2->Connect(socket1->GetLocalAddress())); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| char data[kBufferSize] = {}; |
| // First Send call will fill the send buffer but not send anything. |
| - ss_->SetSendingBlocked(true); |
| + ss_.SetSendingBlocked(true); |
| EXPECT_EQ(static_cast<int>(kBufferSize), socket1->Send(data, kBufferSize)); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_FALSE(sink.Check(socket1, SSE_WRITE)); |
| EXPECT_FALSE(sink.Check(socket2, SSE_READ)); |
| EXPECT_FALSE(socket1->IsBlocking()); |
| @@ -1080,8 +1078,8 @@ TEST_F(VirtualSocketServerTest, SetSendingBlockedWithTcpSocket) { |
| // When sending is unblocked, the buffered data should be sent and |
| // SignalWriteEvent should fire. |
| - ss_->SetSendingBlocked(false); |
| - ss_->ProcessMessagesUntilIdle(); |
| + ss_.SetSendingBlocked(false); |
| + ss_.ProcessMessagesUntilIdle(); |
| EXPECT_TRUE(sink.Check(socket1, SSE_WRITE)); |
| EXPECT_TRUE(sink.Check(socket2, SSE_READ)); |
| } |