RAW-LOCK: fix the run against w2k3, w2k8, win7rc and samba3/4
[sfrench/samba-autobuild/.git] / source4 / torture / smbtorture.c
index bfe6d0503d7c8a0e64bfa74d5ee40cf6eb20c594..ce8c704584dc63989464e72ef74e5f2da910eb81 100644 (file)
@@ -33,6 +33,7 @@
 #include "torture/smbtorture.h"
 #include "../lib/util/dlinklist.h"
 #include "librpc/rpc/dcerpc.h"
+#include "auth/gensec/gensec.h"
 #include "param/param.h"
 
 #include "auth/credentials/credentials.h"
@@ -48,7 +49,7 @@ static bool run_matching(struct torture_context *torture,
        if (suite == NULL) {
                struct torture_suite *o;
 
-               for (o = torture_root->children; o; o = o->next) {
+               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);
@@ -366,40 +367,6 @@ const static struct torture_ui_ops std_ui_ops = {
 };
 
 
-static void quiet_suite_start(struct torture_context *ctx,
-                             struct torture_suite *suite)
-{
-       int i;
-       ctx->results->quiet = true;
-       for (i = 1; i < ctx->level; i++) putchar('\t');
-       printf("%s: ", suite->name);
-       fflush(stdout);
-}
-
-static void quiet_suite_finish(struct torture_context *ctx,
-                              struct torture_suite *suite)
-{
-       putchar('\n');
-}
-
-static void quiet_test_result(struct torture_context *context, 
-                             enum torture_result res, const char *reason)
-{
-       fflush(stdout);
-       switch (res) {
-       case TORTURE_OK: putchar('.'); break;
-       case TORTURE_FAIL: putchar('F'); break;
-       case TORTURE_ERROR: putchar('E'); break;
-       case TORTURE_SKIP: putchar('I'); break;
-       }
-}
-
-const static struct torture_ui_ops quiet_ui_ops = {
-       .suite_start = quiet_suite_start,
-       .suite_finish = quiet_suite_finish,
-       .test_result = quiet_test_result
-};
-
 static void run_shell(struct torture_context *tctx)
 {
        char *cline;
@@ -463,7 +430,7 @@ int main(int argc,char *argv[])
        static const char *target = "other";
        NTSTATUS status;
        int shell = false;
-       static const char *ui_ops_name = "simple";
+       static const char *ui_ops_name = "subunit";
        const char *basedir = NULL;
        const char *extra_module = NULL;
        static int list_tests = 0;
@@ -558,6 +525,10 @@ int main(int argc,char *argv[])
                lp_set_cmdline(cmdline_lp_ctx, "torture:samba3", "true");
        } else if (strcmp(target, "samba4") == 0) {
                lp_set_cmdline(cmdline_lp_ctx, "torture:samba4", "true");
+       } else if (strcmp(target, "w2k8") == 0) {
+               lp_set_cmdline(cmdline_lp_ctx, "torture:w2k8", "true");
+       } else if (strcmp(target, "win7") == 0) {
+               lp_set_cmdline(cmdline_lp_ctx, "torture:win7", "true");
        }
 
        if (max_runtime) {
@@ -621,8 +592,6 @@ int main(int argc,char *argv[])
                ui_ops = &std_ui_ops;
        } else if (!strcmp(ui_ops_name, "subunit")) {
                ui_ops = &torture_subunit_ui_ops;
-       } else if (!strcmp(ui_ops_name, "quiet")) {
-               ui_ops = &quiet_ui_ops;
        } else {
                printf("Unknown output format '%s'\n", ui_ops_name);
                exit(1);
@@ -648,6 +617,8 @@ int main(int argc,char *argv[])
 
        torture->lp_ctx = cmdline_lp_ctx;
 
+       gensec_init(cmdline_lp_ctx);
+
        if (argc_new == 0) {
                printf("You must specify a test to run, or 'ALL'\n");
        } else if (shell) {