1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

r24851: Add --load-module argument to smbtorture.

(This used to be commit 76a713b6786e22b810937289b3e7cc6700a0b49d)
This commit is contained in:
Jelmer Vernooij 2007-08-31 18:35:30 +00:00 committed by Gerald (Jerry) Carter
parent 9c006b122f
commit 275a8c9183
4 changed files with 29 additions and 6 deletions

View File

@ -27,3 +27,4 @@ RPC-NETLOGON.*/LogonControl2
RPC-NETLOGON.*/GetAnyDCName
RPC-NETLOGON.*/DsrEnumerateDomainTrusts
RPC-NETLOGON.*/DsrGetDcSiteCoverageW
RPC-DRSUAPI.*/DsReplicaUpdateRefs

View File

@ -238,6 +238,11 @@ static void usage(poptContext pc)
printf("Tests are:");
if (torture_root == NULL) {
printf("NO TESTS LOADED\n");
exit(1);
}
for (o = torture_root->children; o; o = o->next) {
printf("\n%s (%s):\n ", o->description, o->name);
@ -480,6 +485,7 @@ int main(int argc,char *argv[])
int shell = False;
static const char *ui_ops_name = "simple";
const char *basedir = NULL;
const char *extra_module = NULL;
static int list_tests = 0;
char *host = NULL, *share = NULL;
enum {OPT_LOADFILE=1000,OPT_UNCLIST,OPT_TIMELIMIT,OPT_DNS, OPT_LIST,
@ -502,6 +508,7 @@ int main(int argc,char *argv[])
{"parse-dns", 'D', POPT_ARG_STRING, NULL, OPT_DNS, "parse-dns", NULL},
{"dangerous", 'X', POPT_ARG_NONE, NULL, OPT_DANGEROUS,
"run dangerous tests (eg. wiping out password database)", NULL},
{"load-module", 0, POPT_ARG_STRING, &extra_module, 0, "load tests from DSO file", "SOFILE"},
{"shell", 0, POPT_ARG_NONE, &shell, True, "Run shell", NULL},
{"target", 'T', POPT_ARG_STRING, &target, 0, "samba3|samba4|other", NULL},
{"async", 'a', POPT_ARG_NONE, NULL, OPT_ASYNC,
@ -572,9 +579,24 @@ int main(int argc,char *argv[])
alarm(max_runtime);
}
torture_init();
ldb_global_init();
if (extra_module != NULL) {
init_module_fn fn = load_module(talloc_autofree_context(), poptGetOptArg(pc));
if (fn == NULL)
d_printf("Unable to load module from %s\n", poptGetOptArg(pc));
else {
status = fn();
if (NT_STATUS_IS_ERR(status)) {
d_printf("Error initializing module %s: %s\n",
poptGetOptArg(pc), nt_errstr(status));
}
}
} else {
torture_init();
}
if (list_tests) {
print_test_list();
return 0;

View File

@ -32,13 +32,16 @@ _PUBLIC_ int torture_failures=1;
_PUBLIC_ int torture_seed=0;
_PUBLIC_ int torture_numasync=100;
struct torture_suite *torture_root = NULL;
struct torture_suite *torture_root;
bool torture_register_suite(struct torture_suite *suite)
{
if (!suite)
return true;
if (torture_root == NULL)
torture_root = talloc_zero(talloc_autofree_context(), struct torture_suite);
return torture_suite_add_suite(torture_root, suite);
}
@ -63,9 +66,6 @@ int torture_init(void)
init_module_fn static_init[] = STATIC_torture_MODULES;
init_module_fn *shared_init = load_samba_modules(NULL, "torture");
torture_root = talloc_zero(talloc_autofree_context(),
struct torture_suite);
run_init_functions(static_init);
run_init_functions(shared_init);

View File

@ -87,7 +87,7 @@ struct torture_context
bool returncode;
char *outputdir;
const char *outputdir;
int level;
struct event_context *ev;
};