summaryrefslogtreecommitdiffstats
path: root/src/graph_test.cc
diff options
context:
space:
mode:
authorScott Graham <scottmg@chromium.org>2014-11-08 19:47:22 (GMT)
committerScott Graham <scottmg@chromium.org>2014-11-08 19:47:22 (GMT)
commit8177085f4d3adf78b9709069a9c3ce5fe442867a (patch)
tree01d21b186ca671903ad8720c13ea2fa01f82e0fb /src/graph_test.cc
parent3fb18496c4c2642742df152974d78756d1c9df8a (diff)
downloadNinja-8177085f4d3adf78b9709069a9c3ce5fe442867a.zip
Ninja-8177085f4d3adf78b9709069a9c3ce5fe442867a.tar.gz
Ninja-8177085f4d3adf78b9709069a9c3ce5fe442867a.tar.bz2
path decanonicalization when building command
Diffstat (limited to 'src/graph_test.cc')
-rw-r--r--src/graph_test.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/graph_test.cc b/src/graph_test.cc
index 14dc678..382d352 100644
--- a/src/graph_test.cc
+++ b/src/graph_test.cc
@@ -251,3 +251,24 @@ TEST_F(GraphTest, NestedPhonyPrintsDone) {
EXPECT_EQ(0, plan_.command_edge_count());
ASSERT_FALSE(plan_.more_to_do());
}
+
+#ifdef _WIN32
+TEST_F(GraphTest, Decanonicalize) {
+ ASSERT_NO_FATAL_FAILURE(AssertParse(&state_,
+"build out\\out1: cat src\\in1\n"
+"build out\\out2/out3\\out4: cat mid1\n"
+"build out3 out4\\foo: cat mid1\n"));
+
+ string err;
+ vector<Node*> root_nodes = state_.RootNodes(&err);
+ EXPECT_EQ(4u, root_nodes.size());
+ EXPECT_EQ(root_nodes[0]->path(), "out/out1");
+ EXPECT_EQ(root_nodes[1]->path(), "out/out2/out3/out4");
+ EXPECT_EQ(root_nodes[2]->path(), "out3");
+ EXPECT_EQ(root_nodes[3]->path(), "out4/foo");
+ EXPECT_EQ(root_nodes[0]->PathDecanonicalized(), "out\\out1");
+ EXPECT_EQ(root_nodes[1]->PathDecanonicalized(), "out\\out2/out3\\out4");
+ EXPECT_EQ(root_nodes[2]->PathDecanonicalized(), "out3");
+ EXPECT_EQ(root_nodes[3]->PathDecanonicalized(), "out4\\foo");
+}
+#endif