#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 */
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)
{
}
/* test suite test check */
-typedef struct s_xbt_test_test {
+struct s_xbt_test_test {
char *title;
int failed;
int expected_failure;
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)
{
/** @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)
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);
/* 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;
}
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';
}
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);
"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);
"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);