Extend and fix unit tests.

This commit is contained in:
Ivan Kochurkin 2017-10-22 15:40:15 +03:00
parent 328cdf3583
commit 9324d0716b
2 changed files with 17 additions and 11 deletions

View File

@ -410,14 +410,20 @@ public class TestSymbolIssues extends BaseJavaToolTest {
"TOKEN3: 'asdf';\n" + "TOKEN3: 'asdf';\n" +
"TOKEN4: 'q' 'w' 'e' 'r' | A;\n" + "TOKEN4: 'q' 'w' 'e' 'r' | A;\n" +
"TOKEN5: 'aaaa';\n" + "TOKEN5: 'aaaa';\n" +
"TOKEN6: 'asdf';\n" +
"TOKEN7: 'qwer'+;\n" +
"TOKEN8: 'a' 'b' | 'b' | 'a' 'b';\n" +
"\n" + "\n" +
"mode MODE1;\n" + "mode MODE1;\n" +
"TOKEN6: 'asdf';\n" + "TOKEN9: 'asdf';\n" +
"\n" + "\n" +
"fragment A: 'A';", "fragment A: 'A';",
"warning(" + ErrorType.TOKEN_UNREACHABLE.code + "): Test.g4:4:0: token TOKEN3 unreachable. Its value asdf is always overlapped by token TOKEN1\n" + "warning(" + ErrorType.TOKEN_UNREACHABLE.code + "): Test.g4:4:0: One of the token TOKEN3 values unreachable. asdf is always overlapped by token TOKEN1\n" +
"warning(" + ErrorType.TOKEN_UNREACHABLE.code + "): Test.g4:5:0: token TOKEN4 unreachable. Its value qwer is always overlapped by token TOKEN1\n" "warning(" + ErrorType.TOKEN_UNREACHABLE.code + "): Test.g4:5:0: One of the token TOKEN4 values unreachable. qwer is always overlapped by token TOKEN1\n" +
"warning(" + ErrorType.TOKEN_UNREACHABLE.code + "): Test.g4:7:0: One of the token TOKEN6 values unreachable. asdf is always overlapped by token TOKEN1\n" +
"warning(" + ErrorType.TOKEN_UNREACHABLE.code + "): Test.g4:7:0: One of the token TOKEN6 values unreachable. asdf is always overlapped by token TOKEN3\n" +
"warning(" + ErrorType.TOKEN_UNREACHABLE.code + "): Test.g4:9:0: One of the token TOKEN8 values unreachable. ab is always overlapped by token TOKEN8\n"
}; };
testErrors(test, false); testErrors(test, false);

View File

@ -269,11 +269,11 @@ public class TestToolSyntaxErrors extends BaseJavaToolTest {
"grammar A;\n" + "grammar A;\n" +
"tokens{Foo}\n" + "tokens{Foo}\n" +
"b : Foo ;\n" + "b : Foo ;\n" +
"X : 'foo' -> popmode;\n" + // "meant" to use -> popMode "X : 'foo1' -> popmode;\n" + // "meant" to use -> popMode
"Y : 'foo' -> token(Foo);", // "meant" to use -> type(Foo) "Y : 'foo2' -> token(Foo);", // "meant" to use -> type(Foo)
"error(" + ErrorType.INVALID_LEXER_COMMAND.code + "): A.g4:4:13: lexer command popmode does not exist or is not supported by the current target\n" + "error(" + ErrorType.INVALID_LEXER_COMMAND.code + "): A.g4:4:14: lexer command popmode does not exist or is not supported by the current target\n" +
"error(" + ErrorType.INVALID_LEXER_COMMAND.code + "): A.g4:5:13: lexer command token does not exist or is not supported by the current target\n" "error(" + ErrorType.INVALID_LEXER_COMMAND.code + "): A.g4:5:14: lexer command token does not exist or is not supported by the current target\n"
}; };
super.testErrors(pair, true); super.testErrors(pair, true);
} }
@ -283,11 +283,11 @@ public class TestToolSyntaxErrors extends BaseJavaToolTest {
"grammar A;\n" + "grammar A;\n" +
"tokens{Foo}\n" + "tokens{Foo}\n" +
"b : Foo ;\n" + "b : Foo ;\n" +
"X : 'foo' -> popMode(Foo);\n" + // "meant" to use -> popMode "X : 'foo1' -> popMode(Foo);\n" + // "meant" to use -> popMode
"Y : 'foo' -> type;", // "meant" to use -> type(Foo) "Y : 'foo2' -> type;", // "meant" to use -> type(Foo)
"error(" + ErrorType.UNWANTED_LEXER_COMMAND_ARGUMENT.code + "): A.g4:4:13: lexer command popMode does not take any arguments\n" + "error(" + ErrorType.UNWANTED_LEXER_COMMAND_ARGUMENT.code + "): A.g4:4:14: lexer command popMode does not take any arguments\n" +
"error(" + ErrorType.MISSING_LEXER_COMMAND_ARGUMENT.code + "): A.g4:5:13: missing argument for lexer command type\n" "error(" + ErrorType.MISSING_LEXER_COMMAND_ARGUMENT.code + "): A.g4:5:14: missing argument for lexer command type\n"
}; };
super.testErrors(pair, true); super.testErrors(pair, true);
} }