From f038d30d7749d7de117f6fbf476b90273bdc2e4a Mon Sep 17 00:00:00 2001 From: Karma Riuk Date: Fri, 11 Jul 2025 09:07:12 +0200 Subject: [PATCH] written the test in a different way, since we can't use for loops around subcases --- test/parser/expression.cpp | 43 ++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/test/parser/expression.cpp b/test/parser/expression.cpp index fed1154..fe1d207 100644 --- a/test/parser/expression.cpp +++ b/test/parser/expression.cpp @@ -49,32 +49,25 @@ TEST_SUITE("Parser: expression") { ParserFixture, "Simple expression statement with prefix before integer" ) { - SUBCASE("Prefix: '!'") { - setup("!5;"); +#define CASE(name, input, _op, _right) \ + SUBCASE(name) { \ + setup(input); \ + \ + REQUIRE(program->statements.size() == 1); \ + ast::expression_stmt* expression_stmt = \ + cast(program->statements[0]); \ + \ + ast::prefix_expr* prefix_expr = \ + cast(expression_stmt->expression); \ + \ + REQUIRE(prefix_expr->op == _op); \ + test_integer_literal(prefix_expr->right, _right); \ + } - REQUIRE(program->statements.size() == 1); - ast::expression_stmt* expression_stmt = - cast(program->statements[0]); + CASE("Prefix: '!'", "!5;", "!", 5); + CASE("Prefix: '-'", "-15;", "-", 15); +#undef CASE + } - ast::prefix_expr* prefix_expr = - cast(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(program->statements[0]); - - ast::prefix_expr* prefix_expr = - cast(expression_stmt->expression); - - REQUIRE(prefix_expr->op == "-"); - test_integer_literal(prefix_expr->right, 15); - } } }