// Copyright 2011 Google Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #include #include "ninja.h" // Support utilites for tests. struct Node; struct StateTestWithBuiltinRules : public testing::Test { StateTestWithBuiltinRules(); Node* GetNode(const string& path); State state_; }; 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 directories_made_; vector files_read_; typedef map FileMap; FileMap files_; };