written the test in a different way, since we

can't use for loops around subcases
This commit is contained in:
Karma Riuk
2025-07-11 09:07:12 +02:00
parent ed3cf748e2
commit f038d30d77

View File

@@ -49,32 +49,25 @@ TEST_SUITE("Parser: expression") {
ParserFixture, ParserFixture,
"Simple expression statement with prefix before integer" "Simple expression statement with prefix before integer"
) { ) {
SUBCASE("Prefix: '!'") { #define CASE(name, input, _op, _right) \
setup("!5;"); SUBCASE(name) { \
setup(input); \
\
REQUIRE(program->statements.size() == 1); \
ast::expression_stmt* expression_stmt = \
cast<ast::expression_stmt>(program->statements[0]); \
\
ast::prefix_expr* prefix_expr = \
cast<ast::prefix_expr>(expression_stmt->expression); \
\
REQUIRE(prefix_expr->op == _op); \
test_integer_literal(prefix_expr->right, _right); \
}
REQUIRE(program->statements.size() == 1); CASE("Prefix: '!'", "!5;", "!", 5);
ast::expression_stmt* expression_stmt = CASE("Prefix: '-'", "-15;", "-", 15);
cast<ast::expression_stmt>(program->statements[0]); #undef CASE
}
ast::prefix_expr* prefix_expr =
cast<ast::prefix_expr>(expression_stmt->expression);
REQUIRE(prefix_expr->op == "!");
test_integer_literal(prefix_expr->right, 5);
}
SUBCASE("Prefix: '-'") {
setup("-15;");
REQUIRE(program->statements.size() == 1);
ast::expression_stmt* expression_stmt =
cast<ast::expression_stmt>(program->statements[0]);
ast::prefix_expr* prefix_expr =
cast<ast::prefix_expr>(expression_stmt->expression);
REQUIRE(prefix_expr->op == "-");
test_integer_literal(prefix_expr->right, 15);
}
} }
} }