X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4386010688d60bea7f54c2383aa9c923f2980948..68fddbaeb8d7a332bec9eb09ef0e7e548ac1850c:/src/xbt/cunit.cpp diff --git a/src/xbt/cunit.cpp b/src/xbt/cunit.cpp index 8008c3eace..cde26d96a9 100644 --- a/src/xbt/cunit.cpp +++ b/src/xbt/cunit.cpp @@ -9,13 +9,15 @@ /* At some point we should use https://github.com/google/googletest instead */ #include "src/internal_config.h" -#include +#include #include #include "xbt/sysdep.h" /* bvprintf */ #include "xbt/cunit.h" #include "xbt/dynar.h" +#define STRLEN 1024 + /* collection of all suites */ static xbt_dynar_t _xbt_test_suites = nullptr; /* global statistics */ @@ -38,11 +40,12 @@ static int _xbt_test_suite_disabled = 0; xbt_test_unit_t _xbt_test_current_unit = nullptr; /* test suite test log */ -typedef struct s_xbt_test_log { +struct s_xbt_test_log { char *text; const char *file; int line; -} *xbt_test_log_t; +}; +typedef s_xbt_test_log* xbt_test_log_t; static void xbt_test_log_dump(xbt_test_log_t log) { @@ -53,7 +56,7 @@ static void xbt_test_log_dump(xbt_test_log_t log) } /* test suite test check */ -typedef struct s_xbt_test_test { +struct s_xbt_test_test { char *title; int failed; int expected_failure; @@ -61,7 +64,8 @@ typedef struct s_xbt_test_test { const char *file; int line; xbt_dynar_t logs; -} *xbt_test_test_t; +}; +typedef s_xbt_test_test* xbt_test_test_t; static void xbt_test_test_dump(xbt_test_test_t test) { @@ -163,7 +167,7 @@ static void xbt_test_log_free(void *log) /** @brief create test suite */ xbt_test_suite_t xbt_test_suite_new(const char *name, const char *fmt, ...) { - xbt_test_suite_t suite = xbt_new0(struct s_xbt_test_suite, 1); + xbt_test_suite_t suite = xbt_new0(s_xbt_test_suite, 1); va_list ap; if (_xbt_test_suites == nullptr) @@ -229,7 +233,7 @@ void xbt_test_suite_push(xbt_test_suite_t suite, const char *name, ts_test_cb_t xbt_assert(func); xbt_assert(fmt); - unit = xbt_new0(struct s_xbt_test_unit, 1); + unit = xbt_new0(s_xbt_test_unit, 1); va_start(ap, fmt); unit->title = bvprintf(fmt, ap); va_end(ap); @@ -250,8 +254,6 @@ static int xbt_test_suite_run(xbt_test_suite_t suite, int verbosity) xbt_test_test_t test; xbt_test_log_t log; - unsigned int it_test; - if (suite == nullptr) return 0; @@ -297,6 +299,7 @@ static int xbt_test_suite_run(xbt_test_suite_t suite, int verbosity) unit->func(); /* iterate through all performed tests to determine status */ + unsigned int it_test; xbt_dynar_foreach(unit->tests, it_test, test) { if (test->ignored) { unit->test_ignore++; @@ -455,32 +458,29 @@ static void apply_selection(char *selection) /* for the parsing */ char *sel = selection; int done = 0; - char dir[1024]; /* the directive */ + char dir[STRLEN]; /* the directive */ /* iterators */ unsigned int it_suite; xbt_test_suite_t suite; xbt_test_unit_t unit; unsigned int it_unit; - char suitename[512]; - char unitname[512]; + char suitename[STRLEN]; + char unitname[STRLEN]; if (not selection || selection[0] == '\0') return; - /*printf("Test selection: %s\n", selection); */ - /* First apply the selection */ while (not done) { int enabling = 1; char *p = strchr(sel, ','); if (p) { - strncpy(dir, sel, p - sel); - dir[p - sel] = '\0'; + snprintf(dir, STRLEN, "%.*s", (int)(p - sel), sel); sel = p + 1; } else { - strncpy(dir, sel,1024); + snprintf(dir, STRLEN, "%s", sel); done = 1; } @@ -495,11 +495,10 @@ static void apply_selection(char *selection) p = strchr(dir, ':'); if (p) { - strncpy(unitname, p + 1,512); - strncpy(suitename, dir, p - dir); - suitename[p - dir] = '\0'; + snprintf(suitename, STRLEN, "%.*s", (int)(p - dir), dir); + snprintf(unitname, STRLEN, "%s", p + 1); } else { - strncpy(suitename, dir,512); + snprintf(suitename, STRLEN, "%s", dir); unitname[0] = '\0'; } @@ -649,7 +648,7 @@ void _xbt_test_add(const char *file, int line, const char *fmt, ...) xbt_assert(unit); va_list ap; - xbt_test_test_t test = xbt_new0(struct s_xbt_test_test, 1); + xbt_test_test_t test = xbt_new0(s_xbt_test_test, 1); va_start(ap, fmt); test->title = bvprintf(fmt, ap); va_end(ap); @@ -671,7 +670,7 @@ void _xbt_test_fail(const char *file, int line, const char *fmt, ...) "Test failed even before being declared (broken unit: %s)", unit->title); va_list ap; - xbt_test_log_t log = xbt_new(struct s_xbt_test_log, 1); + xbt_test_log_t log = xbt_new(s_xbt_test_log, 1); va_start(ap, fmt); log->text = bvprintf(fmt, ap); va_end(ap); @@ -714,7 +713,7 @@ void _xbt_test_log(const char *file, int line, const char *fmt, ...) "Test logged into even before being declared (broken test unit: %s)", unit->title); va_list ap; - xbt_test_log_t log = xbt_new(struct s_xbt_test_log, 1); + xbt_test_log_t log = xbt_new(s_xbt_test_log, 1); va_start(ap, fmt); log->text = bvprintf(fmt, ap); va_end(ap);