diff options
author | Andreas Gampe <agampe@google.com> | 2014-11-06 01:00:46 -0800 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2014-11-18 17:26:06 -0800 |
commit | 4303ba97313458491e038d78efa041d41cf7bb43 (patch) | |
tree | 5a5873651db918416c9ff63f4bb06b6eb7f4c71a /runtime/common_runtime_test.cc | |
parent | a971100be7870544360fa8a46311ef7f5adb6902 (diff) | |
download | art-4303ba97313458491e038d78efa041d41cf7bb43.zip art-4303ba97313458491e038d78efa041d41cf7bb43.tar.gz art-4303ba97313458491e038d78efa041d41cf7bb43.tar.bz2 |
ART: Track Flush & Close in FdFile
Implement a check that aborts when a file hasn't been explicitly
flushed and closed when it is destructed.
Add WARN_UNUSED to FdFile methods.
Update dex2oat, patchoat, scoped_flock and some gtests to pass with
this.
(cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494)
Change-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4
Diffstat (limited to 'runtime/common_runtime_test.cc')
-rw-r--r-- | runtime/common_runtime_test.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/runtime/common_runtime_test.cc b/runtime/common_runtime_test.cc index 6e3ebc2..03b33e9 100644 --- a/runtime/common_runtime_test.cc +++ b/runtime/common_runtime_test.cc @@ -59,7 +59,7 @@ ScratchFile::ScratchFile() { filename_ += "/TmpFile-XXXXXX"; int fd = mkstemp(&filename_[0]); CHECK_NE(-1, fd); - file_.reset(new File(fd, GetFilename())); + file_.reset(new File(fd, GetFilename(), true)); } ScratchFile::ScratchFile(const ScratchFile& other, const char* suffix) { @@ -67,7 +67,7 @@ ScratchFile::ScratchFile(const ScratchFile& other, const char* suffix) { filename_ += suffix; int fd = open(filename_.c_str(), O_RDWR | O_CREAT, 0666); CHECK_NE(-1, fd); - file_.reset(new File(fd, GetFilename())); + file_.reset(new File(fd, GetFilename(), true)); } ScratchFile::ScratchFile(File* file) { @@ -88,6 +88,11 @@ void ScratchFile::Unlink() { if (!OS::FileExists(filename_.c_str())) { return; } + if (file_.get() != nullptr) { + if (file_->FlushCloseOrErase() != 0) { + PLOG(WARNING) << "Error closing scratch file."; + } + } int unlink_result = unlink(filename_.c_str()); CHECK_EQ(0, unlink_result); } |