Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57e9cea0 authored by Yabin Cui's avatar Yabin Cui
Browse files

libbase: fix the way to find temp dir.

Tests running in app context can't access /data/local/tmp,
so try current directory if /data/local/tmp is not accessible.

Bug: http://b/18790309
Test: run unit test in app context and shell context.
Change-Id: If66fe8f0ac3edb3a32a2a2a50a524364f818a58b
parent 5b202c43
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -57,7 +57,13 @@ char* mkdtemp(char* template_name) {

static std::string GetSystemTempDir() {
#if defined(__ANDROID__)
  return "/data/local/tmp";
  const char* tmpdir = "/data/local/tmp";
  if (access(tmpdir, R_OK | W_OK | X_OK) == 0) {
    return tmpdir;
  }
  // Tests running in app context can't access /data/local/tmp,
  // so try current directory if /data/local/tmp is not accessible.
  return ".";
#elif defined(_WIN32)
  char tmp_dir[MAX_PATH];
  DWORD result = GetTempPathA(sizeof(tmp_dir), tmp_dir);