summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/include/android-base/test_utils.h4
-rw-r--r--base/test_utils.cpp10
2 files changed, 13 insertions, 1 deletions
diff --git a/base/include/android-base/test_utils.h b/base/include/android-base/test_utils.h
index c0bf0c1e1..07a5edda0 100644
--- a/base/include/android-base/test_utils.h
+++ b/base/include/android-base/test_utils.h
@@ -26,6 +26,10 @@ class TemporaryFile {
26 TemporaryFile(); 26 TemporaryFile();
27 ~TemporaryFile(); 27 ~TemporaryFile();
28 28
29 // Release the ownership of fd, caller is reponsible for closing the
30 // fd or stream properly.
31 int release();
32
29 int fd; 33 int fd;
30 char path[1024]; 34 char path[1024];
31 35
diff --git a/base/test_utils.cpp b/base/test_utils.cpp
index 636477d36..1cfa9e66f 100644
--- a/base/test_utils.cpp
+++ b/base/test_utils.cpp
@@ -85,10 +85,18 @@ TemporaryFile::TemporaryFile() {
85} 85}
86 86
87TemporaryFile::~TemporaryFile() { 87TemporaryFile::~TemporaryFile() {
88 close(fd); 88 if (fd != -1) {
89 close(fd);
90 }
89 unlink(path); 91 unlink(path);
90} 92}
91 93
94int TemporaryFile::release() {
95 int result = fd;
96 fd = -1;
97 return result;
98}
99
92void TemporaryFile::init(const std::string& tmp_dir) { 100void TemporaryFile::init(const std::string& tmp_dir) {
93 snprintf(path, sizeof(path), "%s%cTemporaryFile-XXXXXX", tmp_dir.c_str(), 101 snprintf(path, sizeof(path), "%s%cTemporaryFile-XXXXXX", tmp_dir.c_str(),
94 OS_PATH_SEPARATOR); 102 OS_PATH_SEPARATOR);