Index: base/test/test_file_util_mac.cc |
diff --git a/base/test/test_file_util_mac.cc b/base/test/test_file_util_mac.cc |
index 316b5c3d01aa9aec7c42d64bce64be95cd0b0969..ea299a63e6f5f7d79ca0f0f669a9f0993166a1f5 100644 |
--- a/base/test/test_file_util_mac.cc |
+++ b/base/test/test_file_util_mac.cc |
@@ -17,15 +17,28 @@ bool EvictFileFromSystemCache(const FilePath& file) { |
// default) + MAP_SHARED, then do an msync to invalidate the memory. The next |
// open should then have to load the file from disk. |
+ int64 length; |
+ if (!file_util::GetFileSize(file, &length)) { |
+ LOG(ERROR) << "failed to get size of " << file.value(); |
+ return false; |
+ } |
+ |
+ // When a file is empty, we do not need to evict it from cache. |
+ // In fact, an attempt to map it to memory will result in error. |
+ if (length == 0) { |
+ LOG(WARNING) << "file size is zero, will not attempt to map to memory"; |
+ return true; |
+ } |
+ |
file_util::MemoryMappedFile mapped_file; |
if (!mapped_file.Initialize(file)) { |
- DLOG(WARNING) << "failed to memory map " << file.value(); |
+ LOG(WARNING) << "failed to memory map " << file.value(); |
return false; |
} |
if (msync(const_cast<uint8*>(mapped_file.data()), mapped_file.length(), |
MS_INVALIDATE) != 0) { |
- DLOG(WARNING) << "failed to invalidate memory map of " << file.value() |
+ LOG(WARNING) << "failed to invalidate memory map of " << file.value() |
<< ", errno: " << errno; |
return false; |
} |