bool torture_run_test_restricted(struct torture_context *context, struct torture_tcase *tcase, struct torture_test *test, const char **restricted) { return internal_torture_run_test(context, tcase, test, false, restricted); }
bool torture_run_tcase_restricted(struct torture_context *context, struct torture_tcase *tcase, const char **restricted) { bool ret = true; struct torture_test *test; bool setup_succeeded = true; const char * setup_reason = "Setup failed"; context->active_tcase = tcase; if (context->results->ui_ops->tcase_start) context->results->ui_ops->tcase_start(context, tcase); if (tcase->fixture_persistent && tcase->setup) { setup_succeeded = tcase->setup(context, &tcase->data); } if (!setup_succeeded) { /* Uh-oh. The setup failed, so we can't run any of the tests * in this testcase. The subunit format doesn't specify what * to do here, so we keep the failure reason, and manually * use it to fail every test. */ if (context->last_reason != NULL) { setup_reason = talloc_asprintf(context, "Setup failed: %s", context->last_reason); } } for (test = tcase->tests; test; test = test->next) { if (setup_succeeded) { ret &= internal_torture_run_test(context, tcase, test, tcase->fixture_persistent, restricted); } else { context->active_tcase = tcase; context->active_test = test; torture_ui_test_start(context, tcase, test); torture_ui_test_result(context, TORTURE_FAIL, setup_reason); } } if (setup_succeeded && tcase->fixture_persistent && tcase->teardown && !tcase->teardown(context, tcase->data)) { ret = false; } context->active_tcase = NULL; context->active_test = NULL; if (context->results->ui_ops->tcase_finish) context->results->ui_ops->tcase_finish(context, tcase); return (!setup_succeeded) ? false : ret; }
bool torture_run_tcase(struct torture_context *context, struct torture_tcase *tcase) { bool ret = true; char *old_testname; struct torture_test *test; context->level++; context->active_tcase = tcase; if (context->results->ui_ops->tcase_start) context->results->ui_ops->tcase_start(context, tcase); if (tcase->fixture_persistent && tcase->setup && !tcase->setup(context, &tcase->data)) { /* FIXME: Use torture ui ops for reporting this error */ fprintf(stderr, "Setup failed: "); if (context->last_reason != NULL) fprintf(stderr, "%s", context->last_reason); fprintf(stderr, "\n"); ret = false; goto done; } old_testname = context->active_testname; context->active_testname = talloc_asprintf(context, "%s-%s", old_testname, tcase->name); for (test = tcase->tests; test; test = test->next) { ret &= internal_torture_run_test(context, tcase, test, tcase->fixture_persistent); } talloc_free(context->active_testname); context->active_testname = old_testname; if (tcase->fixture_persistent && tcase->teardown && !tcase->teardown(context, tcase->data)) ret = false; done: context->active_tcase = NULL; if (context->results->ui_ops->tcase_finish) context->results->ui_ops->tcase_finish(context, tcase); context->level--; return ret; }
bool torture_run_test(struct torture_context *context, struct torture_tcase *tcase, struct torture_test *test) { return internal_torture_run_test(context, tcase, test, false); }