Refactor the dns_open_connection code so that duplicate code is removed and ensure...
[sfrench/samba-autobuild/.git] / lib / torture / torture.c
index a0b35bfe7ca7baf540841904ab809d7fd33f7099..40807d92a62151c22e688df12de16377e34a3ed6 100644 (file)
@@ -88,7 +88,7 @@ _PUBLIC_ NTSTATUS torture_temp_dir(struct torture_context *tctx,
        NT_STATUS_HAVE_NO_MEMORY(*tempdir);
 
        if (mkdtemp(*tempdir) == NULL) {
-               return map_nt_error_from_unix(errno);
+               return map_nt_error_from_unix_common(errno);
        }
 
        return NT_STATUS_OK;
@@ -154,7 +154,7 @@ _PUBLIC_ NTSTATUS torture_deltree_outputdir(struct torture_context *tctx)
 
        if (local_deltree(tctx->outputdir) == -1) {
                if (errno != 0) {
-                       return map_nt_error_from_unix(errno);
+                       return map_nt_error_from_unix_common(errno);
                }
                return NT_STATUS_UNSUCCESSFUL;
        }
@@ -277,7 +277,7 @@ struct torture_test *torture_tcase_add_test_const(struct torture_tcase *tcase,
        test->dangerous = false;
        test->data = data;
 
-       DLIST_ADD_END(tcase->tests, test, struct torture_test *);
+       DLIST_ADD_END(tcase->tests, test);
 
        return test;
 }
@@ -296,7 +296,7 @@ bool torture_suite_init_tcase(struct torture_suite *suite,
        tcase->fixture_persistent = true;
        tcase->tests = NULL;
 
-       DLIST_ADD_END(suite->testcases, tcase, struct torture_tcase *);
+       DLIST_ADD_END(suite->testcases, tcase);
 
        return true;
 }
@@ -400,7 +400,7 @@ static bool test_needs_running(const char *name, const char **restricted)
        return false;
 }
 
-static bool internal_torture_run_test(struct torture_context *context, 
+static bool internal_torture_run_test(struct torture_context *context,
                                          struct torture_tcase *tcase,
                                          struct torture_test *test,
                                          bool already_setup,
@@ -409,7 +409,7 @@ static bool internal_torture_run_test(struct torture_context *context,
        bool success;
        char *subunit_testname = NULL;
 
-       if (tcase == NULL || strcmp(test->name, tcase->name) != 0) { 
+       if (tcase == NULL || strcmp(test->name, tcase->name) != 0) {
                subunit_testname = talloc_asprintf(context, "%s.%s", tcase->name, test->name);
        } else {
                subunit_testname = talloc_strdup(context, test->name);
@@ -426,39 +426,41 @@ static bool internal_torture_run_test(struct torture_context *context,
        context->last_reason = NULL;
        context->last_result = TORTURE_OK;
 
-       if (!already_setup && tcase->setup && 
-               !tcase->setup(context, &(tcase->data))) {
-               if (context->last_reason == NULL)
+       if (!already_setup && tcase->setup &&
+           !tcase->setup(context, &(tcase->data))) {
+               if (context->last_reason == NULL)
                        context->last_reason = talloc_strdup(context, "Setup failure");
                context->last_result = TORTURE_ERROR;
                success = false;
-       } else if (test->dangerous && 
-           !torture_setting_bool(context, "dangerous", false)) {
-           context->last_result = TORTURE_SKIP;
-           context->last_reason = talloc_asprintf(context, 
-               "disabled %s - enable dangerous tests to use", test->name);
-           success = true;
+       } else if (test->dangerous &&
+                  !torture_setting_bool(context, "dangerous", false)) {
+               context->last_result = TORTURE_SKIP;
+               context->last_reason = talloc_asprintf(context,
+               "disabled %s - enable dangerous tests to use", test->name);
+               success = true;
        } else {
-           success = test->run(context, tcase, test);
+               success = test->run(context, tcase, test);
 
-           if (!success && context->last_result == TORTURE_OK) {
-                   if (context->last_reason == NULL)
-                           context->last_reason = talloc_strdup(context, "Unknown error/failure");
-                   context->last_result = TORTURE_ERROR;
-           }
+               if (!success && context->last_result == TORTURE_OK) {
+                       if (context->last_reason == NULL)
+                               context->last_reason = talloc_strdup(context,
+                                       "Unknown error/failure. Missing torture_fail() or torture_assert_*() call?");
+                       context->last_result = TORTURE_ERROR;
+               }
        }
 
        if (!already_setup && tcase->teardown && !tcase->teardown(context, tcase->data)) {
-               if (context->last_reason == NULL)
-                   context->last_reason = talloc_strdup(context, "Setup failure");
-               context->last_result = TORTURE_ERROR;
+               if (context->last_reason == NULL)
+                       context->last_reason = talloc_strdup(context, "Setup failure");
+               context->last_result = TORTURE_ERROR;
                success = false;
        }
 
-       torture_ui_test_result(context, context->last_result, 
+       torture_ui_test_result(context, context->last_result,
                               context->last_reason);
-       
+
        talloc_free(context->last_reason);
+       context->last_reason = NULL;
 
        context->active_test = NULL;
        context->active_tcase = NULL;
@@ -615,7 +617,7 @@ struct torture_tcase *torture_suite_add_simple_tcase_const(
        test->data = data;
        test->dangerous = false;
 
-       DLIST_ADD_END(tcase->tests, test, struct torture_test *);
+       DLIST_ADD_END(tcase->tests, test);
 
        return tcase;
 }
@@ -649,7 +651,7 @@ struct torture_tcase *torture_suite_add_simple_test(
        test->fn = run;
        test->dangerous = false;
 
-       DLIST_ADD_END(tcase->tests, test, struct torture_test *);
+       DLIST_ADD_END(tcase->tests, test);
 
        return tcase;
 }
@@ -663,7 +665,7 @@ bool torture_suite_add_suite(struct torture_suite *suite,
        if (child == NULL)
                return false;
 
-       DLIST_ADD_END(suite->children, child, struct torture_suite *);
+       DLIST_ADD_END(suite->children, child);
 
        /* FIXME: Check for duplicates and return false if the 
         * added suite already exists as a child */
@@ -714,7 +716,7 @@ struct torture_test *torture_tcase_add_simple_test_const(
        test->data = NULL;
        test->dangerous = false;
 
-       DLIST_ADD_END(tcase->tests, test, struct torture_test *);
+       DLIST_ADD_END(tcase->tests, test);
 
        return test;
 }
@@ -745,7 +747,7 @@ struct torture_test *torture_tcase_add_simple_test(struct torture_tcase *tcase,
        test->data = NULL;
        test->dangerous = false;
 
-       DLIST_ADD_END(tcase->tests, test, struct torture_test *);
+       DLIST_ADD_END(tcase->tests, test);
 
        return test;
 }