From 01611bcde000af7a03f9aaf007ceb30d58caa7da Mon Sep 17 00:00:00 2001 From: Kyler Date: Thu, 30 Oct 2025 13:21:04 -0600 Subject: [PATCH] Added another test --- SLS_C/tests/lexer_tests.c | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/SLS_C/tests/lexer_tests.c b/SLS_C/tests/lexer_tests.c index 380da75..cfa9719 100644 --- a/SLS_C/tests/lexer_tests.c +++ b/SLS_C/tests/lexer_tests.c @@ -12,7 +12,7 @@ #include "sls/lexer.h" #include "tests/tests.h" -static const size_t NUM_OF_TESTS = 1; +static const size_t NUM_OF_TESTS = 2; typedef struct { TestResult result; @@ -211,22 +211,25 @@ static Boolean test_eof_value(LexerTest *test, LexerResult result, size_t i) { static TestResult test_add_statement() { LexerTest test = start_up_test("test_add_statement", "3 4 +"); - LexerResult result = lexical_analysis(&test.lexer_info); - - if (result.type == SLS_ERROR) - return error_fail_test(&test, result, result.error); - - LexerTokenResult *head = result.result; + if (result.type == SLS_ERROR) return error_fail_test(&test, result, result.error); size_t i = 0; + if (test_integer_value(&test, result, i++, INTEGER_I64, 3)) return test.result; + if (test_integer_value(&test, result, i++, INTEGER_I64, 4)) return test.result; + if (test_identifier_value(&test, result, i++, FALSE, "+")) return test.result; + if (test_eof_value(&test, result, i++)) return test.result; + return pass_test(&test, result); +} - if (test_integer_value(&test, result, i, INTEGER_I64, 3)) return test.result; - i++; - if (test_integer_value(&test, result, i, INTEGER_I64, 4)) return test.result; - i++; - if (test_identifier_value(&test, result, i, FALSE, "+")) return test.result; - i++; - if (test_eof_value(&test, result, i)) return test.result; +static TestResult test_sub_statement() { + LexerTest test = start_up_test("test_add_statement", "10 3 -"); + LexerResult result = lexical_analysis(&test.lexer_info); + if (result.type == SLS_ERROR) return error_fail_test(&test, result, result.error); + size_t i = 0; + if (test_integer_value(&test, result, i++, INTEGER_I64, 10)) return test.result; + if (test_integer_value(&test, result, i++, INTEGER_I64, 3)) return test.result; + if (test_identifier_value(&test, result, i++, FALSE, "-")) return test.result; + if (test_eof_value(&test, result, i++)) return test.result; return pass_test(&test, result); } @@ -237,7 +240,10 @@ TestsReport run_lexer_tests() { .tests = malloc(sizeof(TestResult) * NUM_OF_TESTS), }; - test_report.tests[0] = test_add_statement(); + size_t i = 0; + + test_report.tests[i++] = test_add_statement(); + test_report.tests[i++] = test_sub_statement(); return test_report; }