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
.idea/modules/CompilerProjekt.test.iml generated Normal file
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>

View File

@ -16,6 +16,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
class LexerGrammarParserTest {
@ -49,9 +50,26 @@ class LexerGrammarParserTest {
"Expr.stups",
"GeneralWhile.stups",
"GeneralIfElse.stups"})
void testVariousPrograms(String prog) {
void testCorrectPrograms(String prog) {
final Lexer lex = getLexer(prog);
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);
}
}

View File

@ -95,7 +95,10 @@ class TypeCheckerTest {
"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) {
assertThatThrownBy(() -> TypeChecker.validate(this.getTree(expr))).isInstanceOfAny(OperatorUsageException.class,
ParseException.class);

View File

@ -0,0 +1,7 @@
class MyClass {
public static void main(String[] args) {
if () {
i = 1;
}
}
}

View File

@ -0,0 +1,5 @@
class MyClass {
public static void main(String[] args) {
i = 1 * ();
}
}

View File

@ -0,0 +1 @@
class MyClass {

View File

@ -0,0 +1 @@
class MyClass }

View File

@ -0,0 +1,3 @@
class MyClass {
int x = 5;
}

View File

@ -0,0 +1,5 @@
class MyClass {
public static void mainmain(String[] args) {
int i = 1;
}
}

View File

@ -0,0 +1 @@
;

View File

@ -0,0 +1,5 @@
class MyClass {
public static void main(String[] args) {
int x;
}
}

View File

@ -0,0 +1,5 @@
class MyClass {
public static void main(String[] args) {
5;
}
}

View File

@ -0,0 +1,5 @@
class MyClass {
public static void main(String[] args) {
int x = 1
}
}