7c7e0c3272
Co-authored-by: Copilot <copilot@github.com>
39 lines
1.2 KiB
C
39 lines
1.2 KiB
C
#include "test.h"
|
|
#include "parser.h"
|
|
#include <string.h>
|
|
|
|
static void test_parser_module_name(void) {
|
|
TokenStream* ts = tokenstream_open("test.c", "module my_module;");
|
|
Module* m = parser_parse(ts);
|
|
|
|
assert_not_null(m, "expected module to be parsed");
|
|
assert_str("my_module", m->name, "expected name 'my_module'");
|
|
|
|
parser_free(m);
|
|
tokenstream_close(ts);
|
|
}
|
|
|
|
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");
|
|
|
|
parser_free(m);
|
|
tokenstream_close(ts);
|
|
}
|
|
|
|
static void test_parser_imports(void) {
|
|
TokenStream* ts = tokenstream_open("test.c", "module my_module; import other_module;");
|
|
Module* m = parser_parse(ts);
|
|
|
|
assert_not_null(m, "expected module to be parsed");
|
|
assert_str("my_module", m->name, "expected name 'my_module'");
|
|
|
|
assert_not_null(m->imports, "expected imports to be parsed");
|
|
assert_int(1, m->import_count, "expected one import");
|
|
assert_str("other_module", m->imports[0].module_name, "expected import name 'other_module'");
|
|
|
|
parser_free(m);
|
|
tokenstream_close(ts);
|
|
} |