summaryrefslogtreecommitdiffstats
path: root/src/build.cc
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2017-05-19 04:29:45 (GMT)
committerColin Cross <ccross@android.com>2017-05-22 18:29:06 (GMT)
commita127dda3ee92916ef459b3da7aa9f2920ff1a5ab (patch)
tree0b5524287de8ab1bb9ca33efb7c5329baed740e7 /src/build.cc
parent036003d20e80cbb044a3f0f0b41e2fdefcde66af (diff)
downloadNinja-a127dda3ee92916ef459b3da7aa9f2920ff1a5ab.zip
Ninja-a127dda3ee92916ef459b3da7aa9f2920ff1a5ab.tar.gz
Ninja-a127dda3ee92916ef459b3da7aa9f2920ff1a5ab.tar.bz2
Add a test that fails if a rule updates it output file but fails
https://groups.google.com/forum/#!msg/ninja-build/YQuGNrECI-4/ti-lAs9SPv8J discusses a case where an rule updates its output file and then fails. The next run of ninja considers the ouptut file clean and doesn't rebuild it. Add a test for this case, which currently fails.
Diffstat (limited to 'src/build.cc')
-rw-r--r--src/build.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/build.cc b/src/build.cc
index a0c7ec8..44d0663 100644
--- a/src/build.cc
+++ b/src/build.cc
@@ -275,6 +275,13 @@ void BuildStatus::PrintStatus(Edge* edge, EdgeStatus status) {
Plan::Plan() : command_edges_(0), wanted_edges_(0) {}
+void Plan::Reset() {
+ command_edges_ = 0;
+ wanted_edges_ = 0;
+ ready_.clear();
+ want_.clear();
+}
+
bool Plan::AddTarget(Node* node, string* err) {
vector<Node*> stack;
return AddSubTarget(node, &stack, err);