diff options
author | nileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-25 02:56:25 +0000 |
---|---|---|
committer | nileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-25 02:56:25 +0000 |
commit | 5f6259d5aa9bb29f15db051a3c6be3d78b82e1db (patch) | |
tree | 59cbd7f8128e6636c4e806404efdec8be2608b3c /ipc/ipc_channel_posix_unittest.cc | |
parent | f00f478d56f7dfef1ad76af24514439d610f0d24 (diff) | |
download | chromium_src-5f6259d5aa9bb29f15db051a3c6be3d78b82e1db.zip chromium_src-5f6259d5aa9bb29f15db051a3c6be3d78b82e1db.tar.gz chromium_src-5f6259d5aa9bb29f15db051a3c6be3d78b82e1db.tar.bz2 |
Android: Get the cache directory using path service.
"/data/local" is not writable on non-rooted devices and
while running tests in an APK.
BUG=125059
TEST=
Review URL: https://chromiumcodereview.appspot.com/10443021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138981 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_channel_posix_unittest.cc')
-rw-r--r-- | ipc/ipc_channel_posix_unittest.cc | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/ipc/ipc_channel_posix_unittest.cc b/ipc/ipc_channel_posix_unittest.cc index b4ec401..24fe2b0 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); |