new tests

This commit is contained in:
ChUrl
2020-12-16 14:55:52 +01:00
parent 938d2a6afe
commit c5aee78b7b
13 changed files with 69 additions and 2 deletions
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="CheckStyle-IDEA-Module">
<option name="configuration">
<map />
</option>
</component>
</module>
@@ -16,6 +16,7 @@ import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
class LexerGrammarParserTest { class LexerGrammarParserTest {
@@ -49,9 +50,26 @@ class LexerGrammarParserTest {
"Expr.stups", "Expr.stups",
"GeneralWhile.stups", "GeneralWhile.stups",
"GeneralIfElse.stups"}) "GeneralIfElse.stups"})
void testVariousPrograms(String prog) { void testCorrectPrograms(String prog) {
final Lexer lex = getLexer(prog); final Lexer lex = getLexer(prog);
assertThat(parser.parse(lex.getAllTokens(), lex.getVocabulary())).isNotNull(); assertThat(parser.parse(lex.getAllTokens(), lex.getVocabulary())).isNotNull();
} }
@ParameterizedTest
@ValueSource(strings = {"FailingSemicolon.stups",
"FailingMissingBrace.stups",
"FailingMissingBrace2.stups",
"FailingMissingMain.stups",
"FailingMissingMain2.stups",
"FailingEmptyParExpr.stups",
"FailingEmptyParExpr2.stups",
"FailingWrongStatement.stups",
"FailingWrongStatement2.stups",
"FailingWrongStatement3.stups"})
void testIncorrectPrograms(String prog) {
final Lexer lex = getLexer(prog);
assertThatThrownBy(() -> parser.parse(lex.getAllTokens(), lex.getVocabulary())).isInstanceOf(ParseException.class);
}
} }
@@ -95,7 +95,10 @@ class TypeCheckerTest {
"boolean b = 1 >;", "boolean b = 1 >;",
"boolean b = >= 1;", "boolean b = >= 1;",
"boolean b = 1 ==;", "boolean b = 1 ==;",
"boolean b = 1 !=;"}) "boolean b = 1 !=;",
"boolean b = !;",
"boolean b = <;",
"boolean b = true !false;"})
void testBinaryOperatorIncorrect(String expr) { void testBinaryOperatorIncorrect(String expr) {
assertThatThrownBy(() -> TypeChecker.validate(this.getTree(expr))).isInstanceOfAny(OperatorUsageException.class, assertThatThrownBy(() -> TypeChecker.validate(this.getTree(expr))).isInstanceOfAny(OperatorUsageException.class,
ParseException.class); ParseException.class);
@@ -0,0 +1,7 @@
class MyClass {
public static void main(String[] args) {
if () {
i = 1;
}
}
}
@@ -0,0 +1,5 @@
class MyClass {
public static void main(String[] args) {
i = 1 * ();
}
}
@@ -0,0 +1 @@
class MyClass {
@@ -0,0 +1 @@
class MyClass }
@@ -0,0 +1,3 @@
class MyClass {
int x = 5;
}
@@ -0,0 +1,5 @@
class MyClass {
public static void mainmain(String[] args) {
int i = 1;
}
}
@@ -0,0 +1 @@
;
@@ -0,0 +1,5 @@
class MyClass {
public static void main(String[] args) {
int x;
}
}
@@ -0,0 +1,5 @@
class MyClass {
public static void main(String[] args) {
5;
}
}
@@ -0,0 +1,5 @@
class MyClass {
public static void main(String[] args) {
int x = 1
}
}