Author: jelmer Date: 2007-08-31 18:35:30 +0000 (Fri, 31 Aug 2007) New Revision: 24851
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24851 Log: Add --load-module argument to smbtorture. Modified: branches/SAMBA_4_0/ branches/SAMBA_4_0/source/samba4-knownfail branches/SAMBA_4_0/source/torture/smbtorture.c branches/SAMBA_4_0/source/torture/torture.c branches/SAMBA_4_0/source/torture/ui.h Changeset: Property changes on: branches/SAMBA_4_0 ___________________________________________________________________ Name: bzr:revision-info ...skipped... Name: bzr:revision-id:v3-trunk0 ...skipped... Modified: branches/SAMBA_4_0/source/samba4-knownfail =================================================================== --- branches/SAMBA_4_0/source/samba4-knownfail 2007-08-31 17:38:37 UTC (rev 24850) +++ branches/SAMBA_4_0/source/samba4-knownfail 2007-08-31 18:35:30 UTC (rev 24851) @@ -27,3 +27,4 @@ RPC-NETLOGON.*/GetAnyDCName RPC-NETLOGON.*/DsrEnumerateDomainTrusts RPC-NETLOGON.*/DsrGetDcSiteCoverageW +RPC-DRSUAPI.*/DsReplicaUpdateRefs Modified: branches/SAMBA_4_0/source/torture/smbtorture.c =================================================================== --- branches/SAMBA_4_0/source/torture/smbtorture.c 2007-08-31 17:38:37 UTC (rev 24850) +++ branches/SAMBA_4_0/source/torture/smbtorture.c 2007-08-31 18:35:30 UTC (rev 24851) @@ -238,6 +238,11 @@ 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 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 @@ {"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 @@ 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; Modified: branches/SAMBA_4_0/source/torture/torture.c =================================================================== --- branches/SAMBA_4_0/source/torture/torture.c 2007-08-31 17:38:37 UTC (rev 24850) +++ branches/SAMBA_4_0/source/torture/torture.c 2007-08-31 18:35:30 UTC (rev 24851) @@ -32,13 +32,16 @@ _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 @@ 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); Modified: branches/SAMBA_4_0/source/torture/ui.h =================================================================== --- branches/SAMBA_4_0/source/torture/ui.h 2007-08-31 17:38:37 UTC (rev 24850) +++ branches/SAMBA_4_0/source/torture/ui.h 2007-08-31 18:35:30 UTC (rev 24851) @@ -87,7 +87,7 @@ bool returncode; - char *outputdir; + const char *outputdir; int level; struct event_context *ev; };