summaryrefslogtreecommitdiffstats
path: root/src/test.cc
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-02-03 18:20:00 (GMT)
committerBrad King <brad.king@kitware.com>2016-02-03 18:42:18 (GMT)
commit858386d8415d2ee932fe3c01ebfbe5e0737f94a3 (patch)
tree794bd049a0217fda35c9dd3be483cca03cd3367b /src/test.cc
parentf9487ac7971a668ddf142d5adc741f789c7bbb68 (diff)
downloadNinja-858386d8415d2ee932fe3c01ebfbe5e0737f94a3.zip
Ninja-858386d8415d2ee932fe3c01ebfbe5e0737f94a3.tar.gz
Ninja-858386d8415d2ee932fe3c01ebfbe5e0737f94a3.tar.bz2
Expose more details in FileReader::ReadFile signature
Return a status so callers can distinguish a missing file from an empty file. This allows our VirtualFileSystem test infrastructure to report as missing any file for which it has no entry.
Diffstat (limited to 'src/test.cc')
-rw-r--r--src/test.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/test.cc b/src/test.cc
index 841ce04..53bfc48 100644
--- a/src/test.cc
+++ b/src/test.cc
@@ -164,12 +164,17 @@ bool VirtualFileSystem::MakeDir(const string& path) {
return true; // success
}
-string VirtualFileSystem::ReadFile(const string& path, string* err) {
+FileReader::Status VirtualFileSystem::ReadFile(const string& path,
+ string* contents,
+ string* err) {
files_read_.push_back(path);
FileMap::iterator i = files_.find(path);
- if (i != files_.end())
- return i->second.contents;
- return "";
+ if (i != files_.end()) {
+ *contents = i->second.contents;
+ return Okay;
+ }
+ *err = strerror(ENOENT);
+ return NotFound;
}
int VirtualFileSystem::RemoveFile(const string& path) {