Add a regression test for issue #380 (which fails at the moment)
authorNico Weber <nicolasweber@gmx.de>
Sat, 28 Jul 2012 16:56:55 +0000 (09:56 -0700)
committerNico Weber <nicolasweber@gmx.de>
Sat, 28 Jul 2012 16:56:55 +0000 (09:56 -0700)
src/graph_test.cc

index 07a1936..38ff28a 100644 (file)
@@ -140,3 +140,22 @@ TEST_F(GraphTest, VarInOutQuoteSpaces) {
   EXPECT_EQ("cat nospace \"with space\" nospace2 > \"a b\"",
       edge->EvaluateCommand());
 }
+
+// Regression test for https://github.com/martine/ninja/issues/380
+TEST_F(GraphTest, DepfileWithCanonicalizablePath) {
+  ASSERT_NO_FATAL_FAILURE(AssertParse(&state_,
+"rule catdep\n"
+"  depfile = $out.d\n"
+"  command = cat $in > $out\n"
+"build ./out.o: catdep ./foo.cc\n"));
+  fs_.Create("foo.cc", 1, "");
+  fs_.Create("out.o.d", 1, "out.o: bar/../foo.cc\n");
+  fs_.Create("out.o", 1, "");
+
+  Edge* edge = GetNode("out.o")->in_edge();
+  string err;
+  EXPECT_TRUE(edge->RecomputeDirty(&state_, &fs_, &err));
+  ASSERT_EQ("", err);
+
+  EXPECT_FALSE(GetNode("out.o")->dirty());
+}