X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fae10815035e4d0d150ff5fdbb7aa8fe25448c57..04ad4b7ab779a793f594e0910632f12a511d419a:/src/xbt/cunit.cpp diff --git a/src/xbt/cunit.cpp b/src/xbt/cunit.cpp index e9439c2c22..94e16a6638 100644 --- a/src/xbt/cunit.cpp +++ b/src/xbt/cunit.cpp @@ -88,7 +88,9 @@ struct s_xbt_test_unit { xbt_dynar_t tests; /* of xbt_test_test_t */ int nb_tests; - int test_failed, test_ignore, test_expect; + int test_failed; + int test_ignore; + int test_expect; }; static void xbt_test_unit_dump(xbt_test_unit_t unit) @@ -112,9 +114,14 @@ struct s_xbt_test_suite { char *title; xbt_dynar_t units; /* of xbt_test_unit_t */ - int nb_tests, nb_units; - int test_failed, test_ignore, test_expect; - int unit_failed, unit_ignore, unit_disabled; + int nb_tests; + int nb_units; + int test_failed; + int test_ignore; + int test_expect; + int unit_failed; + int unit_ignore; + int unit_disabled; }; /* destroy test suite */ @@ -233,7 +240,6 @@ void xbt_test_suite_push(xbt_test_suite_t suite, const char *name, ts_test_cb_t unit->tests = xbt_dynar_new(sizeof(xbt_test_test_t), xbt_test_test_free); xbt_dynar_push(suite->units, &unit); - return; } /* run test one suite */ @@ -246,7 +252,9 @@ static int xbt_test_suite_run(xbt_test_suite_t suite, int verbosity) const char *file; int line; char *cp; - unsigned int it_unit, it_test, it_log; + unsigned int it_unit; + unsigned int it_test; + unsigned int it_log; int first = 1; /* for result pretty printing */ @@ -254,25 +262,22 @@ static int xbt_test_suite_run(xbt_test_suite_t suite, int verbosity) return 0; /* suite title pretty-printing */ - { - char suite_title[81]; - int suite_len = strlen(suite->title); - int i; - - xbt_assert(suite_len < 68, "suite title \"%s\" too long (%d should be less than 68", suite->title, suite_len); - - suite_title[0] = ' '; - for (i = 1; i < 80; i++) - suite_title[i] = '='; - suite_title[i++] = '\n'; - suite_title[80] = '\0'; - - snprintf(suite_title + 40 - (suite_len + 4) / 2, 81-(40 - (suite_len + 4)/ 2), "[ %s ]", suite->title); - suite_title[40 + (suite_len + 5) / 2] = '='; - if (!suite->enabled) - snprintf(suite_title + 70, 11, " DISABLED "); - fprintf(stderr, "\n%s\n", suite_title); - } + char suite_title[81]; + int suite_len = strlen(suite->title); + + xbt_assert(suite_len < 68, "suite title \"%s\" too long (%d should be less than 68", suite->title, suite_len); + + suite_title[0] = ' '; + for (int i = 1; i < 79; i++) + suite_title[i] = '='; + suite_title[79] = '\n'; + suite_title[80] = '\0'; + + snprintf(suite_title + 40 - (suite_len + 4) / 2, 81 - (40 - (suite_len + 4) / 2), "[ %s ]", suite->title); + suite_title[40 + (suite_len + 5) / 2] = '='; + if (!suite->enabled) + snprintf(suite_title + 70, 11, " DISABLED "); + fprintf(stderr, "\n%s\n", suite_title); if (suite->enabled) { /* iterate through all tests */ @@ -323,8 +328,21 @@ static int xbt_test_suite_run(xbt_test_suite_t suite, int verbosity) xbt_dynar_foreach(unit->tests, it_test, test) { file = (test->file != nullptr ? test->file : unit->file); line = (test->line != 0 ? test->line : unit->line); - fprintf(stderr, " %s: %s [%s:%d]\n", (test->ignored ? " SKIP" : (test->expected_failure - ? (test-> failed ? "EFAIL" : "EPASS") : (test->failed ? " FAIL" : " PASS"))),test->title, file, line); + const char* resname; + if (test->ignored) + resname = " SKIP"; + else if (test->expected_failure) { + if (test->failed) + resname = "EFAIL"; + else + resname = "EPASS"; + } else { + if (test->failed) + resname = " FAIL"; + else + resname = " PASS"; + } + fprintf(stderr, " %s: %s [%s:%d]\n", resname, test->title, file, line); if ((test->expected_failure && !test->failed) || (!test->expected_failure && test->failed)) { xbt_dynar_foreach(test->logs, it_log, log) { @@ -583,7 +601,7 @@ int xbt_test_run(char *selection, int verbosity) ? ((1 - (double) _xbt_test_unit_failed / (double) _xbt_test_nb_units) * 100.0) : 100.0, _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, "%d ok", _xbt_test_nb_units - _xbt_test_unit_failed); first = 0; } if (_xbt_test_unit_failed) { @@ -597,7 +615,7 @@ int xbt_test_run(char *selection, int verbosity) ? ((1 - (double) _xbt_test_test_failed / (double) _xbt_test_nb_tests) * 100.0) : 100.0, _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, "%d ok", _xbt_test_nb_tests - _xbt_test_test_failed); first = 0; } if (_xbt_test_test_failed) { @@ -620,7 +638,7 @@ int xbt_test_run(char *selection, int verbosity) return _xbt_test_unit_failed; } -void xbt_test_exit(void) +void xbt_test_exit() { xbt_dynar_free(&_xbt_test_suites); } @@ -643,7 +661,6 @@ void _xbt_test_add(const char *file, int line, const char *fmt, ...) test->line = line; test->logs = xbt_dynar_new(sizeof(xbt_test_log_t), xbt_test_log_free); xbt_dynar_push(unit->tests, &test); - return; } /* annotate test case with log message and failure */ @@ -673,7 +690,7 @@ void xbt_test_exception(xbt_ex_t e) _xbt_test_fail(e.throwPoint().file, e.throwPoint().line, "Exception %s raised: %s", xbt_ex_catname(e.category), e.what()); } -void xbt_test_expect_failure(void) +void xbt_test_expect_failure() { 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); @@ -681,7 +698,7 @@ void xbt_test_expect_failure(void) test->expected_failure = 1; } -void xbt_test_skip(void) +void xbt_test_skip() { xbt_assert(xbt_dynar_length(_xbt_test_current_unit->tests), "Test skipped even before being declared (broken unit: %s)", _xbt_test_current_unit->title);