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;
 };

Reply via email to