tests: Meaningful and pretty logging for tests

This commit is contained in:
2026-02-05 04:56:11 +00:00
parent 45ef1fa01a
commit 2705ef9bb7
4 changed files with 30 additions and 30 deletions

View File

@@ -31,7 +31,7 @@ int main(void)
printf("Suite [%s]\n", suite.name); printf("Suite [%s]\n", suite.name);
for (u64 j = 0; j < suite.size; ++j) for (u64 j = 0; j < suite.size; ++j)
{ {
printf("[%s]: Running...\n", suite.tests[j].name); printf("\t[%s]: Running...\n", suite.tests[j].name);
suite.tests[j].fn(); suite.tests[j].fn();
} }
} }

View File

@@ -10,26 +10,25 @@
#include <alisp/alisp.h> #include <alisp/alisp.h>
#define TEST_PASSED() printf("[%s]: Passed\n", __func__) #define TEST_PASSED() printf("\t[%s]: Passed\n", __func__)
#define TEST(COND, ...) \ #define TEST(COND, ...) \
do \ do \
{ \ { \
bool cond = (COND); \ bool cond = (COND); \
if (!cond) \ if (!cond) \
{ \ { \
printf("\tFAIL: "); \ printf("\t\tFAIL: "); \
} \ } \
else \ else \
{ \ { \
printf("\tPASS: "); \ printf("\t\tPASS: "); \
} \ } \
printf("%s => ", #COND); \ printf(__VA_ARGS__); \
printf(__VA_ARGS__); \ printf("\n\t\t [%s]\n", #COND); \
printf("\n"); \ if (!cond) \
if (!cond) \ { \
{ \ assert(0); \
assert(0); \ } \
} \
} while (0) } while (0)
typedef struct TestFn typedef struct TestFn

View File

@@ -39,7 +39,7 @@ void sym_test(void)
char *out = as_sym(lisp); char *out = as_sym(lisp);
TEST(in != out, "%p != %p", in, out); TEST(in != out, "%p != %p", in, out);
TEST(strlen(in) == strlen(out), "%zu == %zu", strlen(in), strlen(out)); TEST(strlen(in) == strlen(out), "%zu == %zu", strlen(in), strlen(out));
TEST(strncmp(in, out, strlen(in)) == 0, "%d", strncmp(in, out, strlen(in))); TEST(strncmp(in, out, strlen(in)) == 0, "`%s` == `%s`", in, out);
} }
TEST_PASSED(); TEST_PASSED();
sys_free(&system); sys_free(&system);

View File

@@ -8,7 +8,7 @@
#include "./data.h" #include "./data.h"
#include "./test.h" #include "./test.h"
void vec_test1(void) void vec_test_concat(void)
{ {
sys_t system = {0}; sys_t system = {0};
sys_init(&system); sys_init(&system);
@@ -28,14 +28,15 @@ void vec_test1(void)
TEST(vec->size == ARRSIZE(words_text), "%lu == %lu", vec->size, TEST(vec->size == ARRSIZE(words_text), "%lu == %lu", vec->size,
ARRSIZE(words_text)); ARRSIZE(words_text));
TEST(strncmp((char *)vec_data(vec), words_text, vec->size) == 0, "%d", TEST(strncmp((char *)vec_data(vec), words_text, vec->size) == 0,
strncmp((char *)vec_data(vec), words_text, vec->size)); "%p@%lu == %p@%lu", (char *)vec_data(vec), vec->size, words_text,
strlen(words_text));
TEST_PASSED(); TEST_PASSED();
sys_free(&system); sys_free(&system);
} }
void vec_test2(void) void vec_test_substr(void)
{ {
sys_t system = {0}; sys_t system = {0};
sys_init(&system); sys_init(&system);
@@ -60,8 +61,8 @@ void vec_test2(void)
vec_append(as_vec(lvec), text + test.start, test.size); vec_append(as_vec(lvec), text + test.start, test.size);
TEST(as_vec(lvec)->size > size, "%lu > %lu", as_vec(lvec)->size, size); TEST(as_vec(lvec)->size > size, "%lu > %lu", as_vec(lvec)->size, size);
TEST(strncmp((char *)vec_data(as_vec(lvec)), substr.data, substr.size) == 0, TEST(strncmp((char *)vec_data(as_vec(lvec)), substr.data, substr.size) == 0,
"%d", "%p@%lu == %p@%lu", (char *)vec_data(as_vec(lvec)), as_vec(lvec)->size,
strncmp((char *)vec_data(as_vec(lvec)), substr.data, substr.size)); substr.data, substr.size);
} }
TEST_PASSED(); TEST_PASSED();
@@ -69,8 +70,8 @@ void vec_test2(void)
} }
const test_fn TESTS_VEC[] = { const test_fn TESTS_VEC[] = {
MAKE_TEST_FN(vec_test1), MAKE_TEST_FN(vec_test_concat),
MAKE_TEST_FN(vec_test2), MAKE_TEST_FN(vec_test_substr),
}; };
const test_suite_t VEC_SUITE = { const test_suite_t VEC_SUITE = {