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:
parent
9c006b122f
commit
275a8c9183
@ -27,3 +27,4 @@ RPC-NETLOGON.*/LogonControl2
|
||||
RPC-NETLOGON.*/GetAnyDCName
|
||||
RPC-NETLOGON.*/DsrEnumerateDomainTrusts
|
||||
RPC-NETLOGON.*/DsrGetDcSiteCoverageW
|
||||
RPC-DRSUAPI.*/DsReplicaUpdateRefs
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -87,7 +87,7 @@ struct torture_context
|
||||
|
||||
bool returncode;
|
||||
|
||||
char *outputdir;
|
||||
const char *outputdir;
|
||||
int level;
|
||||
struct event_context *ev;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user