X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7a8cd62135619ad52e05ae1c929ef07e166e4260..507785035fffb029577ed608142f0cb8a43f77e9:/src/xbt/cunit.c diff --git a/src/xbt/cunit.c b/src/xbt/cunit.c index a3798ee350..5235db6c9e 100644 --- a/src/xbt/cunit.c +++ b/src/xbt/cunit.c @@ -1,14 +1,15 @@ /* cunit - A little C Unit facility */ -/* Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2005-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ /* This is partially inspirated from the OSSP ts (Test Suite Library) */ +/* At some point we should use https://github.com/google/googletest instead */ -#include "portable.h" +#include "src/portable.h" #include "xbt/sysdep.h" /* bvprintf */ #include "xbt/cunit.h" @@ -444,7 +445,6 @@ static int xbt_test_suite_run(xbt_test_suite_t suite, int verbosity) if (suite->unit_disabled) { fprintf(stderr, "%s%d disabled", (first ? "" : ", "), suite->unit_disabled); - first = 0; } fprintf(stderr, ")\n Tests: %.0f%% ok (%d tests: ", suite->nb_tests @@ -471,7 +471,6 @@ static int xbt_test_suite_run(xbt_test_suite_t suite, int verbosity) if (suite->test_expect) { fprintf(stderr, "%s%d expected to fail", (first ? "" : "; "), suite->test_expect); - first = 0; } fprintf(stderr, ")\n"); } @@ -482,7 +481,6 @@ static void apply_selection(char *selection) { /* for the parsing */ char *sel = selection; - char *p; int done = 0; char dir[1024]; /* the directive */ /* iterators */ @@ -503,7 +501,7 @@ static void apply_selection(char *selection) while (!done) { int enabling = 1; - p = strchr(sel, ','); + char *p = strchr(sel, ','); if (p) { strncpy(dir, sel, p - sel); dir[p - sel] = '\0'; @@ -531,16 +529,10 @@ static void apply_selection(char *selection) strcpy(suitename, dir); unitname[0] = '\0'; } - /*fprintf(stderr,"Seen %s (%s; suite=%s; unit=%s)\n", - dir,enabling?"enabling":"disabling", suitename, unitname); */ /* Deal with the specific case of 'all' pseudo serie */ if (!strcmp("all", suitename)) { - if (unitname[0] != '\0') { - fprintf(stderr, - "The 'all' pseudo-suite does not accept any unit specification\n"); - exit(1); - } + xbt_assert(unitname[0] == '\0', "The 'all' pseudo-suite does not accept any unit specification\n"); xbt_dynar_foreach(_xbt_test_suites, it_suite, suite) { xbt_dynar_foreach(suite->units, it_unit, unit) { @@ -568,31 +560,20 @@ static void apply_selection(char *selection) for (it2_unit = 0; it2_unit < xbt_dynar_length(thissuite->units); it2_unit++) { - xbt_test_unit_t thisunit = - xbt_dynar_get_as(thissuite->units, it2_unit, - xbt_test_unit_t); + xbt_test_unit_t thisunit = xbt_dynar_get_as(thissuite->units, it2_unit, xbt_test_unit_t); if (!strcmp(thisunit->name, unitname)) { thisunit->enabled = enabling; break; } } /* search relevant unit */ - if (it2_unit == xbt_dynar_length(thissuite->units)) { - fprintf(stderr, - "Suite '%s' has no unit of name '%s'. Cannot apply the selection\n", - suitename, unitname); - exit(1); - } + xbt_assert(it2_unit != xbt_dynar_length(thissuite->units), + "Suite '%s' has no unit of name '%s'. Cannot apply the selection\n", suitename, unitname); } /* act on childs (either all or one) */ break; /* found the relevant serie. We are happy */ } } /* search relevant series */ - if (it == xbt_dynar_length(_xbt_test_suites)) { - fprintf(stderr, - "No suite of name '%s' found. Cannot apply the selection\n", - suitename); - exit(1); - } + xbt_assert(it != xbt_dynar_length(_xbt_test_suites), "No suite of name '%s' found. Cannot apply the selection\n", suitename); } } @@ -634,20 +615,16 @@ int xbt_test_run(char *selection, int verbosity) (double) _xbt_test_nb_suites) * 100.0) : 100.0, _xbt_test_nb_suites); if (_xbt_test_nb_suites != _xbt_test_suite_failed) { - fprintf(stderr, "%d ok", - _xbt_test_nb_suites - _xbt_test_suite_failed); + fprintf(stderr, "%d ok", _xbt_test_nb_suites - _xbt_test_suite_failed); first = 0; } if (_xbt_test_suite_failed) { - fprintf(stderr, "%s%d failed", (first ? "" : ", "), - _xbt_test_suite_failed); + fprintf(stderr, "%s%d failed", (first ? "" : ", "), _xbt_test_suite_failed); first = 0; } if (_xbt_test_suite_ignore) { - fprintf(stderr, "%s%d ignored", (first ? "" : ", "), - _xbt_test_suite_ignore); - first = 0; + fprintf(stderr, "%s%d ignored", (first ? "" : ", "), _xbt_test_suite_ignore); } fprintf(stderr, ")\n Units: %.0f%% ok (%d units: ", _xbt_test_nb_units @@ -657,19 +634,15 @@ int xbt_test_run(char *selection, int verbosity) _xbt_test_nb_units); first = 1; if (_xbt_test_nb_units != _xbt_test_unit_failed) { - fprintf(stderr, "%s%d ok", (first ? "" : ", "), - _xbt_test_nb_units - _xbt_test_unit_failed); + fprintf(stderr, "%s%d ok", (first ? "" : ", "), _xbt_test_nb_units - _xbt_test_unit_failed); first = 0; } if (_xbt_test_unit_failed) { - fprintf(stderr, "%s%d failed", (first ? "" : ", "), - _xbt_test_unit_failed); + fprintf(stderr, "%s%d failed", (first ? "" : ", "), _xbt_test_unit_failed); first = 0; } if (_xbt_test_unit_ignore) { - fprintf(stderr, "%s%d ignored", (first ? "" : ", "), - _xbt_test_unit_ignore); - first = 0; + fprintf(stderr, "%s%d ignored", (first ? "" : ", "), _xbt_test_unit_ignore); } fprintf(stderr, ")\n Tests: %.0f%% ok (%d tests: ", _xbt_test_nb_tests @@ -679,23 +652,19 @@ int xbt_test_run(char *selection, int verbosity) _xbt_test_nb_tests); first = 1; if (_xbt_test_nb_tests != _xbt_test_test_failed) { - fprintf(stderr, "%s%d ok", (first ? "" : ", "), - _xbt_test_nb_tests - _xbt_test_test_failed); + fprintf(stderr, "%s%d ok", (first ? "" : ", "), _xbt_test_nb_tests - _xbt_test_test_failed); first = 0; } if (_xbt_test_test_failed) { - fprintf(stderr, "%s%d failed", (first ? "" : ", "), - _xbt_test_test_failed); + fprintf(stderr, "%s%d failed", (first ? "" : ", "), _xbt_test_test_failed); first = 0; } if (_xbt_test_test_ignore) { - fprintf(stderr, "%s%d ignored", (first ? "" : ", "), - _xbt_test_test_ignore); + fprintf(stderr, "%s%d ignored", (first ? "" : ", "), _xbt_test_test_ignore); first = 0; } if (_xbt_test_test_expect) { - fprintf(stderr, "%s%d expected to fail", (first ? "" : ", "), - _xbt_test_test_expect); + fprintf(stderr, "%s%d expected to fail", (first ? "" : ", "), _xbt_test_test_expect); } fprintf(stderr, ")\n"); @@ -715,13 +684,10 @@ void xbt_test_exit(void) void _xbt_test_add(const char *file, int line, const char *fmt, ...) { xbt_test_unit_t unit = _xbt_test_current_unit; - xbt_test_test_t test; - va_list ap; - xbt_assert(unit); - xbt_assert(fmt); - test = xbt_new0(struct s_xbt_test_test, 1); + va_list ap; + xbt_test_test_t test = xbt_new0(struct s_xbt_test_test, 1); va_start(ap, fmt); test->title = bvprintf(fmt, ap); va_end(ap); @@ -739,25 +705,19 @@ void _xbt_test_add(const char *file, int line, const char *fmt, ...) void _xbt_test_fail(const char *file, int line, const char *fmt, ...) { xbt_test_unit_t unit = _xbt_test_current_unit; - xbt_test_test_t test; - xbt_test_log_t log; - va_list ap; - xbt_assert(unit); - xbt_assert(fmt); - xbt_assert(xbt_dynar_length(_xbt_test_current_unit->tests), - "Test failed even before being declared (broken unit: %s)", - unit->title); + "Test failed even before being declared (broken unit: %s)", unit->title); - log = xbt_new(struct s_xbt_test_log, 1); + va_list ap; + xbt_test_log_t log = xbt_new(struct s_xbt_test_log, 1); va_start(ap, fmt); log->text = bvprintf(fmt, ap); va_end(ap); log->file = file; log->line = line; - test = xbt_dynar_getlast_as(unit->tests, xbt_test_test_t); + xbt_test_test_t test = xbt_dynar_getlast_as(unit->tests, xbt_test_test_t); xbt_dynar_push(test->logs, &log); test->failed = 1; @@ -765,31 +725,22 @@ void _xbt_test_fail(const char *file, int line, const char *fmt, ...) void xbt_test_exception(xbt_ex_t e) { - _xbt_test_fail(e.file, e.line, "Exception %s raised: %s", - xbt_ex_catname(e.category), e.msg); + _xbt_test_fail(e.file, e.line, "Exception %s raised: %s", xbt_ex_catname(e.category), e.msg); } void xbt_test_expect_failure(void) { - xbt_test_test_t test; xbt_assert(xbt_dynar_length(_xbt_test_current_unit->tests), - "Cannot expect the failure of a test before declaring it (broken unit: %s)", - _xbt_test_current_unit->title); - test = - xbt_dynar_getlast_as(_xbt_test_current_unit->tests, xbt_test_test_t); + "Cannot expect the failure of a test before declaring it (broken unit: %s)", _xbt_test_current_unit->title); + xbt_test_test_t test = xbt_dynar_getlast_as(_xbt_test_current_unit->tests, xbt_test_test_t); test->expected_failure = 1; } void xbt_test_skip(void) { - xbt_test_test_t test; - xbt_assert(xbt_dynar_length(_xbt_test_current_unit->tests), - "Test skiped even before being declared (broken unit: %s)", - _xbt_test_current_unit->title); - - test = - xbt_dynar_getlast_as(_xbt_test_current_unit->tests, xbt_test_test_t); + "Test skiped even before being declared (broken unit: %s)", _xbt_test_current_unit->title); + xbt_test_test_t test = xbt_dynar_getlast_as(_xbt_test_current_unit->tests, xbt_test_test_t); test->ignored = 1; } @@ -797,31 +748,23 @@ void xbt_test_skip(void) void _xbt_test_log(const char *file, int line, const char *fmt, ...) { xbt_test_unit_t unit = _xbt_test_current_unit; - xbt_test_test_t test; - xbt_test_log_t log; - va_list ap; - xbt_assert(unit); - xbt_assert(fmt); - xbt_assert(xbt_dynar_length(_xbt_test_current_unit->tests), - "Test logged into even before being declared (broken test unit: %s)", - unit->title); + "Test logged into even before being declared (broken test unit: %s)", unit->title); - log = xbt_new(struct s_xbt_test_log, 1); + va_list ap; + xbt_test_log_t log = xbt_new(struct s_xbt_test_log, 1); va_start(ap, fmt); log->text = bvprintf(fmt, ap); va_end(ap); log->file = file; log->line = line; - test = xbt_dynar_getlast_as(unit->tests, xbt_test_test_t); + xbt_test_test_t test = xbt_dynar_getlast_as(unit->tests, xbt_test_test_t); xbt_dynar_push(test->logs, &log); } - - #ifdef SIMGRID_TEST XBT_TEST_SUITE("cunit", "Testsuite mechanism autotest");