mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
torture: Simplify torture suite running, call restricted test suite runner.
This commit is contained in:
parent
6b442f43bc
commit
4fb98b6856
@ -304,6 +304,13 @@ bool torture_run_suite(struct torture_context *context,
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool torture_run_suite_restricted(struct torture_context *context,
|
||||
struct torture_suite *suite, char **restricted)
|
||||
{
|
||||
/* FIXME */
|
||||
return false;
|
||||
}
|
||||
|
||||
void torture_ui_test_start(struct torture_context *context,
|
||||
struct torture_tcase *tcase,
|
||||
struct torture_test *test)
|
||||
|
@ -218,6 +218,11 @@ bool torture_suite_add_suite(struct torture_suite *suite,
|
||||
bool torture_run_suite(struct torture_context *context,
|
||||
struct torture_suite *suite);
|
||||
|
||||
/* Run the specified testsuite recursively, but only the specified
|
||||
* tests */
|
||||
bool torture_run_suite_restricted(struct torture_context *context,
|
||||
struct torture_suite *suite, char **restricted);
|
||||
|
||||
/* Run the specified testcase */
|
||||
bool torture_run_tcase(struct torture_context *context,
|
||||
struct torture_tcase *tcase);
|
||||
|
@ -42,52 +42,34 @@ static bool run_matching(struct torture_context *torture,
|
||||
bool *matched)
|
||||
{
|
||||
bool ret = true;
|
||||
|
||||
if (suite == NULL) {
|
||||
struct torture_suite *o;
|
||||
|
||||
for (o = (torture_root == NULL?NULL:torture_root->children); o; o = o->next) {
|
||||
if (gen_fnmatch(expr, o->name) == 0) {
|
||||
*matched = true;
|
||||
reload_charcnv(torture->lp_ctx);
|
||||
ret &= torture_run_suite(torture, o);
|
||||
continue;
|
||||
}
|
||||
|
||||
ret &= run_matching(torture, o->name, expr, restricted, o, matched);
|
||||
}
|
||||
} else {
|
||||
char *name;
|
||||
struct torture_suite *c;
|
||||
struct torture_tcase *t;
|
||||
|
||||
for (c = suite->children; c; c = c->next) {
|
||||
asprintf(&name, "%s-%s", prefix, c->name);
|
||||
|
||||
for (o = suite->children; o; o = o->next) {
|
||||
char *name = NULL;
|
||||
if (prefix == NULL)
|
||||
name = talloc_strdup(torture, o->name);
|
||||
else
|
||||
name = talloc_asprintf(torture, "%s-%s", prefix, o->name);
|
||||
if (gen_fnmatch(expr, name) == 0) {
|
||||
*matched = true;
|
||||
reload_charcnv(torture->lp_ctx);
|
||||
torture->active_testname = talloc_strdup(torture, prefix);
|
||||
ret &= torture_run_suite(torture, c);
|
||||
free(name);
|
||||
continue;
|
||||
torture->active_testname = name;
|
||||
if (restricted != NULL)
|
||||
ret &= torture_run_suite_restricted(torture, o, restricted);
|
||||
else
|
||||
ret &= torture_run_suite(torture, o);
|
||||
}
|
||||
|
||||
ret &= run_matching(torture, name, expr, restricted, c, matched);
|
||||
|
||||
free(name);
|
||||
ret &= run_matching(torture, name, expr, restricted, o, matched);
|
||||
}
|
||||
|
||||
for (t = suite->testcases; t; t = t->next) {
|
||||
asprintf(&name, "%s-%s", prefix, t->name);
|
||||
char *name = talloc_asprintf(torture, "%s-%s", prefix, t->name);
|
||||
if (gen_fnmatch(expr, name) == 0) {
|
||||
*matched = true;
|
||||
reload_charcnv(torture->lp_ctx);
|
||||
torture->active_testname = talloc_strdup(torture, prefix);
|
||||
torture->active_testname = name;
|
||||
ret &= torture_run_tcase(torture, t);
|
||||
talloc_free(torture->active_testname);
|
||||
}
|
||||
free(name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -107,13 +89,17 @@ static bool run_test(struct torture_context *torture, const char *name,
|
||||
struct torture_suite *o;
|
||||
|
||||
if (strequal(name, "ALL")) {
|
||||
if (restricted != NULL) {
|
||||
printf("--load-list and ALL are incompatible\n");
|
||||
return false;
|
||||
}
|
||||
for (o = torture_root->children; o; o = o->next) {
|
||||
ret &= torture_run_suite(torture, o);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = run_matching(torture, NULL, name, restricted, NULL, &matched);
|
||||
ret = run_matching(torture, NULL, name, restricted, torture_root, &matched);
|
||||
|
||||
if (!matched) {
|
||||
printf("Unknown torture operation '%s'\n", name);
|
||||
|
Loading…
Reference in New Issue
Block a user