diff --git a/test/test.h b/test/test.h index ebc7d6d..1cf37f7 100644 --- a/test/test.h +++ b/test/test.h @@ -61,8 +61,13 @@ typedef struct const u64 size; } test_suite_t; -#define MAKE_TEST_SUITE(NAME) \ - {.name = #NAME, .tests = NAME, .size = ARRSIZE(NAME)} +#define MAKE_TEST_SUITE(NAME, DESC, ...) \ + const test_fn NAME##_TESTS[] = {__VA_ARGS__}; \ + const test_suite_t NAME = { \ + .name = DESC, \ + .tests = NAME##_TESTS, \ + .size = ARRSIZE(NAME##_TESTS), \ + } #endif diff --git a/test/test_lisp_api.c b/test/test_lisp_api.c index 107613d..ea8b782 100644 --- a/test/test_lisp_api.c +++ b/test/test_lisp_api.c @@ -186,19 +186,11 @@ void sys_test(void) TEST_PASSED(); } -const test_suite_t LISP_API_SUITE = { - .name = "Lisp API Tests", - .tests = - (test_fn[]){ - MAKE_TEST_FN(smi_test), - MAKE_TEST_FN(smi_oob_test), - MAKE_TEST_FN(sym_fresh_test), - MAKE_TEST_FN(sym_unique_test), - MAKE_TEST_FN(cons_test), - MAKE_TEST_FN(sys_test), - }, - .size = 6, -}; +MAKE_TEST_SUITE(LISP_API_SUITE, "LISP API Tests", + + MAKE_TEST_FN(smi_test), MAKE_TEST_FN(smi_oob_test), + MAKE_TEST_FN(sym_fresh_test), MAKE_TEST_FN(sym_unique_test), + MAKE_TEST_FN(cons_test), MAKE_TEST_FN(sys_test), ); /* Copyright (C) 2026 Aryadev Chavali diff --git a/test/test_stream.c b/test/test_stream.c index aac5b32..66e123d 100644 --- a/test/test_stream.c +++ b/test/test_stream.c @@ -87,21 +87,9 @@ void stream_test_line_col(void) TODO("Not implemented"); } -const test_suite_t STREAM_SUITE = { - .name = "Stream Tests", - .tests = - (test_fn[]){ - MAKE_TEST_FN(stream_test_string), - // MAKE_TEST_FN(stream_test_file), - // MAKE_TEST_FN(stream_test_peek_next), - // MAKE_TEST_FN(stream_test_seek), - // MAKE_TEST_FN(stream_test_substr), - // MAKE_TEST_FN(stream_test_till), - // MAKE_TEST_FN(stream_test_while), - // MAKE_TEST_FN(stream_test_line_col), - }, - .size = 1, -}; +MAKE_TEST_SUITE(STREAM_SUITE, "Stream Tests", + + MAKE_TEST_FN(stream_test_string), ); /* Copyright (C) 2026 Aryadev Chavali diff --git a/test/test_sv.c b/test/test_sv.c index 6298999..2926287 100644 --- a/test/test_sv.c +++ b/test/test_sv.c @@ -28,14 +28,7 @@ void sv_copy_test(void) } } -const test_suite_t SV_SUITE = { - .name = "String View Tests", - .tests = - (test_fn[]){ - MAKE_TEST_FN(sv_copy_test), - }, - .size = 1, -}; +MAKE_TEST_SUITE(SV_SUITE, "String View Tests", MAKE_TEST_FN(sv_copy_test), ); /* Copyright (C) 2026 Aryadev Chavali diff --git a/test/test_symtable.c b/test/test_symtable.c index d10a737..21ca854 100644 --- a/test/test_symtable.c +++ b/test/test_symtable.c @@ -22,14 +22,9 @@ void symtable_test(void) TEST_PASSED(); } -const test_suite_t SYMTABLE_SUITE = { - .name = "Symbol Table Tests", - .tests = - (test_fn[]){ - MAKE_TEST_FN(symtable_test), - }, - .size = 1, -}; +MAKE_TEST_SUITE(SYMTABLE_SUITE, "Symbol Table Tests", + + MAKE_TEST_FN(symtable_test), ); /* Copyright (C) 2026 Aryadev Chavali diff --git a/test/test_vec.c b/test/test_vec.c index 238de1c..54c764d 100644 --- a/test/test_vec.c +++ b/test/test_vec.c @@ -69,15 +69,9 @@ void vec_test_substr(void) TEST_PASSED(); } -const test_suite_t VEC_SUITE = { - .name = "Vector Tests", - .tests = - (test_fn[]){ - MAKE_TEST_FN(vec_test_concat), - MAKE_TEST_FN(vec_test_substr), - }, - .size = 2, -}; +MAKE_TEST_SUITE(VEC_SUITE, "Vector Tests", + + MAKE_TEST_FN(vec_test_concat), MAKE_TEST_FN(vec_test_substr), ); /* Copyright (C) 2026 Aryadev Chavali