summaryrefslogtreecommitdiffstats
path: root/src/parsers_test.cc
diff options
context:
space:
mode:
authorPeter Kuemmel <syntheticpp@gmx.net>2012-01-29 13:26:24 (GMT)
committerPeter Kuemmel <syntheticpp@gmx.net>2012-01-29 13:26:24 (GMT)
commit2e481086ad7337bb868327f12ffd317dc5143a3e (patch)
tree970d5c7fb9207ec96beff9d9fdfcf60c60a06e0d /src/parsers_test.cc
parent88c9491f515f7ba479b5334ef834743fed539730 (diff)
downloadNinja-2e481086ad7337bb868327f12ffd317dc5143a3e.zip
Ninja-2e481086ad7337bb868327f12ffd317dc5143a3e.tar.gz
Ninja-2e481086ad7337bb868327f12ffd317dc5143a3e.tar.bz2
parse $:
'$:' is a valid string now, it expands to ':' update error messages and show a hint when something went wrong.
Diffstat (limited to 'src/parsers_test.cc')
-rw-r--r--src/parsers_test.cc37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/parsers_test.cc b/src/parsers_test.cc
index f3ac517..2a30a83 100644
--- a/src/parsers_test.cc
+++ b/src/parsers_test.cc
@@ -377,14 +377,30 @@ TEST_F(ParserTest, Errors) {
ManifestParser parser(&state, NULL);
string err;
EXPECT_FALSE(parser.ParseTest("rule cat\n"
- " command = cat\nbuild $: cat foo\n",
+ " command = cat\n"
+ "build $.: cat foo\n",
&err));
EXPECT_EQ("input:3: bad $-escape (literal $ must be written as $$)\n"
- "build $: cat foo\n"
+ "build $.: cat foo\n"
" ^ near here"
, err);
}
+
+ {
+ State state;
+ ManifestParser parser(&state, NULL);
+ string err;
+ EXPECT_FALSE(parser.ParseTest("rule cat\n"
+ " command = cat\n"
+ "build $: cat foo\n",
+ &err));
+ EXPECT_EQ("input:3: expected ':', got newline ($ also escapes ':')\n"
+ "build $: cat foo\n"
+ " ^ near here"
+ , err);
+ }
+
{
State state;
ManifestParser parser(&state, NULL);
@@ -413,10 +429,10 @@ TEST_F(ParserTest, Errors) {
ManifestParser parser(&state, NULL);
string err;
EXPECT_FALSE(parser.ParseTest("rule cc\n command = foo\n"
- "build $: cc bar.cc\n",
+ "build $.: cc bar.cc\n",
&err));
EXPECT_EQ("input:3: bad $-escape (literal $ must be written as $$)\n"
- "build $: cc bar.cc\n"
+ "build $.: cc bar.cc\n"
" ^ near here"
, err);
}
@@ -425,6 +441,19 @@ TEST_F(ParserTest, Errors) {
State state;
ManifestParser parser(&state, NULL);
string err;
+ EXPECT_FALSE(parser.ParseTest("rule cc\n command = foo\n"
+ "build $: cc bar.cc\n",
+ &err));
+ EXPECT_EQ("input:3: expected ':', got newline ($ also escapes ':')\n"
+ "build $: cc bar.cc\n"
+ " ^ near here"
+ , err);
+ }
+
+ {
+ State state;
+ ManifestParser parser(&state, NULL);
+ string err;
EXPECT_FALSE(parser.ParseTest("default\n",
&err));
EXPECT_EQ("input:1: expected target name\n"