summaryrefslogtreecommitdiffstats
path: root/src/parsers_test.cc
diff options
context:
space:
mode:
authorJeremy Apthorp <jeremya@chromium.org>2011-11-28 03:25:16 (GMT)
committerJeremy Apthorp <jeremya@chromium.org>2011-11-28 03:25:16 (GMT)
commit4d142a410891144f11259b7e8432c0a81c88215c (patch)
tree4b11c84cb3d7afdd469f962482358c19e4f63eab /src/parsers_test.cc
parentb363f6d8c456e24efb47b1b8d3c48f93c53ae5a4 (diff)
downloadNinja-4d142a410891144f11259b7e8432c0a81c88215c.zip
Ninja-4d142a410891144f11259b7e8432c0a81c88215c.tar.gz
Ninja-4d142a410891144f11259b7e8432c0a81c88215c.tar.bz2
Add tests for escaping spaces with '$ '.
Diffstat (limited to 'src/parsers_test.cc')
-rw-r--r--src/parsers_test.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/parsers_test.cc b/src/parsers_test.cc
index a99b510..3cd85cb 100644
--- a/src/parsers_test.cc
+++ b/src/parsers_test.cc
@@ -149,6 +149,19 @@ TEST_F(ParserTest, Dollars) {
EXPECT_EQ("$dollarbar$baz$blah", state.edges_[0]->EvaluateCommand());
}
+TEST_F(ParserTest, EscapeSpaces) {
+ ASSERT_NO_FATAL_FAILURE(AssertParse(
+"rule has$ spaces\n"
+" command = something\n"
+"build foo$ bar: has$ spaces $$one two$$$ three\n"
+));
+ EXPECT_TRUE(state.LookupNode("foo bar"));
+ EXPECT_EQ(state.edges_[0]->outputs_[0]->file_->path_, "foo bar");
+ EXPECT_EQ(state.edges_[0]->inputs_[0]->file_->path_, "$one");
+ EXPECT_EQ(state.edges_[0]->inputs_[1]->file_->path_, "two$ three");
+ EXPECT_EQ(state.edges_[0]->EvaluateCommand(), "something");
+}
+
TEST_F(ParserTest, CanonicalizeFile) {
ASSERT_NO_FATAL_FAILURE(AssertParse(
"rule cat\n"