summaryrefslogtreecommitdiffstats
path: root/src/parsers_test.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2010-12-19 22:53:38 (GMT)
committerEvan Martin <martine@danga.com>2010-12-19 22:54:15 (GMT)
commitac4cc82452ec145e2f567b8edab6c14d642d41c8 (patch)
tree65667e1d2d13ea2ef2e1db9043084e2fd0149237 /src/parsers_test.cc
parentcd5dd9e74df2accca52c85cbb1c0e7075660919e (diff)
downloadNinja-ac4cc82452ec145e2f567b8edab6c14d642d41c8.zip
Ninja-ac4cc82452ec145e2f567b8edab6c14d642d41c8.tar.gz
Ninja-ac4cc82452ec145e2f567b8edab6c14d642d41c8.tar.bz2
expand variables in build paths
Diffstat (limited to 'src/parsers_test.cc')
-rw-r--r--src/parsers_test.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/parsers_test.cc b/src/parsers_test.cc
index 6bd8e4b..f38e6dc 100644
--- a/src/parsers_test.cc
+++ b/src/parsers_test.cc
@@ -125,6 +125,17 @@ TEST_F(ParserTest, CanonicalizeFile) {
EXPECT_FALSE(state.LookupNode("in//2"));
}
+TEST_F(ParserTest, PathVariables) {
+ ASSERT_NO_FATAL_FAILURE(AssertParse(
+"rule cat\n"
+" command = cat $in > $out\n"
+"dir = out\n"
+"build $dir/exe: cat src\n"));
+
+ EXPECT_FALSE(state.LookupNode("$dir/exe"));
+ EXPECT_TRUE(state.LookupNode("out/exe"));
+}
+
TEST_F(ParserTest, Errors) {
{
ManifestParser parser(NULL, NULL);
@@ -218,6 +229,16 @@ TEST_F(ParserTest, Errors) {
&err));
EXPECT_EQ("line 4, col 0: unexpected variable 'othervar'", err);
}
+
+ {
+ State state;
+ ManifestParser parser(&state, NULL);
+ string err;
+ EXPECT_FALSE(parser.Parse("rule cc\n command = foo\n"
+ "build $: cc bar.cc\n",
+ &err));
+ EXPECT_EQ("line 4, col 1: expected variable after $", err);
+ }
}
TEST_F(ParserTest, BuildDir) {