Index: trunk/src/ipc/ipc_channel_posix_unittest.cc |
=================================================================== |
--- trunk/src/ipc/ipc_channel_posix_unittest.cc (revision 273594) |
+++ trunk/src/ipc/ipc_channel_posix_unittest.cc (working copy) |
@@ -204,13 +204,12 @@ |
IPC::ChannelHandle handle(kChannelName); |
SetUpSocket(&handle, IPC::Channel::MODE_NAMED_SERVER); |
unlink(handle.name.c_str()); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateNamedServer(handle, NULL)); |
- ASSERT_TRUE(channel->Connect()); |
- ASSERT_TRUE(channel->AcceptsConnections()); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
- channel->ResetToAcceptingConnectionState(); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
+ IPC::Channel channel(handle, IPC::Channel::MODE_NAMED_SERVER, NULL); |
+ ASSERT_TRUE(channel.Connect()); |
+ ASSERT_TRUE(channel.AcceptsConnections()); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
+ channel.ResetToAcceptingConnectionState(); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
} |
TEST_F(IPCChannelPosixTest, BasicConnected) { |
@@ -222,18 +221,17 @@ |
base::FileDescriptor fd(pipe_fds[0], false); |
IPC::ChannelHandle handle(socket_name, fd); |
- scoped_ptr<IPC::Channel> channel(IPC::Channel::CreateServer(handle, NULL)); |
- ASSERT_TRUE(channel->Connect()); |
- ASSERT_FALSE(channel->AcceptsConnections()); |
- channel->Close(); |
+ IPC::Channel channel(handle, IPC::Channel::MODE_SERVER, NULL); |
+ ASSERT_TRUE(channel.Connect()); |
+ ASSERT_FALSE(channel.AcceptsConnections()); |
+ channel.Close(); |
ASSERT_TRUE(IGNORE_EINTR(close(pipe_fds[1])) == 0); |
// Make sure that we can use the socket that is created for us by |
// a standard channel. |
- scoped_ptr<IPC::Channel> channel2( |
- IPC::Channel::CreateServer(socket_name, NULL)); |
- ASSERT_TRUE(channel2->Connect()); |
- ASSERT_FALSE(channel2->AcceptsConnections()); |
+ IPC::Channel channel2(socket_name, IPC::Channel::MODE_SERVER, NULL); |
+ ASSERT_TRUE(channel2.Connect()); |
+ ASSERT_FALSE(channel2.AcceptsConnections()); |
} |
// If a connection closes right before a Send() call, we may end up closing |
@@ -243,17 +241,15 @@ |
IPCChannelPosixTestListener out_listener(true); |
IPCChannelPosixTestListener in_listener(true); |
IPC::ChannelHandle in_handle("IN"); |
- scoped_ptr<IPC::Channel> in_chan( |
- IPC::Channel::CreateServer(in_handle, &in_listener)); |
- base::FileDescriptor out_fd(in_chan->TakeClientFileDescriptor(), false); |
+ IPC::Channel in_chan(in_handle, IPC::Channel::MODE_SERVER, &in_listener); |
+ base::FileDescriptor out_fd(in_chan.TakeClientFileDescriptor(), false); |
IPC::ChannelHandle out_handle("OUT", out_fd); |
- scoped_ptr<IPC::Channel> out_chan( |
- IPC::Channel::CreateClient(out_handle, &out_listener)); |
- ASSERT_TRUE(in_chan->Connect()); |
- ASSERT_TRUE(out_chan->Connect()); |
- in_chan->Close(); // simulate remote process dying at an unfortunate time. |
+ IPC::Channel out_chan(out_handle, IPC::Channel::MODE_CLIENT, &out_listener); |
+ ASSERT_TRUE(in_chan.Connect()); |
+ ASSERT_TRUE(out_chan.Connect()); |
+ in_chan.Close(); // simulate remote process dying at an unfortunate time. |
// Send will fail, because it cannot write the message. |
- ASSERT_FALSE(out_chan->Send(new IPC::Message( |
+ ASSERT_FALSE(out_chan.Send(new IPC::Message( |
0, // routing_id |
kQuitMessage, // message type |
IPC::Message::PRIORITY_NORMAL))); |
@@ -268,15 +264,13 @@ |
IPCChannelPosixTestListener out_listener(true); |
IPCChannelPosixTestListener in_listener(true); |
IPC::ChannelHandle in_handle("IN"); |
- scoped_ptr<IPC::Channel> in_chan( |
- IPC::Channel::CreateServer(in_handle, &in_listener)); |
- base::FileDescriptor out_fd(in_chan->TakeClientFileDescriptor(), false); |
+ IPC::Channel in_chan(in_handle, IPC::Channel::MODE_SERVER, &in_listener); |
+ base::FileDescriptor out_fd(in_chan.TakeClientFileDescriptor(), false); |
IPC::ChannelHandle out_handle("OUT", out_fd); |
- scoped_ptr<IPC::Channel> out_chan( |
- IPC::Channel::CreateClient(out_handle, &out_listener)); |
- ASSERT_TRUE(in_chan->Connect()); |
- in_chan->Close(); // simulate remote process dying at an unfortunate time. |
- ASSERT_FALSE(out_chan->Connect()); |
+ IPC::Channel out_chan(out_handle, IPC::Channel::MODE_CLIENT, &out_listener); |
+ ASSERT_TRUE(in_chan.Connect()); |
+ in_chan.Close(); // simulate remote process dying at an unfortunate time. |
+ ASSERT_FALSE(out_chan.Connect()); |
SpinRunLoop(TestTimeouts::action_max_timeout()); |
ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, out_listener.status()); |
} |
@@ -286,27 +280,26 @@ |
IPCChannelPosixTestListener listener(false); |
IPC::ChannelHandle chan_handle(GetConnectionSocketName()); |
SetUpSocket(&chan_handle, IPC::Channel::MODE_NAMED_SERVER); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateNamedServer(chan_handle, &listener)); |
- ASSERT_TRUE(channel->Connect()); |
- ASSERT_TRUE(channel->AcceptsConnections()); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
+ IPC::Channel channel(chan_handle, IPC::Channel::MODE_NAMED_SERVER, &listener); |
+ ASSERT_TRUE(channel.Connect()); |
+ ASSERT_TRUE(channel.AcceptsConnections()); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
base::ProcessHandle handle = SpawnChild("IPCChannelPosixTestConnectionProc"); |
ASSERT_TRUE(handle); |
SpinRunLoop(TestTimeouts::action_max_timeout()); |
ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); |
- ASSERT_TRUE(channel->HasAcceptedConnection()); |
+ ASSERT_TRUE(channel.HasAcceptedConnection()); |
IPC::Message* message = new IPC::Message(0, // routing_id |
kQuitMessage, // message type |
IPC::Message::PRIORITY_NORMAL); |
- channel->Send(message); |
+ channel.Send(message); |
SpinRunLoop(TestTimeouts::action_timeout()); |
int exit_code = 0; |
EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code)); |
EXPECT_EQ(0, exit_code); |
ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
} |
TEST_F(IPCChannelPosixTest, ResetState) { |
@@ -316,44 +309,42 @@ |
IPCChannelPosixTestListener listener(false); |
IPC::ChannelHandle chan_handle(GetConnectionSocketName()); |
SetUpSocket(&chan_handle, IPC::Channel::MODE_NAMED_SERVER); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateNamedServer(chan_handle, &listener)); |
- ASSERT_TRUE(channel->Connect()); |
- ASSERT_TRUE(channel->AcceptsConnections()); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
+ IPC::Channel channel(chan_handle, IPC::Channel::MODE_NAMED_SERVER, &listener); |
+ ASSERT_TRUE(channel.Connect()); |
+ ASSERT_TRUE(channel.AcceptsConnections()); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
base::ProcessHandle handle = SpawnChild("IPCChannelPosixTestConnectionProc"); |
ASSERT_TRUE(handle); |
SpinRunLoop(TestTimeouts::action_max_timeout()); |
ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); |
- ASSERT_TRUE(channel->HasAcceptedConnection()); |
- channel->ResetToAcceptingConnectionState(); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
+ ASSERT_TRUE(channel.HasAcceptedConnection()); |
+ channel.ResetToAcceptingConnectionState(); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
base::ProcessHandle handle2 = SpawnChild("IPCChannelPosixTestConnectionProc"); |
ASSERT_TRUE(handle2); |
SpinRunLoop(TestTimeouts::action_max_timeout()); |
ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); |
- ASSERT_TRUE(channel->HasAcceptedConnection()); |
+ ASSERT_TRUE(channel.HasAcceptedConnection()); |
IPC::Message* message = new IPC::Message(0, // routing_id |
kQuitMessage, // message type |
IPC::Message::PRIORITY_NORMAL); |
- channel->Send(message); |
+ channel.Send(message); |
SpinRunLoop(TestTimeouts::action_timeout()); |
EXPECT_TRUE(base::KillProcess(handle, 0, false)); |
int exit_code = 0; |
EXPECT_TRUE(base::WaitForExitCode(handle2, &exit_code)); |
EXPECT_EQ(0, exit_code); |
ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
} |
TEST_F(IPCChannelPosixTest, BadChannelName) { |
// Test empty name |
IPC::ChannelHandle handle(""); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateNamedServer(handle, NULL)); |
- ASSERT_FALSE(channel->Connect()); |
+ IPC::Channel channel(handle, IPC::Channel::MODE_NAMED_SERVER, NULL); |
+ ASSERT_FALSE(channel.Connect()); |
// Test name that is too long. |
const char *kTooLongName = "This_is_a_very_long_name_to_proactively_implement" |
@@ -365,9 +356,8 @@ |
"leading-edge_processes"; |
EXPECT_GE(strlen(kTooLongName), IPC::kMaxSocketNameLength); |
IPC::ChannelHandle handle2(kTooLongName); |
- scoped_ptr<IPC::Channel> channel2( |
- IPC::Channel::CreateNamedServer(handle2, NULL)); |
- EXPECT_FALSE(channel2->Connect()); |
+ IPC::Channel channel2(handle2, IPC::Channel::MODE_NAMED_SERVER, NULL); |
+ EXPECT_FALSE(channel2.Connect()); |
} |
TEST_F(IPCChannelPosixTest, MultiConnection) { |
@@ -376,17 +366,16 @@ |
IPCChannelPosixTestListener listener(false); |
IPC::ChannelHandle chan_handle(GetConnectionSocketName()); |
SetUpSocket(&chan_handle, IPC::Channel::MODE_NAMED_SERVER); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateNamedServer(chan_handle, &listener)); |
- ASSERT_TRUE(channel->Connect()); |
- ASSERT_TRUE(channel->AcceptsConnections()); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
+ IPC::Channel channel(chan_handle, IPC::Channel::MODE_NAMED_SERVER, &listener); |
+ ASSERT_TRUE(channel.Connect()); |
+ ASSERT_TRUE(channel.AcceptsConnections()); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
base::ProcessHandle handle = SpawnChild("IPCChannelPosixTestConnectionProc"); |
ASSERT_TRUE(handle); |
SpinRunLoop(TestTimeouts::action_max_timeout()); |
ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); |
- ASSERT_TRUE(channel->HasAcceptedConnection()); |
+ ASSERT_TRUE(channel.HasAcceptedConnection()); |
base::ProcessHandle handle2 = SpawnChild("IPCChannelPosixFailConnectionProc"); |
ASSERT_TRUE(handle2); |
SpinRunLoop(TestTimeouts::action_max_timeout()); |
@@ -394,16 +383,16 @@ |
EXPECT_TRUE(base::WaitForExitCode(handle2, &exit_code)); |
EXPECT_EQ(exit_code, 0); |
ASSERT_EQ(IPCChannelPosixTestListener::DENIED, listener.status()); |
- ASSERT_TRUE(channel->HasAcceptedConnection()); |
+ ASSERT_TRUE(channel.HasAcceptedConnection()); |
IPC::Message* message = new IPC::Message(0, // routing_id |
kQuitMessage, // message type |
IPC::Message::PRIORITY_NORMAL); |
- channel->Send(message); |
+ channel.Send(message); |
SpinRunLoop(TestTimeouts::action_timeout()); |
EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code)); |
EXPECT_EQ(exit_code, 0); |
ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); |
- ASSERT_FALSE(channel->HasAcceptedConnection()); |
+ ASSERT_FALSE(channel.HasAcceptedConnection()); |
} |
TEST_F(IPCChannelPosixTest, DoubleServer) { |
@@ -411,21 +400,18 @@ |
IPCChannelPosixTestListener listener(false); |
IPCChannelPosixTestListener listener2(false); |
IPC::ChannelHandle chan_handle(GetConnectionSocketName()); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateServer(chan_handle, &listener)); |
- scoped_ptr<IPC::Channel> channel2( |
- IPC::Channel::CreateServer(chan_handle, &listener2)); |
- ASSERT_TRUE(channel->Connect()); |
- ASSERT_FALSE(channel2->Connect()); |
+ IPC::Channel channel(chan_handle, IPC::Channel::MODE_SERVER, &listener); |
+ IPC::Channel channel2(chan_handle, IPC::Channel::MODE_SERVER, &listener2); |
+ ASSERT_TRUE(channel.Connect()); |
+ ASSERT_FALSE(channel2.Connect()); |
} |
TEST_F(IPCChannelPosixTest, BadMode) { |
// Test setting up two servers with a bad mode. |
IPCChannelPosixTestListener listener(false); |
IPC::ChannelHandle chan_handle(GetConnectionSocketName()); |
- scoped_ptr<IPC::Channel> channel(IPC::Channel::CreateByModeForProxy( |
- chan_handle, IPC::Channel::MODE_NONE, &listener)); |
- ASSERT_FALSE(channel->Connect()); |
+ IPC::Channel channel(chan_handle, IPC::Channel::MODE_NONE, &listener); |
+ ASSERT_FALSE(channel.Connect()); |
} |
TEST_F(IPCChannelPosixTest, IsNamedServerInitialized) { |
@@ -435,11 +421,10 @@ |
ASSERT_TRUE(base::DeleteFile(base::FilePath(connection_socket_name), false)); |
ASSERT_FALSE(IPC::Channel::IsNamedServerInitialized( |
connection_socket_name)); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateNamedServer(chan_handle, &listener)); |
+ IPC::Channel channel(chan_handle, IPC::Channel::MODE_NAMED_SERVER, &listener); |
ASSERT_TRUE(IPC::Channel::IsNamedServerInitialized( |
connection_socket_name)); |
- channel->Close(); |
+ channel.Close(); |
ASSERT_FALSE(IPC::Channel::IsNamedServerInitialized( |
connection_socket_name)); |
} |
@@ -450,9 +435,8 @@ |
IPCChannelPosixTestListener listener(true); |
IPC::ChannelHandle handle(IPCChannelPosixTest::GetConnectionSocketName()); |
IPCChannelPosixTest::SetUpSocket(&handle, IPC::Channel::MODE_NAMED_CLIENT); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateNamedClient(handle, &listener)); |
- EXPECT_TRUE(channel->Connect()); |
+ IPC::Channel channel(handle, IPC::Channel::MODE_NAMED_CLIENT, &listener); |
+ EXPECT_TRUE(channel.Connect()); |
IPCChannelPosixTest::SpinRunLoop(TestTimeouts::action_max_timeout()); |
EXPECT_EQ(IPCChannelPosixTestListener::MESSAGE_RECEIVED, listener.status()); |
return 0; |
@@ -464,15 +448,14 @@ |
IPCChannelPosixTestListener listener(false); |
IPC::ChannelHandle handle(IPCChannelPosixTest::GetConnectionSocketName()); |
IPCChannelPosixTest::SetUpSocket(&handle, IPC::Channel::MODE_NAMED_CLIENT); |
- scoped_ptr<IPC::Channel> channel( |
- IPC::Channel::CreateNamedClient(handle, &listener)); |
+ IPC::Channel channel(handle, IPC::Channel::MODE_NAMED_CLIENT, &listener); |
// In this case connect may succeed or fail depending on if the packet |
// actually gets sent at sendmsg. Since we never delay on send, we may not |
// see the error. However even if connect succeeds, eventually we will get an |
// error back since the channel will be closed when we attempt to read from |
// it. |
- bool connected = channel->Connect(); |
+ bool connected = channel.Connect(); |
if (connected) { |
IPCChannelPosixTest::SpinRunLoop(TestTimeouts::action_max_timeout()); |
EXPECT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); |