Add error logging and corresponding tests for parser syntax errors
This commit is contained in:
+32
-2
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user