diff options
author | Nico Weber <nicolasweber@gmx.de> | 2015-03-12 16:06:50 (GMT) |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2015-03-12 16:06:50 (GMT) |
commit | 157a71f39b19d4fac43c814211c2093de205adab (patch) | |
tree | 99160d1b33ed65cb3c98f5062ead5af5ee4b0654 /src/build_test.cc | |
parent | 8bab23be060ef6c79e35daa8e6deca18d00341f6 (diff) | |
download | Ninja-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.cc | 17 |
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" |