Add error logging and corresponding tests for parser syntax errors

This commit is contained in:
2026-04-25 14:37:08 +02:00
parent 7c7e0c3272
commit 91593e12b7
8 changed files with 70 additions and 15 deletions
+32 -2
View File
@@ -17,7 +17,37 @@ static void test_parser_bad_module_name(void) {
TokenStream* ts = tokenstream_open("test.c", "import other_module;");
Module* m = parser_parse(ts);
assert_log_file("bad_module_name.log", "expected error to be logged for bad module name");
assert_log_file("v0/tests/bad_module_name.txt", "expected error to be logged for bad module name");
parser_free(m);
tokenstream_close(ts);
}
static void test_parser_missing_semicolon_module(void) {
TokenStream* ts = tokenstream_open("test.c", "module my_module");
Module* m = parser_parse(ts);
assert_log_file("v0/tests/missing_semicolon_module.txt", "expected error for missing semicolon");
parser_free(m);
tokenstream_close(ts);
}
static void test_parser_missing_semicolon_import(void) {
TokenStream* ts = tokenstream_open("test.c", "module my_module; import other_module");
Module* m = parser_parse(ts);
assert_log_file("v0/tests/missing_semicolon_import.txt", "expected error for missing semicolon");
parser_free(m);
tokenstream_close(ts);
}
static void test_parser_bad_import_name(void) {
TokenStream* ts = tokenstream_open("test.c", "module my_module; import ;");
Module* m = parser_parse(ts);
assert_log_file("v0/tests/bad_import_name.txt", "expected error for bad import name");
parser_free(m);
tokenstream_close(ts);
@@ -36,4 +66,4 @@ static void test_parser_imports(void) {
parser_free(m);
tokenstream_close(ts);
}
}