summaryrefslogtreecommitdiffstats
path: root/src/build_test.cc
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2015-03-12 16:06:50 (GMT)
committerNico Weber <nicolasweber@gmx.de>2015-03-12 16:06:50 (GMT)
commit157a71f39b19d4fac43c814211c2093de205adab (patch)
tree99160d1b33ed65cb3c98f5062ead5af5ee4b0654 /src/build_test.cc
parent8bab23be060ef6c79e35daa8e6deca18d00341f6 (diff)
downloadNinja-157a71f39b19d4fac43c814211c2093de205adab.zip
Ninja-157a71f39b19d4fac43c814211c2093de205adab.tar.gz
Ninja-157a71f39b19d4fac43c814211c2093de205adab.tar.bz2
On unexpected output in a .d file, rebuild instead erroring.
Fixes #417.
Diffstat (limited to 'src/build_test.cc')
-rw-r--r--src/build_test.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/build_test.cc b/src/build_test.cc
index 82da57b..65d189d 100644
--- a/src/build_test.cc
+++ b/src/build_test.cc
@@ -2042,6 +2042,23 @@ TEST_F(BuildWithDepsLogTest, RestatMissingDepfileDepslog) {
ASSERT_EQ(0u, command_runner_.commands_ran_.size());
}
+TEST_F(BuildTest, WrongOutputInDepfileCausesRebuild) {
+ string err;
+ const char* manifest =
+"rule cc\n"
+" command = cc $in\n"
+" depfile = $out.d\n"
+"build foo.o: cc foo.c\n";
+
+ fs_.Create("foo.c", "");
+ fs_.Create("foo.o", "");
+ fs_.Create("header.h", "");
+ fs_.Create("foo.o.d", "bar.o.d: header.h\n");
+
+ RebuildTarget("foo.o", manifest, "build_log", "ninja_deps");
+ ASSERT_EQ(1u, command_runner_.commands_ran_.size());
+}
+
TEST_F(BuildTest, Console) {
ASSERT_NO_FATAL_FAILURE(AssertParse(&state_,
"rule console\n"