diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gtest-port.cc | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/gtest-port.cc b/src/gtest-port.cc index a0e2d7c7..9cfe4e95 100644 --- a/src/gtest-port.cc +++ b/src/gtest-port.cc @@ -531,11 +531,25 @@ class CapturedStream { filename_ = temp_file_path; # else // There's no guarantee that a test has write access to the current - // directory, so we create the temporary file in the /tmp directory instead. - // We use /tmp on most systems, and /mnt/sdcard on Android. That's because - // Android doesn't have /tmp. + // directory, so we create the temporary file in the /tmp directory + // instead. We use /tmp on most systems, and /sdcard on Android. + // That's because Android doesn't have /tmp. # if GTEST_OS_LINUX_ANDROID - char name_template[] = "/mnt/sdcard/gtest_captured_stream.XXXXXX"; + // Note: Android applications are expected to call the framework's + // Context.getExternalStorageDirectory() method through JNI to get + // the location of the world-writable SD Card directory. However, + // this requires a Context handle, which cannot be retrieved + // globally from native code. Doing so also precludes running the + // code as part of a regular standalone executable, which doesn't + // run in a Dalvik process (e.g. when running it through 'adb shell'). + // + // The location /sdcard is directly accessible from native code + // and is the only location (unofficially) supported by the Android + // team. It's generally a symlink to the real SD Card mount point + // which can be /mnt/sdcard, /mnt/sdcard0, /system/media/sdcard, or + // other OEM-customized locations. Never rely on these, and always + // use /sdcard. + char name_template[] = "/sdcard/gtest_captured_stream.XXXXXX"; # else char name_template[] = "/tmp/captured_stream.XXXXXX"; # endif // GTEST_OS_LINUX_ANDROID |