From 2e50efd4840cdacc33fbde183352e94055d9b601 Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Tue, 19 Feb 2013 15:01:05 +0000 Subject: [PATCH] [sanitizer] Fix FileOps test on Android. llvm-svn: 175515 --- compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cc b/compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cc index daf0999..b677130 100644 --- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cc +++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cc @@ -57,8 +57,18 @@ TEST(SanitizerCommon, FileOps) { u32 uid = GetUid(); char temp_filename[128]; +#ifdef __ANDROID__ + // I don't know a way to query temp directory location on Android without + // going through Java interfaces. The code below is not ideal, but should + // work. May require "adb root", but it is needed for almost any use of ASan + // on Android already. + internal_snprintf(temp_filename, sizeof(temp_filename), + "%s/sanitizer_common.tmp.%d", + GetEnv("EXTERNAL_STORAGE"), uid); +#else internal_snprintf(temp_filename, sizeof(temp_filename), "/tmp/sanitizer_common.tmp.%d", uid); +#endif fd_t fd = OpenFile(temp_filename, true); EXPECT_NE(fd, kInvalidFd); EXPECT_EQ(len1, internal_write(fd, str1, len1)); -- 2.7.4