summaryrefslogtreecommitdiffstats
path: root/src/depfile_parser_test.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2011-12-27 23:45:30 (GMT)
committerEvan Martin <martine@danga.com>2011-12-28 02:07:53 (GMT)
commitea9746f7fe85320d3fb55aa7f3f8422e048b19fb (patch)
tree1afd9d72d89c0f9671ccfc1a9859c68596365f52 /src/depfile_parser_test.cc
parent3abfcdc5b02602091a54a79b3acff2462225f8b9 (diff)
downloadNinja-ea9746f7fe85320d3fb55aa7f3f8422e048b19fb.zip
Ninja-ea9746f7fe85320d3fb55aa7f3f8422e048b19fb.tar.gz
Ninja-ea9746f7fe85320d3fb55aa7f3f8422e048b19fb.tar.bz2
de-escape backslashes in depfiles while parsing
Diffstat (limited to 'src/depfile_parser_test.cc')
-rw-r--r--src/depfile_parser_test.cc23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/depfile_parser_test.cc b/src/depfile_parser_test.cc
index 3549f97..43e677c 100644
--- a/src/depfile_parser_test.cc
+++ b/src/depfile_parser_test.cc
@@ -73,15 +73,32 @@ TEST_F(DepfileParserTest, BackSlashes) {
EXPECT_EQ(4u, parser_.ins_.size());
}
-TEST_F(DepfileParserTest, DISABLED_Spaces) {
+TEST_F(DepfileParserTest, Spaces) {
string err;
EXPECT_TRUE(Parse(
-"foo\\ bar: a\\ b a b",
+"a\\ bc\\ def: a\\ b c d",
&err));
ASSERT_EQ("", err);
- EXPECT_EQ("foo bar",
+ EXPECT_EQ("a bc def",
parser_.out_.AsString());
ASSERT_EQ(3u, parser_.ins_.size());
EXPECT_EQ("a b",
parser_.ins_[0].AsString());
+ EXPECT_EQ("c",
+ parser_.ins_[1].AsString());
+ EXPECT_EQ("d",
+ parser_.ins_[2].AsString());
+}
+
+TEST_F(DepfileParserTest, Escapes) {
+ // Put backslashes before a variety of characters, see which ones make
+ // it through.
+ string err;
+ EXPECT_TRUE(Parse(
+"\\!\\@\\#\\$\\%\\^\\&\\\\",
+ &err));
+ ASSERT_EQ("", err);
+ EXPECT_EQ("\\!\\@#$\\%\\^\\&\\",
+ parser_.out_.AsString());
+ ASSERT_EQ(0u, parser_.ins_.size());
}