| Index: ipc/ipc_channel_posix_unittest.cc
|
| diff --git a/ipc/ipc_channel_posix_unittest.cc b/ipc/ipc_channel_posix_unittest.cc
|
| index b4ec401210b9b13bee32388a73327b71b4aa96eb..24fe2b0cefa78b277cc2e5b0f61d0cc83f5a82c1 100644
|
| --- a/ipc/ipc_channel_posix_unittest.cc
|
| +++ b/ipc/ipc_channel_posix_unittest.cc
|
| @@ -17,6 +17,7 @@
|
| #include "base/file_util.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/message_loop.h"
|
| +#include "base/path_service.h"
|
| #include "base/test/multiprocess_test.h"
|
| #include "base/test/test_timeouts.h"
|
| #include "testing/multiprocess_func_list.h"
|
| @@ -94,10 +95,11 @@ class IPCChannelPosixTestListener : public IPC::Channel::Listener {
|
|
|
| class IPCChannelPosixTest : public base::MultiProcessTest {
|
| public:
|
| - static const char kConnectionSocketTestName[];
|
| static void SetUpSocket(IPC::ChannelHandle *handle,
|
| IPC::Channel::Mode mode);
|
| static void SpinRunLoop(int milliseconds);
|
| + static const std::string GetConnectionSocketName();
|
| + static const std::string GetChannelDirName();
|
|
|
| protected:
|
| virtual void SetUp();
|
| @@ -107,13 +109,19 @@ private:
|
| scoped_ptr<MessageLoopForIO> message_loop_;
|
| };
|
|
|
| +const std::string IPCChannelPosixTest::GetChannelDirName() {
|
| #if defined(OS_ANDROID)
|
| -const char IPCChannelPosixTest::kConnectionSocketTestName[] =
|
| - "/data/local/chrome_IPCChannelPosixTest__ConnectionSocket";
|
| + FilePath tmp_dir;
|
| + PathService::Get(base::DIR_CACHE, &tmp_dir);
|
| + return tmp_dir.value();
|
| #else
|
| -const char IPCChannelPosixTest::kConnectionSocketTestName[] =
|
| - "/var/tmp/chrome_IPCChannelPosixTest__ConnectionSocket";
|
| + return "/var/tmp";
|
| #endif
|
| +}
|
| +
|
| +const std::string IPCChannelPosixTest::GetConnectionSocketName() {
|
| + return GetChannelDirName() + "/chrome_IPCChannelPosixTest__ConnectionSocket";
|
| +}
|
|
|
| void IPCChannelPosixTest::SetUp() {
|
| MultiProcessTest::SetUp();
|
| @@ -185,12 +193,9 @@ void IPCChannelPosixTest::SpinRunLoop(int milliseconds) {
|
| }
|
|
|
| TEST_F(IPCChannelPosixTest, BasicListen) {
|
| + const std::string kChannelName =
|
| + GetChannelDirName() + "/IPCChannelPosixTest_BasicListen";
|
|
|
| -#if defined(OS_ANDROID)
|
| - const char* kChannelName = "/data/local/IPCChannelPosixTest_BasicListen";
|
| -#else
|
| - const char* kChannelName = "/var/tmp/IPCChannelPosixTest_BasicListen";
|
| -#endif
|
| // Test creating a socket that is listening.
|
| IPC::ChannelHandle handle(kChannelName);
|
| SetUpSocket(&handle, IPC::Channel::MODE_NAMED_SERVER);
|
| @@ -228,7 +233,7 @@ TEST_F(IPCChannelPosixTest, BasicConnected) {
|
| TEST_F(IPCChannelPosixTest, AdvancedConnected) {
|
| // Test creating a connection to an external process.
|
| IPCChannelPosixTestListener listener(false);
|
| - IPC::ChannelHandle chan_handle(kConnectionSocketTestName);
|
| + IPC::ChannelHandle chan_handle(GetConnectionSocketName());
|
| SetUpSocket(&chan_handle, IPC::Channel::MODE_NAMED_SERVER);
|
| IPC::Channel channel(chan_handle, IPC::Channel::MODE_NAMED_SERVER, &listener);
|
| ASSERT_TRUE(channel.Connect());
|
| @@ -258,7 +263,7 @@ TEST_F(IPCChannelPosixTest, ResetState) {
|
| // but continue to listen and make sure another external process can connect
|
| // to us.
|
| IPCChannelPosixTestListener listener(false);
|
| - IPC::ChannelHandle chan_handle(kConnectionSocketTestName);
|
| + IPC::ChannelHandle chan_handle(GetConnectionSocketName());
|
| SetUpSocket(&chan_handle, IPC::Channel::MODE_NAMED_SERVER);
|
| IPC::Channel channel(chan_handle, IPC::Channel::MODE_NAMED_SERVER, &listener);
|
| ASSERT_TRUE(channel.Connect());
|
| @@ -317,7 +322,7 @@ TEST_F(IPCChannelPosixTest, MultiConnection) {
|
| // Test setting up a connection to an external process, and then have
|
| // another external process attempt to connect to us.
|
| IPCChannelPosixTestListener listener(false);
|
| - IPC::ChannelHandle chan_handle(kConnectionSocketTestName);
|
| + IPC::ChannelHandle chan_handle(GetConnectionSocketName());
|
| SetUpSocket(&chan_handle, IPC::Channel::MODE_NAMED_SERVER);
|
| IPC::Channel channel(chan_handle, IPC::Channel::MODE_NAMED_SERVER, &listener);
|
| ASSERT_TRUE(channel.Connect());
|
| @@ -354,7 +359,7 @@ TEST_F(IPCChannelPosixTest, DoubleServer) {
|
| // Test setting up two servers with the same name.
|
| IPCChannelPosixTestListener listener(false);
|
| IPCChannelPosixTestListener listener2(false);
|
| - IPC::ChannelHandle chan_handle(kConnectionSocketTestName);
|
| + IPC::ChannelHandle chan_handle(GetConnectionSocketName());
|
| IPC::Channel channel(chan_handle, IPC::Channel::MODE_SERVER, &listener);
|
| IPC::Channel channel2(chan_handle, IPC::Channel::MODE_SERVER, &listener2);
|
| ASSERT_TRUE(channel.Connect());
|
| @@ -364,30 +369,31 @@ TEST_F(IPCChannelPosixTest, DoubleServer) {
|
| TEST_F(IPCChannelPosixTest, BadMode) {
|
| // Test setting up two servers with a bad mode.
|
| IPCChannelPosixTestListener listener(false);
|
| - IPC::ChannelHandle chan_handle(kConnectionSocketTestName);
|
| + IPC::ChannelHandle chan_handle(GetConnectionSocketName());
|
| IPC::Channel channel(chan_handle, IPC::Channel::MODE_NONE, &listener);
|
| ASSERT_FALSE(channel.Connect());
|
| }
|
|
|
| TEST_F(IPCChannelPosixTest, IsNamedServerInitialized) {
|
| + const std::string& connection_socket_name = GetConnectionSocketName();
|
| IPCChannelPosixTestListener listener(false);
|
| - IPC::ChannelHandle chan_handle(kConnectionSocketTestName);
|
| - ASSERT_TRUE(file_util::Delete(FilePath(kConnectionSocketTestName), false));
|
| + IPC::ChannelHandle chan_handle(connection_socket_name);
|
| + ASSERT_TRUE(file_util::Delete(FilePath(connection_socket_name), false));
|
| ASSERT_FALSE(IPC::Channel::IsNamedServerInitialized(
|
| - kConnectionSocketTestName));
|
| + connection_socket_name));
|
| IPC::Channel channel(chan_handle, IPC::Channel::MODE_NAMED_SERVER, &listener);
|
| ASSERT_TRUE(IPC::Channel::IsNamedServerInitialized(
|
| - kConnectionSocketTestName));
|
| + connection_socket_name));
|
| channel.Close();
|
| ASSERT_FALSE(IPC::Channel::IsNamedServerInitialized(
|
| - kConnectionSocketTestName));
|
| + connection_socket_name));
|
| }
|
|
|
| // A long running process that connects to us
|
| MULTIPROCESS_TEST_MAIN(IPCChannelPosixTestConnectionProc) {
|
| MessageLoopForIO message_loop;
|
| IPCChannelPosixTestListener listener(true);
|
| - IPC::ChannelHandle handle(IPCChannelPosixTest::kConnectionSocketTestName);
|
| + IPC::ChannelHandle handle(IPCChannelPosixTest::GetConnectionSocketName());
|
| IPCChannelPosixTest::SetUpSocket(&handle, IPC::Channel::MODE_NAMED_CLIENT);
|
| IPC::Channel channel(handle, IPC::Channel::MODE_NAMED_CLIENT, &listener);
|
| EXPECT_TRUE(channel.Connect());
|
| @@ -400,7 +406,7 @@ MULTIPROCESS_TEST_MAIN(IPCChannelPosixTestConnectionProc) {
|
| MULTIPROCESS_TEST_MAIN(IPCChannelPosixFailConnectionProc) {
|
| MessageLoopForIO message_loop;
|
| IPCChannelPosixTestListener listener(false);
|
| - IPC::ChannelHandle handle(IPCChannelPosixTest::kConnectionSocketTestName);
|
| + IPC::ChannelHandle handle(IPCChannelPosixTest::GetConnectionSocketName());
|
| IPCChannelPosixTest::SetUpSocket(&handle, IPC::Channel::MODE_NAMED_CLIENT);
|
| IPC::Channel channel(handle, IPC::Channel::MODE_NAMED_CLIENT, &listener);
|
|
|
|
|