Refactor tests
This commit is contained in:
+7
-38
@@ -4,58 +4,34 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
static void test_parser_module_name(void) {
|
||||
TokenStream* ts = tokenstream_open("test.c", "module my_module;");
|
||||
Module* m = parser_parse(ts);
|
||||
Module* m = test_get_ast();
|
||||
|
||||
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_get_test();
|
||||
Module* m = parser_parse(ts);
|
||||
|
||||
test_get_ast();
|
||||
assert_log_file("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_get_test();
|
||||
Module* m = parser_parse(ts);
|
||||
|
||||
test_get_ast();
|
||||
assert_log_file("expected error for missing semicolon");
|
||||
|
||||
parser_free(m);
|
||||
tokenstream_close(ts);
|
||||
}
|
||||
|
||||
static void test_parser_missing_semicolon_import(void) {
|
||||
TokenStream* ts = tokenstream_get_test();
|
||||
Module* m = parser_parse(ts);
|
||||
|
||||
test_get_ast();
|
||||
assert_log_file("expected error for missing semicolon");
|
||||
|
||||
parser_free(m);
|
||||
tokenstream_close(ts);
|
||||
}
|
||||
|
||||
static void test_parser_bad_import_name(void) {
|
||||
TokenStream* ts = tokenstream_get_test();
|
||||
Module* m = parser_parse(ts);
|
||||
|
||||
test_get_ast();
|
||||
assert_log_file("expected error for bad import 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);
|
||||
Module* m = test_get_ast();
|
||||
|
||||
assert_not_null(m, "expected module to be parsed");
|
||||
assert_str("my_module", m->name, "expected name 'my_module'");
|
||||
@@ -64,13 +40,10 @@ static void test_parser_imports(void) {
|
||||
assert_int(1, (int)m->import_count, "expected one import");
|
||||
assert_str("other_module", m->imports[0].module_name, "expected import name 'other_module'");
|
||||
assert_false(m->imports[0].is_public, "expected import to not be public");
|
||||
parser_free(m);
|
||||
tokenstream_close(ts);
|
||||
}
|
||||
|
||||
static void test_parser_public_imports(void) {
|
||||
TokenStream* ts = tokenstream_open("test.c", "module my_module; import public other_module;");
|
||||
Module* m = parser_parse(ts);
|
||||
Module* m = test_get_ast();
|
||||
|
||||
assert_not_null(m, "expected module to be parsed");
|
||||
assert_str("my_module", m->name, "expected name 'my_module'");
|
||||
@@ -79,8 +52,6 @@ static void test_parser_public_imports(void) {
|
||||
assert_int(1, (int)m->import_count, "expected one import");
|
||||
assert_str("other_module", m->imports[0].module_name, "expected import name 'other_module'");
|
||||
assert_true(m->imports[0].is_public, "expected import to be public");
|
||||
parser_free(m);
|
||||
tokenstream_close(ts);
|
||||
}
|
||||
|
||||
static void test_parser_alias_simple(void) {
|
||||
@@ -110,7 +81,6 @@ static void test_parser_alias_array(void) {
|
||||
assert_true(valueType->builtin.isSigned, "expected signed");
|
||||
}
|
||||
|
||||
|
||||
static void test_parser_alias_and_import_mix(void) {
|
||||
Module* m = test_get_ast();
|
||||
|
||||
@@ -122,5 +92,4 @@ static void test_parser_alias_and_import_mix(void) {
|
||||
assert_str("bar", m->imports[1].module_name, "expected import 2 name 'bar'");
|
||||
assert_str("myalias", m->aliases[0].name, "expected alias 1 name 'myalias'");
|
||||
assert_str("otheralias", m->aliases[1].name, "expected alias 2 name 'otheralias'");
|
||||
parser_free(m);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user