From: Lukas Krickl Date: Mon, 2 Mar 2026 14:48:36 +0000 (+0100) Subject: tests: Added test filter X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=ffcb256abfe4891d927cf9badbf3ca5ba196765a;p=lrts%2F.git tests: Added test filter --- diff --git a/src/p_pc/u_string.c b/src/p_pc/u_string.c index 7d1fd18..8219e26 100644 --- a/src/p_pc/u_string.c +++ b/src/p_pc/u_string.c @@ -16,3 +16,7 @@ int u_sprintf(char *buffer, const char *fmt, ...) { return res; } + +int u_strncmp(const char *s1, const char *s2, u32 n) { + return strncmp(s1, s2, n); +} diff --git a/src/t_command.h b/src/t_command.h index ad35c19..0e92bf4 100644 --- a/src/t_command.h +++ b/src/t_command.h @@ -47,7 +47,6 @@ struct t_command_queue { struct t_command buffer[T_COMMANDS_MAX]; }; -extern struct t_command_queue t_command_queue; /* runs the command queue * returns number of commands run diff --git a/src/test.c b/src/test.c index 3c84b30..3e11b59 100644 --- a/src/test.c +++ b/src/test.c @@ -16,6 +16,12 @@ #endif +/** + * To only run specific test-cases + * run with test names as cli argumentst + * e.g. ./test arena + * will only run arena test + */ int main(int argc, char **argv) { p_io_init(); @@ -29,7 +35,7 @@ int main(int argc, char **argv) { T_TESTCASE("fixed-point-macro", t_test_fp_macros); T_TESTCASE("fixed-point-sqrt", t_test_fp_sqrt); - T_TESTCASE("command push", test_t_command_push); + T_TESTCASE("command-push", test_t_command_push); T_TESTEND("lrts test"); diff --git a/src/tests/t_defs.h b/src/tests/t_defs.h index efd7bf1..9a210d1 100644 --- a/src/tests/t_defs.h +++ b/src/tests/t_defs.h @@ -24,13 +24,24 @@ * Test functions should return 0 when they succeed otherwise 1 */ #define T_TESTCASE(name, fn) { \ - T_TESTBEGIN(name); \ - if (fn() == 0) {\ - u_fprintf(u_stderr, "%s OK\n", name); \ - } else {\ - u_fprintf(u_stderr, "%s FAIL\n", name); \ - }\ - T_TESTEND(name); \ + i32 i; \ + struct lrts_config *c = lrts_cfg(); \ + lrts_bool skip = c->argc != 0; \ + for (i = 0; i < c->argc; i++) { \ + if (u_strncmp(name, c->argv[i], strlen(name)) == 0) { \ + skip = LRTS_FALSE; \ + break; \ + } \ + } \ + if (!skip) { \ + T_TESTBEGIN(name); \ + if (fn() == 0) {\ + u_fprintf(u_stderr, "%s OK\n", name); \ + } else {\ + u_fprintf(u_stderr, "%s FAIL\n", name); \ + }\ + T_TESTEND(name); \ + } \ } #endif diff --git a/src/u_string.h b/src/u_string.h index 3b191b7..8431cd0 100644 --- a/src/u_string.h +++ b/src/u_string.h @@ -6,4 +6,6 @@ int u_vsprintf(char *buffer, const char *fmt, va_list args); int u_sprintf(char *buffer, const char *fmt, ...); +int u_strncmp(const char *s1, const char *s2, u32 n); + #endif