summaryrefslogtreecommitdiffstats
path: root/src/parsers_test.cc
diff options
context:
space:
mode:
authorAlexei Svitkine <asvitkine@google.com>2011-04-26 18:49:49 (GMT)
committerEvan Martin <martine@danga.com>2011-04-26 18:49:49 (GMT)
commit2f6ac73dad3806e771761af3a58d43d434337a4b (patch)
treede9266a1e7a635f66299a2847c6c66d894ad6637 /src/parsers_test.cc
parent5c192cda0788faeed93b3ba03a6830ed43762b24 (diff)
downloadNinja-2f6ac73dad3806e771761af3a58d43d434337a4b.zip
Ninja-2f6ac73dad3806e771761af3a58d43d434337a4b.tar.gz
Ninja-2f6ac73dad3806e771761af3a58d43d434337a4b.tar.bz2
include location of error in parse error messages in EvalEnv strings
E.g. when parsing "foo = ${bar", point at the correct location of the missing curly brace.
Diffstat (limited to 'src/parsers_test.cc')
-rw-r--r--src/parsers_test.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/parsers_test.cc b/src/parsers_test.cc
index 73c1984..c20a812 100644
--- a/src/parsers_test.cc
+++ b/src/parsers_test.cc
@@ -208,6 +208,30 @@ TEST_F(ParserTest, Errors) {
State state;
ManifestParser parser(&state, NULL);
string err;
+ EXPECT_FALSE(parser.Parse("x = $\n", &err));
+ EXPECT_EQ("line 1, col 6: expected variable after $", err);
+ }
+
+ {
+ State state;
+ ManifestParser parser(&state, NULL);
+ string err;
+ EXPECT_FALSE(parser.Parse("x = \\\n $[\n", &err));
+ EXPECT_EQ("line 2, col 3: expected variable after $", err);
+ }
+
+ {
+ State state;
+ ManifestParser parser(&state, NULL);
+ string err;
+ EXPECT_FALSE(parser.Parse("x = a\\\n b\\\n $\n", &err));
+ EXPECT_EQ("line 3, col 3: expected variable after $", err);
+ }
+
+ {
+ State state;
+ ManifestParser parser(&state, NULL);
+ string err;
EXPECT_FALSE(parser.Parse("build x: y z\n", &err));
EXPECT_EQ("line 1, col 10: unknown build rule 'y'", err);
}