Index: third_party/mojo/src/mojo/edk/embedder/platform_channel_pair_posix_unittest.cc |
diff --git a/third_party/mojo/src/mojo/edk/embedder/platform_channel_pair_posix_unittest.cc b/third_party/mojo/src/mojo/edk/embedder/platform_channel_pair_posix_unittest.cc |
index 897929fee13d266ef6da9685bb35e16a449f47e4..0b20f4b57b5188ae692b9cca9834e7d1732f667f 100644 |
--- a/third_party/mojo/src/mojo/edk/embedder/platform_channel_pair_posix_unittest.cc |
+++ b/third_party/mojo/src/mojo/edk/embedder/platform_channel_pair_posix_unittest.cc |
@@ -15,11 +15,9 @@ |
#include <deque> |
-#include "base/files/file_path.h" |
-#include "base/files/file_util.h" |
#include "base/files/scoped_file.h" |
-#include "base/files/scoped_temp_dir.h" |
#include "base/logging.h" |
+#include "build/build_config.h" |
#include "mojo/edk/embedder/platform_channel_utils_posix.h" |
#include "mojo/edk/embedder/platform_handle.h" |
#include "mojo/edk/embedder/platform_handle_vector.h" |
@@ -28,6 +26,11 @@ |
#include "mojo/public/cpp/system/macros.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#if defined(OS_ANDROID) |
+#include "base/android/path_utils.h" |
+#include "base/files/file_path.h" |
+#endif |
+ |
namespace mojo { |
namespace embedder { |
namespace { |
@@ -39,6 +42,22 @@ void WaitReadable(PlatformHandle h) { |
CHECK_EQ(poll(&pfds, 1, -1), 1); |
} |
+FILE* NewTmpFile() { |
+#if defined(OS_ANDROID) |
+ base::FilePath tmpdir; |
+ if (!base::android::GetCacheDirectory(&tmpdir)) |
+ return nullptr; |
+ std::string templ = tmpdir.Append("XXXXXXXX").value(); |
+ int fd = mkstemp(const_cast<char*>(templ.c_str())); |
+ if (fd == -1) |
+ return nullptr; |
+ CHECK(unlink(templ.c_str()) == 0); |
+ return fdopen(fd, "w+"); |
+#else |
+ return tmpfile(); |
+#endif |
+} |
+ |
class PlatformChannelPairPosixTest : public testing::Test { |
public: |
PlatformChannelPairPosixTest() {} |
@@ -128,9 +147,6 @@ TEST_F(PlatformChannelPairPosixTest, SendReceiveData) { |
} |
TEST_F(PlatformChannelPairPosixTest, SendReceiveFDs) { |
- base::ScopedTempDir temp_dir; |
- ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
- |
static const char kHello[] = "hello"; |
PlatformChannelPair channel_pair; |
@@ -150,9 +166,7 @@ TEST_F(PlatformChannelPairPosixTest, SendReceiveFDs) { |
const char c = '0' + (i % 10); |
ScopedPlatformHandleVectorPtr platform_handles(new PlatformHandleVector); |
for (size_t j = 1; j <= i; j++) { |
- base::FilePath unused; |
- base::ScopedFILE fp( |
- base::CreateAndOpenTemporaryFileInDir(temp_dir.path(), &unused)); |
+ base::ScopedFILE fp(NewTmpFile()); |
ASSERT_TRUE(fp); |
ASSERT_EQ(j, fwrite(std::string(j, c).data(), 1, j, fp.get())); |
platform_handles->push_back( |
@@ -194,9 +208,6 @@ TEST_F(PlatformChannelPairPosixTest, SendReceiveFDs) { |
} |
TEST_F(PlatformChannelPairPosixTest, AppendReceivedFDs) { |
- base::ScopedTempDir temp_dir; |
- ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
- |
static const char kHello[] = "hello"; |
PlatformChannelPair channel_pair; |
@@ -206,9 +217,7 @@ TEST_F(PlatformChannelPairPosixTest, AppendReceivedFDs) { |
const std::string file_contents("hello world"); |
{ |
- base::FilePath unused; |
- base::ScopedFILE fp( |
- base::CreateAndOpenTemporaryFileInDir(temp_dir.path(), &unused)); |
+ base::ScopedFILE fp(NewTmpFile()); |
ASSERT_TRUE(fp); |
ASSERT_EQ(file_contents.size(), |
fwrite(file_contents.data(), 1, file_contents.size(), fp.get())); |