diff options
author | Evan Martin <martine@danga.com> | 2011-03-06 01:39:48 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2011-03-06 01:39:48 (GMT) |
commit | 37a9390101a73ab518aeac164ab147ee5251af9a (patch) | |
tree | e5c0965daa832a00792aabc389a006455e19c02c /src/test.h | |
parent | 2f3e5669826574b5e42d2118e539f559977a5ec8 (diff) | |
download | Ninja-37a9390101a73ab518aeac164ab147ee5251af9a.zip Ninja-37a9390101a73ab518aeac164ab147ee5251af9a.tar.gz Ninja-37a9390101a73ab518aeac164ab147ee5251af9a.tar.bz2 |
move VirtualFileSystem into test.*
Diffstat (limited to 'src/test.h')
-rw-r--r-- | src/test.h | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -28,3 +28,26 @@ struct StateTestWithBuiltinRules : public testing::Test { }; void AssertParse(State* state, const char* input); + +// An implementation of DiskInterface that uses an in-memory representation +// of disk state. It also logs file accesses and directory creations +// so it can be used by tests to verify disk access patterns. +struct VirtualFileSystem : public DiskInterface { + // "Create" a file with a given mtime and contents. + void Create(const string& path, int time, const string& contents); + + // DiskInterface + virtual int Stat(const string& path); + virtual bool MakeDir(const string& path); + virtual string ReadFile(const string& path, string* err); + + struct Entry { + int mtime; + string contents; + }; + + vector<string> directories_made_; + vector<string> files_read_; + typedef map<string, Entry> FileMap; + FileMap files_; +}; |