TEST_F(ParserTest, Errors) {
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest(string("subn", 4), &err));
EXPECT_EQ("input:1: expected '=', got eof\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("foobar", &err));
EXPECT_EQ("input:1: expected '=', got eof\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("x 3", &err));
EXPECT_EQ("input:1: expected '=', got identifier\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("x = 3", &err));
EXPECT_EQ("input:1: unexpected EOF\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("x = 3\ny 2", &err));
EXPECT_EQ("input:2: expected '=', got identifier\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("x = $", &err));
EXPECT_EQ("input:1: bad $-escape (literal $ must be written as $$)\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("x = $\n $[\n", &err));
EXPECT_EQ("input:2: bad $-escape (literal $ must be written as $$)\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("x = a$\n b$\n $\n", &err));
EXPECT_EQ("input:4: unexpected EOF\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("build\n", &err));
EXPECT_EQ("input:1: expected path\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("build x: y z\n", &err));
EXPECT_EQ("input:1: unknown build rule 'y'\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("build x:: y z\n", &err));
EXPECT_EQ("input:1: expected build command name\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cat\n command = cat ok\n"
"build x: cat $\n :\n",
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cat\n",
&err));
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cat\n"
" command = echo\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cat\n"
" command = echo\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cat\n"
" command = ${fafsd\n"
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cat\n"
" command = cat\n"
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cat\n"
" command = cat\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule %foo\n",
&err));
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cc\n"
" command = foo\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cc\n command = foo\n"
"build $.: cc bar.cc\n",
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cc\n command = foo\n && bar",
&err));
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cc\n command = foo\n"
"build $: cc bar.cc\n",
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("default\n",
&err));
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("default nonexistent\n",
&err));
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule r\n command = r\n"
"build b: r\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("default $a\n", &err));
EXPECT_EQ("input:1: empty path\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule r\n"
" command = r\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
// the indented blank line must terminate the rule
// this also verifies that "unexpected (token)" errors are correct
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("pool\n", &err));
EXPECT_EQ("input:1: expected pool name\n", err);
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("pool foo\n", &err));
EXPECT_EQ("input:2: expected 'depth =' line\n", err);
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("pool foo\n"
" depth = 4\n"
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("pool foo\n"
" depth = -1\n", &err));
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("pool foo\n"
" bar = 1\n", &err));
}
{
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
// Pool names are dereferenced at edge parsing time.
EXPECT_FALSE(parser.ParseTest("rule run\n"
}
TEST_F(ParserTest, MissingInput) {
- State state;
- ManifestParser parser(&state, &fs_, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, &fs_, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.Load("build.ninja", &err));
EXPECT_EQ("loading 'build.ninja': No such file or directory", err);
}
TEST_F(ParserTest, MultipleOutputs) {
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_TRUE(parser.ParseTest("rule cc\n command = foo\n depfile = bar\n"
"build a.o b.o: cc c.cc\n",
}
TEST_F(ParserTest, MultipleOutputsWithDeps) {
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_FALSE(parser.ParseTest("rule cc\n command = foo\n deps = gcc\n"
"build a.o b.o: cc c.cc\n",
}
TEST_F(ParserTest, CRLF) {
- State state;
- ManifestParser parser(&state, NULL, kDupeEdgeActionWarn);
+ State local_state;
+ ManifestParser parser(&local_state, NULL, kDupeEdgeActionWarn);
string err;
EXPECT_TRUE(parser.ParseTest("# comment with crlf\r\n", &err));