X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/423d998b546e97c9b535e6e703768fb6a7ebb2fc..7df33197fec5021a48aa6fd327c8a7ac3b343197:/src/xbt/cunit.c diff --git a/src/xbt/cunit.c b/src/xbt/cunit.c index 0f8b6256b5..e3d62989cb 100644 --- a/src/xbt/cunit.c +++ b/src/xbt/cunit.c @@ -107,6 +107,7 @@ static void xbt_test_unit_dump(xbt_test_unit_t unit) { /* test suite */ struct s_xbt_test_suite { + const char *name; char *title; xbt_dynar_t units; /* of xbt_test_unit_t */ @@ -127,7 +128,7 @@ static void xbt_test_suite_free(void *s) { } /** @brief create test suite */ -xbt_test_suite_t xbt_test_suite_new(const char *fmt, ...) { +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); va_list ap; @@ -138,12 +139,35 @@ xbt_test_suite_t xbt_test_suite_new(const char *fmt, ...) { vasprintf(&suite->title,fmt, ap); suite->units = xbt_dynar_new(sizeof(xbt_test_unit_t), NULL); va_end(ap); + suite->name=name; xbt_dynar_push(_xbt_test_suites,&suite); return suite; } +/** @brief retrive a testsuite from name, or create a new one */ +xbt_test_suite_t xbt_test_suite_by_name(const char *name,const char *fmt, ...) { + xbt_test_suite_t suite; + int it_suite; + + char *bufname; + va_list ap; + + if (_xbt_test_suites) + xbt_dynar_foreach(_xbt_test_suites, it_suite, suite) + if (!strcmp(suite->name,name)) + return suite; + + va_start(ap, fmt); + vasprintf(&bufname,fmt, ap); + va_end(ap); + suite = xbt_test_suite_new(name,bufname,NULL); + free(bufname); + + return suite; +} + void xbt_test_suite_dump(xbt_test_suite_t suite) { if (suite) { xbt_test_unit_t unit; @@ -264,7 +288,7 @@ static int xbt_test_suite_run(xbt_test_suite_t suite) { suite_title[i]='\0'; sprintf(suite_title + 40 - (suite_len+4)/2, "[ %s ]", suite->title); - suite_title[40 + (suite_len+4)/2] = '='; + suite_title[40 + (suite_len+5)/2] = '='; fprintf(stderr, "\n%s %s\n",suite_title, (suite->nb_units?(suite->unit_failed?"FAILED":"OK"):"SKIP")); @@ -437,7 +461,7 @@ int xbt_test_run(void) { /* annotate test case with test */ -void _xbt_test(xbt_test_unit_t unit, const char*file,int line, const char *fmt, ...) { +void _xbt_test_add(xbt_test_unit_t unit, const char*file,int line, const char *fmt, ...) { xbt_test_test_t test; va_list ap; @@ -509,3 +533,21 @@ void _xbt_test_log(xbt_test_unit_t unit, const char*file,int line,const char *fm xbt_dynar_push(test->logs, &log); } + + + +#ifdef SIMGRID_TEST + +XBT_TEST_SUITE("cuint","Testsuite Autotest %d",0); + +XBT_TEST_UNIT("expect",test_expected_failure,"expected failures") { + xbt_test_add0("Skipped test"); + xbt_test_skip(); + + xbt_test_add2("%s %s","EXPECTED","FAILURE"); + xbt_test_expect_failure(); + xbt_test_log2("%s %s","Test","log"); + xbt_test_fail0("EXPECTED FAILURE"); +} + +#endif /* SIMGRID_TEST */