s4-smbtorture: use torture_comment & torture_warning in RPC samr tests.
authorGünther Deschner <gd@samba.org>
Mon, 29 Jun 2009 21:42:58 +0000 (23:42 +0200)
committerGünther Deschner <gd@samba.org>
Mon, 29 Jun 2009 21:47:47 +0000 (23:47 +0200)
Guenther

source4/torture/rpc/samr.c

index 11f7b3eb0bd056ba05b9fc89bf757632e42deafb..f8853c1093b5defd469c1a5450ce69b8e089c19b 100644 (file)
@@ -633,7 +633,7 @@ static bool test_SetUserPass(struct dcerpc_pipe *p, struct torture_context *tctx
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -644,7 +644,7 @@ static bool test_SetUserPass(struct dcerpc_pipe *p, struct torture_context *tctx
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u failed - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        } else {
@@ -689,7 +689,7 @@ static bool test_SetUserPass_23(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -700,7 +700,7 @@ static bool test_SetUserPass_23(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u failed - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        } else {
@@ -711,7 +711,7 @@ static bool test_SetUserPass_23(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -724,7 +724,7 @@ static bool test_SetUserPass_23(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("SetUserInfo level %u should have failed with WRONG_PASSWORD- %s\n",
+               torture_warning(tctx, "SetUserInfo level %u should have failed with WRONG_PASSWORD- %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        }
@@ -771,7 +771,7 @@ static bool test_SetUserPassEx(struct dcerpc_pipe *p, struct torture_context *tc
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -790,7 +790,7 @@ static bool test_SetUserPassEx(struct dcerpc_pipe *p, struct torture_context *tc
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u failed - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        } else {
@@ -807,7 +807,7 @@ static bool test_SetUserPassEx(struct dcerpc_pipe *p, struct torture_context *tc
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("SetUserInfo level %u should have failed with WRONG_PASSWORD: %s\n",
+               torture_warning(tctx, "SetUserInfo level %u should have failed with WRONG_PASSWORD: %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        } else {
@@ -854,7 +854,7 @@ static bool test_SetUserPass_25(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -873,7 +873,7 @@ static bool test_SetUserPass_25(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u failed - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        } else {
@@ -890,7 +890,7 @@ static bool test_SetUserPass_25(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("SetUserInfo level %u should have failed with WRONG_PASSWORD- %s\n",
+               torture_warning(tctx, "SetUserInfo level %u should have failed with WRONG_PASSWORD- %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        }
@@ -935,7 +935,7 @@ static bool test_SetUserPass_18(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -959,7 +959,7 @@ static bool test_SetUserPass_18(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u failed - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        } else {
@@ -1020,7 +1020,7 @@ static bool test_SetUserPass_21(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -1047,7 +1047,7 @@ static bool test_SetUserPass_21(struct dcerpc_pipe *p, struct torture_context *t
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u failed - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        } else {
@@ -1062,7 +1062,7 @@ static bool test_SetUserPass_21(struct dcerpc_pipe *p, struct torture_context *t
                status = dcerpc_samr_SetUserInfo(p, tctx, &s);
 
                if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-                       printf("SetUserInfo level %u should have failed with NT_STATUS_INVALID_PARAMETER - %s\n",
+                       torture_warning(tctx, "SetUserInfo level %u should have failed with NT_STATUS_INVALID_PARAMETER - %s\n",
                               s.in.level, nt_errstr(status));
                        ret = false;
                }
@@ -1075,7 +1075,7 @@ static bool test_SetUserPass_21(struct dcerpc_pipe *p, struct torture_context *t
                status = dcerpc_samr_SetUserInfo(p, tctx, &s);
 
                if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-                       printf("SetUserInfo level %u should have failed with NT_STATUS_INVALID_PARAMETER - %s\n",
+                       torture_warning(tctx, "SetUserInfo level %u should have failed with NT_STATUS_INVALID_PARAMETER - %s\n",
                               s.in.level, nt_errstr(status));
                        ret = false;
                }
@@ -1203,7 +1203,7 @@ static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -1297,7 +1297,7 @@ static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
        }
 
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo%s level %u failed - %s\n",
+               torture_warning(tctx, "SetUserInfo%s level %u failed - %s\n",
                       use_setinfo2 ? "2":"", level, nt_errstr(status));
                ret = false;
        } else {
@@ -1332,12 +1332,12 @@ static bool test_SetAliasInfo(struct dcerpc_pipe *p, struct torture_context *tct
                    case ALIASINFONAME: init_lsa_String(&r.in.info->name,TEST_ALIASNAME); break;
                    case ALIASINFODESCRIPTION: init_lsa_String(&r.in.info->description,
                                "Test Description, should test I18N as well"); break;
-                   case ALIASINFOALL: printf("ALIASINFOALL ignored\n"); break;
+                   case ALIASINFOALL: torture_comment(tctx, "ALIASINFOALL ignored\n"); break;
                }
 
                status = dcerpc_samr_SetAliasInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("SetAliasInfo level %u failed - %s\n",
+                       torture_warning(tctx, "SetAliasInfo level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -1348,7 +1348,7 @@ static bool test_SetAliasInfo(struct dcerpc_pipe *p, struct torture_context *tct
 
                status = dcerpc_samr_QueryAliasInfo(p, tctx, &q);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryAliasInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryAliasInfo level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -1457,7 +1457,7 @@ static NTSTATUS test_LookupName(struct dcerpc_pipe *p, struct torture_context *t
        n.in.num_names = 2;
        status = dcerpc_samr_LookupNames(p, tctx, &n);
        if (!NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
-               printf("LookupNames[2] failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "LookupNames[2] failed - %s\n", nt_errstr(status));
                if (NT_STATUS_IS_OK(status)) {
                        return NT_STATUS_UNSUCCESSFUL;
                }
@@ -1467,7 +1467,7 @@ static NTSTATUS test_LookupName(struct dcerpc_pipe *p, struct torture_context *t
        n.in.num_names = 0;
        status = dcerpc_samr_LookupNames(p, tctx, &n);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("LookupNames[0] failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "LookupNames[0] failed - %s\n", nt_errstr(status));
                return status;
        }
 
@@ -1475,7 +1475,7 @@ static NTSTATUS test_LookupName(struct dcerpc_pipe *p, struct torture_context *t
        n.in.num_names = 1;
        status = dcerpc_samr_LookupNames(p, tctx, &n);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) {
-               printf("LookupNames[1 bad name] failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "LookupNames[1 bad name] failed - %s\n", nt_errstr(status));
                if (NT_STATUS_IS_OK(status)) {
                        return NT_STATUS_UNSUCCESSFUL;
                }
@@ -1487,7 +1487,7 @@ static NTSTATUS test_LookupName(struct dcerpc_pipe *p, struct torture_context *t
        n.in.num_names = 2;
        status = dcerpc_samr_LookupNames(p, tctx, &n);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) {
-               printf("LookupNames[2 bad names] failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "LookupNames[2 bad names] failed - %s\n", nt_errstr(status));
                if (NT_STATUS_IS_OK(status)) {
                        return NT_STATUS_UNSUCCESSFUL;
                }
@@ -1517,7 +1517,7 @@ static NTSTATUS test_OpenUser_byname(struct dcerpc_pipe *p,
        r.out.user_handle = user_handle;
        status = dcerpc_samr_OpenUser(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenUser_byname(%s -> %d) failed - %s\n", name, rid, nt_errstr(status));
+               torture_warning(tctx, "OpenUser_byname(%s -> %d) failed - %s\n", name, rid, nt_errstr(status));
        }
 
        return status;
@@ -1543,10 +1543,10 @@ static bool test_ChangePasswordNT3(struct dcerpc_pipe *p,
                return false;
        }
 
-       printf("Testing ChangePasswordUser for user 'testuser'\n");
+       torture_comment(tctx, "Testing ChangePasswordUser for user 'testuser'\n");
 
-       printf("old password: %s\n", oldpass);
-       printf("new password: %s\n", newpass);
+       torture_comment(tctx, "old password: %s\n", oldpass);
+       torture_comment(tctx, "new password: %s\n", newpass);
 
        E_md4hash(oldpass, old_nt_hash);
        E_md4hash(newpass, new_nt_hash);
@@ -1574,7 +1574,7 @@ static bool test_ChangePasswordNT3(struct dcerpc_pipe *p,
 
        status = dcerpc_samr_ChangePasswordUser(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("ChangePasswordUser failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "ChangePasswordUser failed - %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -1695,7 +1695,7 @@ static bool test_ChangePasswordUser(struct dcerpc_pipe *p, struct torture_contex
 
        status = dcerpc_samr_ChangePasswordUser(p, tctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the LM cross-hash, got %s\n", nt_errstr(status));
+               torture_warning(tctx, "ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the LM cross-hash, got %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -1718,7 +1718,7 @@ static bool test_ChangePasswordUser(struct dcerpc_pipe *p, struct torture_contex
 
        status = dcerpc_samr_ChangePasswordUser(p, tctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the NT cross-hash, got %s\n", nt_errstr(status));
+               torture_warning(tctx, "ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the NT cross-hash, got %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -1751,7 +1751,7 @@ static bool test_ChangePasswordUser(struct dcerpc_pipe *p, struct torture_contex
                changed = true;
                *password = newpass;
        } else if (!NT_STATUS_EQUAL(NT_STATUS_PASSWORD_RESTRICTION, status)) {
-               printf("ChangePasswordUser failed: expected NT_STATUS_OK, or at least NT_STATUS_PASSWORD_RESTRICTION, got %s\n", nt_errstr(status));
+               torture_warning(tctx, "ChangePasswordUser failed: expected NT_STATUS_OK, or at least NT_STATUS_PASSWORD_RESTRICTION, got %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -1789,7 +1789,7 @@ static bool test_ChangePasswordUser(struct dcerpc_pipe *p, struct torture_contex
                changed = true;
                *password = newpass;
        } else if (!NT_STATUS_EQUAL(NT_STATUS_PASSWORD_RESTRICTION, status)) {
-               printf("ChangePasswordUser failed: expected NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED, got %s\n", nt_errstr(status));
+               torture_warning(tctx, "ChangePasswordUser failed: expected NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED, got %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -1824,9 +1824,9 @@ static bool test_ChangePasswordUser(struct dcerpc_pipe *p, struct torture_contex
 
        status = dcerpc_samr_ChangePasswordUser(p, tctx, &r);
        if (NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)) {
-               printf("ChangePasswordUser returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
+               torture_comment(tctx, "ChangePasswordUser returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
        } else  if (!NT_STATUS_IS_OK(status)) {
-               printf("ChangePasswordUser failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "ChangePasswordUser failed - %s\n", nt_errstr(status));
                ret = false;
        } else {
                changed = true;
@@ -1848,9 +1848,9 @@ static bool test_ChangePasswordUser(struct dcerpc_pipe *p, struct torture_contex
        if (changed) {
                status = dcerpc_samr_ChangePasswordUser(p, tctx, &r);
                if (NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)) {
-                       printf("ChangePasswordUser returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
+                       torture_comment(tctx, "ChangePasswordUser returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
                } else if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-                       printf("ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we already changed the password, got %s\n", nt_errstr(status));
+                       torture_warning(tctx, "ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we already changed the password, got %s\n", nt_errstr(status));
                        ret = false;
                }
        }
@@ -1924,7 +1924,7 @@ static bool test_OemChangePasswordUser2(struct dcerpc_pipe *p, struct torture_co
 
        if (!NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)
            && !NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("OemChangePasswordUser2 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalid password verifier - %s\n",
+               torture_warning(tctx, "OemChangePasswordUser2 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalid password verifier - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -1946,7 +1946,7 @@ static bool test_OemChangePasswordUser2(struct dcerpc_pipe *p, struct torture_co
 
        if (!NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)
            && !NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("OemChangePasswordUser2 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalidly encrpted password - %s\n",
+               torture_warning(tctx, "OemChangePasswordUser2 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalidly encrpted password - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -1963,7 +1963,7 @@ static bool test_OemChangePasswordUser2(struct dcerpc_pipe *p, struct torture_co
 
        if (!NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)
            && !NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-               printf("OemChangePasswordUser2 failed, should have returned INVALID_PARAMETER (or at least 'PASSWORD_RESTRICTON') for no supplied validation hash - %s\n",
+               torture_warning(tctx, "OemChangePasswordUser2 failed, should have returned INVALID_PARAMETER (or at least 'PASSWORD_RESTRICTON') for no supplied validation hash - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -1975,7 +1975,7 @@ static bool test_OemChangePasswordUser2(struct dcerpc_pipe *p, struct torture_co
        status = dcerpc_samr_OemChangePasswordUser2(p, tctx, &r);
 
        if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-               printf("OemChangePasswordUser2 failed, should have returned INVALID_PARAMETER for no supplied validation hash and invalid user - %s\n",
+               torture_warning(tctx, "OemChangePasswordUser2 failed, should have returned INVALID_PARAMETER for no supplied validation hash and invalid user - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -1989,7 +1989,7 @@ static bool test_OemChangePasswordUser2(struct dcerpc_pipe *p, struct torture_co
        status = dcerpc_samr_OemChangePasswordUser2(p, tctx, &r);
 
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("OemChangePasswordUser2 failed, should have returned WRONG_PASSWORD for invalid user - %s\n",
+               torture_warning(tctx, "OemChangePasswordUser2 failed, should have returned WRONG_PASSWORD for invalid user - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -2003,7 +2003,7 @@ static bool test_OemChangePasswordUser2(struct dcerpc_pipe *p, struct torture_co
        status = dcerpc_samr_OemChangePasswordUser2(p, tctx, &r);
 
        if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-               printf("OemChangePasswordUser2 failed, should have returned INVALID_PARAMETER for no supplied password and invalid user - %s\n",
+               torture_warning(tctx, "OemChangePasswordUser2 failed, should have returned INVALID_PARAMETER for no supplied password and invalid user - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -2022,9 +2022,9 @@ static bool test_OemChangePasswordUser2(struct dcerpc_pipe *p, struct torture_co
 
        status = dcerpc_samr_OemChangePasswordUser2(p, tctx, &r);
        if (NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)) {
-               printf("OemChangePasswordUser2 returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
+               torture_comment(tctx, "OemChangePasswordUser2 returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
        } else if (!NT_STATUS_IS_OK(status)) {
-               printf("OemChangePasswordUser2 failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "OemChangePasswordUser2 failed - %s\n", nt_errstr(status));
                ret = false;
        } else {
                *password = newpass;
@@ -2101,9 +2101,9 @@ static bool test_ChangePasswordUser2(struct dcerpc_pipe *p, struct torture_conte
 
        status = dcerpc_samr_ChangePasswordUser2(p, tctx, &r);
        if (allow_password_restriction && NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)) {
-               printf("ChangePasswordUser2 returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
+               torture_comment(tctx, "ChangePasswordUser2 returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
        } else if (!NT_STATUS_IS_OK(status)) {
-               printf("ChangePasswordUser2 failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "ChangePasswordUser2 failed - %s\n", nt_errstr(status));
                ret = false;
        } else {
                *password = newpass;
@@ -2186,7 +2186,7 @@ bool test_ChangePasswordUser3(struct dcerpc_pipe *p, struct torture_context *tct
        status = dcerpc_samr_ChangePasswordUser3(p, tctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION) &&
            (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD))) {
-               printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalid password verifier - %s\n",
+               torture_warning(tctx, "ChangePasswordUser3 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalid password verifier - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -2217,7 +2217,7 @@ bool test_ChangePasswordUser3(struct dcerpc_pipe *p, struct torture_context *tct
        status = dcerpc_samr_ChangePasswordUser3(p, tctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION) &&
            (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD))) {
-               printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalidly encrpted password - %s\n",
+               torture_warning(tctx, "ChangePasswordUser3 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalidly encrpted password - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -2228,7 +2228,7 @@ bool test_ChangePasswordUser3(struct dcerpc_pipe *p, struct torture_context *tct
        r.in.account = &account_bad;
        status = dcerpc_samr_ChangePasswordUser3(p, tctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
-               printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD for invalid username - %s\n",
+               torture_warning(tctx, "ChangePasswordUser3 failed, should have returned WRONG_PASSWORD for invalid username - %s\n",
                        nt_errstr(status));
                ret = false;
        }
@@ -2270,7 +2270,7 @@ bool test_ChangePasswordUser3(struct dcerpc_pipe *p, struct torture_context *tct
                if (dominfo->password_properties & DOMAIN_REFUSE_PASSWORD_CHANGE ) {
 
                        if (reject && (reject->reason != SAMR_REJECT_OTHER)) {
-                               printf("expected SAMR_REJECT_OTHER (%d), got %d\n",
+                               torture_warning(tctx, "expected SAMR_REJECT_OTHER (%d), got %d\n",
                                        SAMR_REJECT_OTHER, reject->reason);
                                return false;
                        }
@@ -2289,7 +2289,7 @@ bool test_ChangePasswordUser3(struct dcerpc_pipe *p, struct torture_context *tct
                           (last_password_change + dominfo->min_password_age > t)) {
 
                        if (reject->reason != SAMR_REJECT_OTHER) {
-                               printf("expected SAMR_REJECT_OTHER (%d), got %d\n",
+                               torture_warning(tctx, "expected SAMR_REJECT_OTHER (%d), got %d\n",
                                        SAMR_REJECT_OTHER, reject->reason);
                                return false;
                        }
@@ -2298,7 +2298,7 @@ bool test_ChangePasswordUser3(struct dcerpc_pipe *p, struct torture_context *tct
                           (strlen(newpass) < dominfo->min_password_length)) {
 
                        if (reject->reason != SAMR_REJECT_TOO_SHORT) {
-                               printf("expected SAMR_REJECT_TOO_SHORT (%d), got %d\n",
+                               torture_warning(tctx, "expected SAMR_REJECT_TOO_SHORT (%d), got %d\n",
                                        SAMR_REJECT_TOO_SHORT, reject->reason);
                                return false;
                        }
@@ -2307,14 +2307,14 @@ bool test_ChangePasswordUser3(struct dcerpc_pipe *p, struct torture_context *tct
                            strequal(oldpass, newpass)) {
 
                        if (reject->reason != SAMR_REJECT_IN_HISTORY) {
-                               printf("expected SAMR_REJECT_IN_HISTORY (%d), got %d\n",
+                               torture_warning(tctx, "expected SAMR_REJECT_IN_HISTORY (%d), got %d\n",
                                        SAMR_REJECT_IN_HISTORY, reject->reason);
                                return false;
                        }
                } else if (dominfo->password_properties & DOMAIN_PASSWORD_COMPLEX) {
 
                        if (reject->reason != SAMR_REJECT_COMPLEXITY) {
-                               printf("expected SAMR_REJECT_COMPLEXITY (%d), got %d\n",
+                               torture_warning(tctx, "expected SAMR_REJECT_COMPLEXITY (%d), got %d\n",
                                        SAMR_REJECT_COMPLEXITY, reject->reason);
                                return false;
                        }
@@ -2331,7 +2331,7 @@ bool test_ChangePasswordUser3(struct dcerpc_pipe *p, struct torture_context *tct
 
        } else if (NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)) {
                if (reject && reject->reason != SAMR_REJECT_OTHER) {
-                       printf("expected SAMR_REJECT_OTHER (%d), got %d\n",
+                       torture_warning(tctx, "expected SAMR_REJECT_OTHER (%d), got %d\n",
                               SAMR_REJECT_OTHER, reject->reason);
                        return false;
                }
@@ -2392,7 +2392,7 @@ bool test_ChangePasswordRandomBytes(struct dcerpc_pipe *p, struct torture_contex
 
        status = dcerpc_fetch_session_key(p, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u - no session key - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -2411,7 +2411,7 @@ bool test_ChangePasswordRandomBytes(struct dcerpc_pipe *p, struct torture_contex
 
        status = dcerpc_samr_SetUserInfo(p, tctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetUserInfo level %u failed - %s\n",
+               torture_warning(tctx, "SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
                ret = false;
        }
@@ -2445,14 +2445,14 @@ bool test_ChangePasswordRandomBytes(struct dcerpc_pipe *p, struct torture_contex
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)) {
                if (reject && reject->reason != SAMR_REJECT_OTHER) {
-                       printf("expected SAMR_REJECT_OTHER (%d), got %d\n",
+                       torture_warning(tctx, "expected SAMR_REJECT_OTHER (%d), got %d\n",
                               SAMR_REJECT_OTHER, reject->reason);
                        return false;
                }
                /* Perhaps the server has a 'min password age' set? */
 
        } else if (!NT_STATUS_IS_OK(status)) {
-               printf("ChangePasswordUser3 failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "ChangePasswordUser3 failed - %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -2483,7 +2483,7 @@ bool test_ChangePasswordRandomBytes(struct dcerpc_pipe *p, struct torture_contex
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_PASSWORD_RESTRICTION)) {
                if (reject && reject->reason != SAMR_REJECT_OTHER) {
-                       printf("expected SAMR_REJECT_OTHER (%d), got %d\n",
+                       torture_warning(tctx, "expected SAMR_REJECT_OTHER (%d), got %d\n",
                               SAMR_REJECT_OTHER, reject->reason);
                        return false;
                }
@@ -2639,7 +2639,7 @@ static bool test_QueryUserInfo_pwdlastset(struct dcerpc_pipe *p,
 
                if (!NT_STATUS_IS_OK(status) &&
                    !NT_STATUS_EQUAL(status, NT_STATUS_INVALID_INFO_CLASS)) {
-                       printf("QueryUserInfo%s level %u failed - %s\n",
+                       torture_warning(tctx, "QueryUserInfo%s level %u failed - %s\n",
                               use_info2 ? "2":"", levels[i], nt_errstr(status));
                        return false;
                }
@@ -2737,7 +2737,7 @@ static bool test_SamLogon(struct torture_context *tctx,
        r.out.validation = &validation;
        r.out.authoritative = &authoritative;
 
-       d_printf("Testing LogonSamLogon with name %s\n", ninfo.identity_info.account_name.string);
+       torture_comment(tctx, "Testing LogonSamLogon with name %s\n", ninfo.identity_info.account_name.string);
 
        r.in.validation_level = 6;
 
@@ -2777,7 +2777,7 @@ static bool test_SamLogon_with_creds(struct torture_context *tctx,
        cli_credentials_set_password(test_credentials,
                                     password, CRED_SPECIFIED);
 
-       printf("testing samlogon as %s password: %s\n",
+       torture_comment(tctx, "testing samlogon as %s password: %s\n",
                acct_name, password);
 
        if (!test_SamLogon(tctx, p, test_credentials,
@@ -2889,7 +2889,7 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
 
        if (torture_setting_bool(tctx, "samba3", false)) {
                delay = 999999;
-               printf("Samba3 has second granularity, setting delay to: %d\n",
+               torture_comment(tctx, "Samba3 has second granularity, setting delay to: %d\n",
                        delay);
        }
 
@@ -2910,7 +2910,7 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                                       machine_credentials, tctx->ev, tctx->lp_ctx);
 
        if (!NT_STATUS_IS_OK(status)) {
-               d_printf("RPC pipe connect as domain member failed: %s\n", nt_errstr(status));
+               torture_warning(tctx, "RPC pipe connect as domain member failed: %s\n", nt_errstr(status));
                ret = false;
                return ret;
        }
@@ -3642,7 +3642,7 @@ static bool test_user_ops(struct dcerpc_pipe *p,
                        ZERO_STRUCT(simple_pass);
                        memset(simple_pass, *v, sizeof(simple_pass) - 1);
 
-                       printf("Testing machine account password policy rules\n");
+                       torture_comment(tctx, "Testing machine account password policy rules\n");
 
                        /* Workstation trust accounts don't seem to need to honour password quality policy */
                        if (!test_SetUserPassEx(p, tctx, user_handle, true, &password)) {
@@ -3700,7 +3700,7 @@ static bool test_user_ops(struct dcerpc_pipe *p,
                }
 
                if (torture_setting_bool(tctx, "samba4", false)) {
-                       printf("skipping Set Password level 18 and 21 against Samba4\n");
+                       torture_comment(tctx, "skipping Set Password level 18 and 21 against Samba4\n");
                } else {
 
                        if (!test_SetUserPass_18(p, tctx, user_handle, &password)) {
@@ -3736,13 +3736,13 @@ static bool test_user_ops(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_QueryUserInfo(p, tctx, &q);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryUserInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryUserInfo level %u failed - %s\n",
                               q.in.level, nt_errstr(status));
                        ret = false;
                } else {
                        uint32_t expected_flags = (base_acct_flags | ACB_PWNOTREQ | ACB_DISABLED);
                        if ((info->info5.acct_flags) != expected_flags) {
-                               printf("QuerUserInfo level 5 failed, it returned 0x%08x when we expected flags of 0x%08x\n",
+                               torture_warning(tctx, "QuerUserInfo level 5 failed, it returned 0x%08x when we expected flags of 0x%08x\n",
                                       info->info5.acct_flags,
                                       expected_flags);
                                /* FIXME: GD */
@@ -3751,7 +3751,7 @@ static bool test_user_ops(struct dcerpc_pipe *p,
                                }
                        }
                        if (info->info5.rid != rid) {
-                               printf("QuerUserInfo level 5 failed, it returned %u when we expected rid of %u\n",
+                               torture_warning(tctx, "QuerUserInfo level 5 failed, it returned %u when we expected rid of %u\n",
                                       info->info5.rid, rid);
 
                        }
@@ -3839,7 +3839,7 @@ static bool test_alias_ops(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        if (torture_setting_bool(tctx, "samba3", false) ||
            torture_setting_bool(tctx, "samba4", false)) {
-               printf("skipping MultipleMembers Alias tests against Samba\n");
+               torture_comment(tctx, "skipping MultipleMembers Alias tests against Samba\n");
                return ret;
        }
 
@@ -3896,7 +3896,7 @@ bool test_DeleteUser_byname(struct dcerpc_pipe *p,
        return true;
 
 failed:
-       printf("DeleteUser_byname(%s) failed - %s\n", name, nt_errstr(status));
+       torture_warning(tctx, "DeleteUser_byname(%s) failed - %s\n", name, nt_errstr(status));
        return false;
 }
 
@@ -3935,7 +3935,7 @@ static bool test_DeleteGroup_byname(struct dcerpc_pipe *p,
        return true;
 
 failed:
-       printf("DeleteGroup_byname(%s) failed - %s\n", name, nt_errstr(status));
+       torture_warning(tctx, "DeleteGroup_byname(%s) failed - %s\n", name, nt_errstr(status));
        return false;
 }
 
@@ -3951,7 +3951,7 @@ static bool test_DeleteAlias_byname(struct dcerpc_pipe *p,
        struct policy_handle alias_handle;
        uint32_t rid;
 
-       printf("testing DeleteAlias_byname\n");
+       torture_comment(tctx, "testing DeleteAlias_byname\n");
 
        status = test_LookupName(p, tctx, domain_handle, name, &rid);
        if (!NT_STATUS_IS_OK(status)) {
@@ -3977,7 +3977,7 @@ static bool test_DeleteAlias_byname(struct dcerpc_pipe *p,
        return true;
 
 failed:
-       printf("DeleteAlias_byname(%s) failed - %s\n", name, nt_errstr(status));
+       torture_warning(tctx, "DeleteAlias_byname(%s) failed - %s\n", name, nt_errstr(status));
        return false;
 }
 
@@ -3988,14 +3988,15 @@ static bool test_DeleteAlias(struct dcerpc_pipe *p,
        struct samr_DeleteDomAlias d;
        NTSTATUS status;
        bool ret = true;
-       printf("Testing DeleteAlias\n");
+
+       torture_comment(tctx, "Testing DeleteAlias\n");
 
        d.in.alias_handle = alias_handle;
        d.out.alias_handle = alias_handle;
 
        status = dcerpc_samr_DeleteDomAlias(p, tctx, &d);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("DeleteAlias failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "DeleteAlias failed - %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -4022,16 +4023,16 @@ static bool test_CreateAlias(struct dcerpc_pipe *p, struct torture_context *tctx
        r.out.alias_handle = alias_handle;
        r.out.rid = &rid;
 
-       printf("Testing CreateAlias (%s)\n", r.in.alias_name->string);
+       torture_comment(tctx, "Testing CreateAlias (%s)\n", r.in.alias_name->string);
 
        status = dcerpc_samr_CreateDomAlias(p, tctx, &r);
 
        if (dom_sid_equal(domain_sid, dom_sid_parse_talloc(tctx, SID_BUILTIN))) {
                if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
-                       printf("Server correctly refused create of '%s'\n", r.in.alias_name->string);
+                       torture_comment(tctx, "Server correctly refused create of '%s'\n", r.in.alias_name->string);
                        return true;
                } else {
-                       printf("Server should have refused create of '%s', got %s instead\n", r.in.alias_name->string,
+                       torture_warning(tctx, "Server should have refused create of '%s', got %s instead\n", r.in.alias_name->string,
                               nt_errstr(status));
                        return false;
                }
@@ -4045,7 +4046,7 @@ static bool test_CreateAlias(struct dcerpc_pipe *p, struct torture_context *tctx
        }
 
        if (!NT_STATUS_IS_OK(status)) {
-               printf("CreateAlias failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "CreateAlias failed - %s\n", nt_errstr(status));
                return false;
        }
 
@@ -4117,7 +4118,7 @@ static bool test_ChangePassword(struct dcerpc_pipe *p,
                r.in.level = 1;
                r.out.info = &info;
 
-               printf("testing samr_QueryDomainInfo level 1\n");
+               torture_comment(tctx, "testing samr_QueryDomainInfo level 1\n");
                status = dcerpc_samr_QueryDomainInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
                        return false;
@@ -4137,13 +4138,13 @@ static bool test_ChangePassword(struct dcerpc_pipe *p,
                min_pwd_age_old = s.in.info->info1.min_password_age;
                s.in.info->info1.min_password_age = 0;
 
-               printf("testing samr_SetDomainInfo level 1\n");
+               torture_comment(tctx, "testing samr_SetDomainInfo level 1\n");
                status = dcerpc_samr_SetDomainInfo(p, tctx, &s);
                if (!NT_STATUS_IS_OK(status)) {
                        return false;
                }
 
-               printf("calling test_ChangePasswordUser3 with too short password\n");
+               torture_comment(tctx, "calling test_ChangePasswordUser3 with too short password\n");
 
                if (!test_ChangePasswordUser3(p, tctx, acct_name, len - 1, password, NULL, 0, true)) {
                        ret = false;
@@ -4153,7 +4154,7 @@ static bool test_ChangePassword(struct dcerpc_pipe *p,
                s.in.info->info1.password_properties = pwd_prop_old;
                s.in.info->info1.min_password_age = min_pwd_age_old;
 
-               printf("testing samr_SetDomainInfo level 1\n");
+               torture_comment(tctx, "testing samr_SetDomainInfo level 1\n");
                status = dcerpc_samr_SetDomainInfo(p, tctx, &s);
                if (!NT_STATUS_IS_OK(status)) {
                        return false;
@@ -4179,7 +4180,7 @@ static bool test_ChangePassword(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_LookupNames(p, tctx, &n);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("LookupNames failed - %s\n", nt_errstr(status));
+                       torture_warning(tctx, "LookupNames failed - %s\n", nt_errstr(status));
                        return false;
                }
 
@@ -4190,7 +4191,7 @@ static bool test_ChangePassword(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_OpenUser(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("OpenUser(%u) failed - %s\n", n.out.rids->ids[0], nt_errstr(status));
+                       torture_warning(tctx, "OpenUser(%u) failed - %s\n", n.out.rids->ids[0], nt_errstr(status));
                        return false;
                }
 
@@ -4200,11 +4201,11 @@ static bool test_ChangePassword(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_QueryUserInfo(p, tctx, &q);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryUserInfo failed - %s\n", nt_errstr(status));
+                       torture_warning(tctx, "QueryUserInfo failed - %s\n", nt_errstr(status));
                        return false;
                }
 
-               printf("calling test_ChangePasswordUser3 with too early password change\n");
+               torture_comment(tctx, "calling test_ChangePasswordUser3 with too early password change\n");
 
                if (!test_ChangePasswordUser3(p, tctx, acct_name, 0, password, NULL,
                                              info->info5.last_password_change, true)) {
@@ -4259,16 +4260,16 @@ static bool test_CreateUser(struct dcerpc_pipe *p, struct torture_context *tctx,
        r.out.user_handle = &user_handle;
        r.out.rid = &rid;
 
-       printf("Testing CreateUser(%s)\n", r.in.account_name->string);
+       torture_comment(tctx, "Testing CreateUser(%s)\n", r.in.account_name->string);
 
        status = dcerpc_samr_CreateUser(p, user_ctx, &r);
 
        if (dom_sid_equal(domain_sid, dom_sid_parse_talloc(tctx, SID_BUILTIN))) {
                if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) || NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-                       printf("Server correctly refused create of '%s'\n", r.in.account_name->string);
+                       torture_comment(tctx, "Server correctly refused create of '%s'\n", r.in.account_name->string);
                        return true;
                } else {
-                       printf("Server should have refused create of '%s', got %s instead\n", r.in.account_name->string,
+                       torture_warning(tctx, "Server should have refused create of '%s', got %s instead\n", r.in.account_name->string,
                               nt_errstr(status));
                        return false;
                }
@@ -4284,7 +4285,7 @@ static bool test_CreateUser(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(user_ctx);
-               printf("CreateUser failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "CreateUser failed - %s\n", nt_errstr(status));
                return false;
        }
 
@@ -4302,12 +4303,12 @@ static bool test_CreateUser(struct dcerpc_pipe *p, struct torture_context *tctx,
 
                status = dcerpc_samr_QueryUserInfo(p, user_ctx, &q);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryUserInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryUserInfo level %u failed - %s\n",
                               q.in.level, nt_errstr(status));
                        ret = false;
                } else {
                        if ((info->info16.acct_flags & acct_flags) != acct_flags) {
-                               printf("QuerUserInfo level 16 failed, it returned 0x%08x when we expected flags of 0x%08x\n",
+                               torture_warning(tctx, "QuerUserInfo level 16 failed, it returned 0x%08x when we expected flags of 0x%08x\n",
                                       info->info16.acct_flags,
                                       acct_flags);
                                ret = false;
@@ -4323,14 +4324,14 @@ static bool test_CreateUser(struct dcerpc_pipe *p, struct torture_context *tctx,
                if (user_handle_out) {
                        *user_handle_out = user_handle;
                } else {
-                       printf("Testing DeleteUser (createuser test)\n");
+                       torture_comment(tctx, "Testing DeleteUser (createuser test)\n");
 
                        d.in.user_handle = &user_handle;
                        d.out.user_handle = &user_handle;
 
                        status = dcerpc_samr_DeleteUser(p, user_ctx, &d);
                        if (!NT_STATUS_IS_OK(status)) {
-                               printf("DeleteUser failed - %s\n", nt_errstr(status));
+                               torture_warning(tctx, "DeleteUser failed - %s\n", nt_errstr(status));
                                ret = false;
                        }
                }
@@ -4397,16 +4398,16 @@ static bool test_CreateUser2(struct dcerpc_pipe *p, struct torture_context *tctx
                r.out.access_granted = &access_granted;
                r.out.rid = &rid;
 
-               printf("Testing CreateUser2(%s, 0x%x)\n", r.in.account_name->string, acct_flags);
+               torture_comment(tctx, "Testing CreateUser2(%s, 0x%x)\n", r.in.account_name->string, acct_flags);
 
                status = dcerpc_samr_CreateUser2(p, user_ctx, &r);
 
                if (dom_sid_equal(domain_sid, dom_sid_parse_talloc(tctx, SID_BUILTIN))) {
                        if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) || NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-                               printf("Server correctly refused create of '%s'\n", r.in.account_name->string);
+                               torture_comment(tctx, "Server correctly refused create of '%s'\n", r.in.account_name->string);
                                continue;
                        } else {
-                               printf("Server should have refused create of '%s', got %s instead\n", r.in.account_name->string,
+                               torture_warning(tctx, "Server should have refused create of '%s', got %s instead\n", r.in.account_name->string,
                                       nt_errstr(status));
                                ret = false;
                                continue;
@@ -4423,7 +4424,7 @@ static bool test_CreateUser2(struct dcerpc_pipe *p, struct torture_context *tctx
 
                }
                if (!NT_STATUS_EQUAL(status, account_types[i].nt_status)) {
-                       printf("CreateUser2 failed gave incorrect error return - %s (should be %s)\n",
+                       torture_warning(tctx, "CreateUser2 failed gave incorrect error return - %s (should be %s)\n",
                               nt_errstr(status), nt_errstr(account_types[i].nt_status));
                        ret = false;
                }
@@ -4435,7 +4436,7 @@ static bool test_CreateUser2(struct dcerpc_pipe *p, struct torture_context *tctx
 
                        status = dcerpc_samr_QueryUserInfo(p, user_ctx, &q);
                        if (!NT_STATUS_IS_OK(status)) {
-                               printf("QueryUserInfo level %u failed - %s\n",
+                               torture_warning(tctx, "QueryUserInfo level %u failed - %s\n",
                                       q.in.level, nt_errstr(status));
                                ret = false;
                        } else {
@@ -4444,7 +4445,7 @@ static bool test_CreateUser2(struct dcerpc_pipe *p, struct torture_context *tctx
                                        expected_flags |= ACB_PW_EXPIRED;
                                }
                                if ((info->info5.acct_flags) != expected_flags) {
-                                       printf("QuerUserInfo level 5 failed, it returned 0x%08x when we expected flags of 0x%08x\n",
+                                       torture_warning(tctx, "QuerUserInfo level 5 failed, it returned 0x%08x when we expected flags of 0x%08x\n",
                                               info->info5.acct_flags,
                                               expected_flags);
                                        ret = false;
@@ -4452,21 +4453,21 @@ static bool test_CreateUser2(struct dcerpc_pipe *p, struct torture_context *tctx
                                switch (acct_flags) {
                                case ACB_SVRTRUST:
                                        if (info->info5.primary_gid != DOMAIN_RID_DCS) {
-                                               printf("QuerUserInfo level 5: DC should have had Primary Group %d, got %d\n",
+                                               torture_warning(tctx, "QuerUserInfo level 5: DC should have had Primary Group %d, got %d\n",
                                                       DOMAIN_RID_DCS, info->info5.primary_gid);
                                                ret = false;
                                        }
                                        break;
                                case ACB_WSTRUST:
                                        if (info->info5.primary_gid != DOMAIN_RID_DOMAIN_MEMBERS) {
-                                               printf("QuerUserInfo level 5: Domain Member should have had Primary Group %d, got %d\n",
+                                               torture_warning(tctx, "QuerUserInfo level 5: Domain Member should have had Primary Group %d, got %d\n",
                                                       DOMAIN_RID_DOMAIN_MEMBERS, info->info5.primary_gid);
                                                ret = false;
                                        }
                                        break;
                                case ACB_NORMAL:
                                        if (info->info5.primary_gid != DOMAIN_RID_USERS) {
-                                               printf("QuerUserInfo level 5: Users should have had Primary Group %d, got %d\n",
+                                               torture_warning(tctx, "QuerUserInfo level 5: Users should have had Primary Group %d, got %d\n",
                                                       DOMAIN_RID_USERS, info->info5.primary_gid);
                                                ret = false;
                                        }
@@ -4481,14 +4482,14 @@ static bool test_CreateUser2(struct dcerpc_pipe *p, struct torture_context *tctx
                        }
 
                        if (!policy_handle_empty(&user_handle)) {
-                               printf("Testing DeleteUser (createuser2 test)\n");
+                               torture_comment(tctx, "Testing DeleteUser (createuser2 test)\n");
 
                                d.in.user_handle = &user_handle;
                                d.out.user_handle = &user_handle;
 
                                status = dcerpc_samr_DeleteUser(p, user_ctx, &d);
                                if (!NT_STATUS_IS_OK(status)) {
-                                       printf("DeleteUser failed - %s\n", nt_errstr(status));
+                                       torture_warning(tctx, "DeleteUser failed - %s\n", nt_errstr(status));
                                        ret = false;
                                }
                        }
@@ -4511,7 +4512,7 @@ static bool test_QueryAliasInfo(struct dcerpc_pipe *p,
        bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing QueryAliasInfo level %u\n", levels[i]);
+               torture_comment(tctx, "Testing QueryAliasInfo level %u\n", levels[i]);
 
                r.in.alias_handle = handle;
                r.in.level = levels[i];
@@ -4519,7 +4520,7 @@ static bool test_QueryAliasInfo(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_QueryAliasInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryAliasInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryAliasInfo level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -4540,7 +4541,7 @@ static bool test_QueryGroupInfo(struct dcerpc_pipe *p,
        bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing QueryGroupInfo level %u\n", levels[i]);
+               torture_comment(tctx, "Testing QueryGroupInfo level %u\n", levels[i]);
 
                r.in.group_handle = handle;
                r.in.level = levels[i];
@@ -4548,7 +4549,7 @@ static bool test_QueryGroupInfo(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_QueryGroupInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryGroupInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryGroupInfo level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -4566,14 +4567,14 @@ static bool test_QueryGroupMember(struct dcerpc_pipe *p,
        struct samr_RidTypeArray *rids = NULL;
        bool ret = true;
 
-       printf("Testing QueryGroupMember\n");
+       torture_comment(tctx, "Testing QueryGroupMember\n");
 
        r.in.group_handle = handle;
        r.out.rids = &rids;
 
        status = dcerpc_samr_QueryGroupMember(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("QueryGroupInfo failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "QueryGroupInfo failed - %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -4595,7 +4596,7 @@ static bool test_SetGroupInfo(struct dcerpc_pipe *p,
        bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing QueryGroupInfo level %u\n", levels[i]);
+               torture_comment(tctx, "Testing QueryGroupInfo level %u\n", levels[i]);
 
                r.in.group_handle = handle;
                r.in.level = levels[i];
@@ -4603,12 +4604,12 @@ static bool test_SetGroupInfo(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_QueryGroupInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryGroupInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryGroupInfo level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
 
-               printf("Testing SetGroupInfo level %u\n", levels[i]);
+               torture_comment(tctx, "Testing SetGroupInfo level %u\n", levels[i]);
 
                s.in.group_handle = handle;
                s.in.level = levels[i];
@@ -4631,14 +4632,14 @@ static bool test_SetGroupInfo(struct dcerpc_pipe *p,
                status = dcerpc_samr_SetGroupInfo(p, tctx, &s);
                if (set_ok[i]) {
                        if (!NT_STATUS_IS_OK(status)) {
-                               printf("SetGroupInfo level %u failed - %s\n",
+                               torture_warning(tctx, "SetGroupInfo level %u failed - %s\n",
                                       r.in.level, nt_errstr(status));
                                ret = false;
                                continue;
                        }
                } else {
                        if (!NT_STATUS_EQUAL(NT_STATUS_INVALID_INFO_CLASS, status)) {
-                               printf("SetGroupInfo level %u gave %s - should have been NT_STATUS_INVALID_INFO_CLASS\n",
+                               torture_warning(tctx, "SetGroupInfo level %u gave %s - should have been NT_STATUS_INVALID_INFO_CLASS\n",
                                       r.in.level, nt_errstr(status));
                                ret = false;
                                continue;
@@ -4662,7 +4663,7 @@ static bool test_QueryUserInfo(struct dcerpc_pipe *p,
        bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing QueryUserInfo level %u\n", levels[i]);
+               torture_comment(tctx, "Testing QueryUserInfo level %u\n", levels[i]);
 
                r.in.user_handle = handle;
                r.in.level = levels[i];
@@ -4670,7 +4671,7 @@ static bool test_QueryUserInfo(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_QueryUserInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryUserInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryUserInfo level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -4692,7 +4693,7 @@ static bool test_QueryUserInfo2(struct dcerpc_pipe *p,
        bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing QueryUserInfo2 level %u\n", levels[i]);
+               torture_comment(tctx, "Testing QueryUserInfo2 level %u\n", levels[i]);
 
                r.in.user_handle = handle;
                r.in.level = levels[i];
@@ -4700,7 +4701,7 @@ static bool test_QueryUserInfo2(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_QueryUserInfo2(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryUserInfo2 level %u failed - %s\n",
+                       torture_warning(tctx, "QueryUserInfo2 level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -4718,7 +4719,7 @@ static bool test_OpenUser(struct dcerpc_pipe *p,
        struct policy_handle user_handle;
        bool ret = true;
 
-       printf("Testing OpenUser(%u)\n", rid);
+       torture_comment(tctx, "Testing OpenUser(%u)\n", rid);
 
        r.in.domain_handle = handle;
        r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -4727,7 +4728,7 @@ static bool test_OpenUser(struct dcerpc_pipe *p,
 
        status = dcerpc_samr_OpenUser(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenUser(%u) failed - %s\n", rid, nt_errstr(status));
+               torture_warning(tctx, "OpenUser(%u) failed - %s\n", rid, nt_errstr(status));
                return false;
        }
 
@@ -4767,7 +4768,7 @@ static bool test_OpenGroup(struct dcerpc_pipe *p,
        struct policy_handle group_handle;
        bool ret = true;
 
-       printf("Testing OpenGroup(%u)\n", rid);
+       torture_comment(tctx, "Testing OpenGroup(%u)\n", rid);
 
        r.in.domain_handle = handle;
        r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -4776,7 +4777,7 @@ static bool test_OpenGroup(struct dcerpc_pipe *p,
 
        status = dcerpc_samr_OpenGroup(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenGroup(%u) failed - %s\n", rid, nt_errstr(status));
+               torture_warning(tctx, "OpenGroup(%u) failed - %s\n", rid, nt_errstr(status));
                return false;
        }
 
@@ -4818,7 +4819,7 @@ static bool test_OpenAlias(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        status = dcerpc_samr_OpenAlias(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenAlias(%u) failed - %s\n", rid, nt_errstr(status));
+               torture_warning(tctx, "OpenAlias(%u) failed - %s\n", rid, nt_errstr(status));
                return false;
        }
 
@@ -4863,7 +4864,7 @@ static bool check_mask(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        status = dcerpc_samr_OpenUser(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenUser(%u) failed - %s\n", rid, nt_errstr(status));
+               torture_warning(tctx, "OpenUser(%u) failed - %s\n", rid, nt_errstr(status));
                return false;
        }
 
@@ -4873,12 +4874,12 @@ static bool check_mask(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        status = dcerpc_samr_QueryUserInfo(p, tctx, &q);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("QueryUserInfo level 16 failed - %s\n",
+               torture_warning(tctx, "QueryUserInfo level 16 failed - %s\n",
                       nt_errstr(status));
                ret = false;
        } else {
                if ((acct_flag_mask & info->info16.acct_flags) == 0) {
-                       printf("Server failed to filter for 0x%x, allowed 0x%x (%d) on EnumDomainUsers\n",
+                       torture_warning(tctx, "Server failed to filter for 0x%x, allowed 0x%x (%d) on EnumDomainUsers\n",
                               acct_flag_mask, info->info16.acct_flags, rid);
                        ret = false;
                }
@@ -4912,7 +4913,7 @@ static bool test_EnumDomainUsers_all(struct dcerpc_pipe *p,
                            ACB_SVRTRUST | ACB_DOMTRUST | ACB_WSTRUST,
                            ACB_PWNOEXP, 0};
 
-       printf("Testing EnumDomainUsers\n");
+       torture_comment(tctx, "Testing EnumDomainUsers\n");
 
        for (mask_idx=0;mask_idx<ARRAY_SIZE(masks);mask_idx++) {
                r.in.domain_handle = handle;
@@ -4926,7 +4927,7 @@ static bool test_EnumDomainUsers_all(struct dcerpc_pipe *p,
                status = dcerpc_samr_EnumDomainUsers(p, tctx, &r);
                if (!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES) &&
                    !NT_STATUS_IS_OK(status)) {
-                       printf("EnumDomainUsers failed - %s\n", nt_errstr(status));
+                       torture_warning(tctx, "EnumDomainUsers failed - %s\n", nt_errstr(status));
                        return false;
                }
 
@@ -4947,7 +4948,7 @@ static bool test_EnumDomainUsers_all(struct dcerpc_pipe *p,
                }
        }
 
-       printf("Testing LookupNames\n");
+       torture_comment(tctx, "Testing LookupNames\n");
        n.in.domain_handle = handle;
        n.in.num_names = sam->count;
        n.in.names = talloc_array(tctx, struct lsa_String, sam->count);
@@ -4958,12 +4959,12 @@ static bool test_EnumDomainUsers_all(struct dcerpc_pipe *p,
        }
        status = dcerpc_samr_LookupNames(p, tctx, &n);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("LookupNames failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "LookupNames failed - %s\n", nt_errstr(status));
                ret = false;
        }
 
 
-       printf("Testing LookupRids\n");
+       torture_comment(tctx, "Testing LookupRids\n");
        lr.in.domain_handle = handle;
        lr.in.num_rids = sam->count;
        lr.in.rids = talloc_array(tctx, uint32_t, sam->count);
@@ -5010,7 +5011,7 @@ static bool test_EnumDomainUsers_async(struct dcerpc_pipe *p, struct torture_con
        for (i=0;i<ASYNC_COUNT;i++) {
                status = dcerpc_ndr_request_recv(req[i]);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("EnumDomainUsers[%d] failed - %s\n",
+                       torture_warning(tctx, "EnumDomainUsers[%d] failed - %s\n",
                               i, nt_errstr(status));
                        return false;
                }
@@ -5033,7 +5034,7 @@ static bool test_EnumDomainGroups_all(struct dcerpc_pipe *p,
        int i;
        bool ret = true;
 
-       printf("Testing EnumDomainGroups\n");
+       torture_comment(tctx, "Testing EnumDomainGroups\n");
 
        r.in.domain_handle = handle;
        r.in.resume_handle = &resume_handle;
@@ -5044,7 +5045,7 @@ static bool test_EnumDomainGroups_all(struct dcerpc_pipe *p,
 
        status = dcerpc_samr_EnumDomainGroups(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("EnumDomainGroups failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "EnumDomainGroups failed - %s\n", nt_errstr(status));
                return false;
        }
 
@@ -5073,7 +5074,7 @@ static bool test_EnumDomainAliases_all(struct dcerpc_pipe *p,
        int i;
        bool ret = true;
 
-       printf("Testing EnumDomainAliases\n");
+       torture_comment(tctx, "Testing EnumDomainAliases\n");
 
        r.in.domain_handle = handle;
        r.in.resume_handle = &resume_handle;
@@ -5084,7 +5085,7 @@ static bool test_EnumDomainAliases_all(struct dcerpc_pipe *p,
 
        status = dcerpc_samr_EnumDomainAliases(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("EnumDomainAliases failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "EnumDomainAliases failed - %s\n", nt_errstr(status));
                return false;
        }
 
@@ -5115,7 +5116,7 @@ static bool test_GetDisplayEnumerationIndex(struct dcerpc_pipe *p,
        int i;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing GetDisplayEnumerationIndex level %u\n", levels[i]);
+               torture_comment(tctx, "Testing GetDisplayEnumerationIndex level %u\n", levels[i]);
 
                init_lsa_String(&name, TEST_ACCOUNT_NAME);
 
@@ -5129,7 +5130,7 @@ static bool test_GetDisplayEnumerationIndex(struct dcerpc_pipe *p,
                if (ok_lvl[i] &&
                    !NT_STATUS_IS_OK(status) &&
                    !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
-                       printf("GetDisplayEnumerationIndex level %u failed - %s\n",
+                       torture_warning(tctx, "GetDisplayEnumerationIndex level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -5139,7 +5140,7 @@ static bool test_GetDisplayEnumerationIndex(struct dcerpc_pipe *p,
                status = dcerpc_samr_GetDisplayEnumerationIndex(p, tctx, &r);
 
                if (ok_lvl[i] && !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
-                       printf("GetDisplayEnumerationIndex level %u failed - %s\n",
+                       torture_warning(tctx, "GetDisplayEnumerationIndex level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -5162,7 +5163,7 @@ static bool test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p,
        int i;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing GetDisplayEnumerationIndex2 level %u\n", levels[i]);
+               torture_comment(tctx, "Testing GetDisplayEnumerationIndex2 level %u\n", levels[i]);
 
                init_lsa_String(&name, TEST_ACCOUNT_NAME);
 
@@ -5175,7 +5176,7 @@ static bool test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p,
                if (ok_lvl[i] &&
                    !NT_STATUS_IS_OK(status) &&
                    !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
-                       printf("GetDisplayEnumerationIndex2 level %u failed - %s\n",
+                       torture_warning(tctx, "GetDisplayEnumerationIndex2 level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -5184,7 +5185,7 @@ static bool test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_GetDisplayEnumerationIndex2(p, tctx, &r);
                if (ok_lvl[i] && !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
-                       printf("GetDisplayEnumerationIndex2 level %u failed - %s\n",
+                       torture_warning(tctx, "GetDisplayEnumerationIndex2 level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -5197,13 +5198,13 @@ static bool test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p,
        if (s1.string == NULL && s2.string != NULL && s2.string[0] == '\0') { \
                /* odd, but valid */                                            \
        } else if ((s1.string && !s2.string) || (s2.string && !s1.string) || strcmp(s1.string, s2.string)) { \
-                       printf("%s mismatch for %s: %s != %s (%s)\n", \
+                       torture_warning(tctx, "%s mismatch for %s: %s != %s (%s)\n", \
                               #s1, user.string,  s1.string, s2.string, __location__);   \
                        ret = false; \
        }
 #define INT_EQUAL_QUERY(s1, s2, user)          \
                if (s1 != s2) { \
-                       printf("%s mismatch for %s: 0x%llx != 0x%llx (%s)\n", \
+                       torture_warning(tctx, "%s mismatch for %s: 0x%llx != 0x%llx (%s)\n", \
                               #s1, user.string, (unsigned long long)s1, (unsigned long long)s2, __location__); \
                        ret = false; \
                }
@@ -5250,7 +5251,7 @@ static bool test_each_DisplayInfo_user(struct dcerpc_pipe *p,
                case 2:
                        status = dcerpc_samr_OpenUser(p, tctx, &r);
                        if (!NT_STATUS_IS_OK(status)) {
-                               printf("OpenUser(%u) failed - %s\n", r.in.rid, nt_errstr(status));
+                               torture_warning(tctx, "OpenUser(%u) failed - %s\n", r.in.rid, nt_errstr(status));
                                return false;
                        }
                }
@@ -5260,7 +5261,7 @@ static bool test_each_DisplayInfo_user(struct dcerpc_pipe *p,
                q.out.info = &info;
                status = dcerpc_samr_QueryUserInfo(p, tctx, &q);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryUserInfo(%u) failed - %s\n", r.in.rid, nt_errstr(status));
+                       torture_warning(tctx, "QueryUserInfo(%u) failed - %s\n", r.in.rid, nt_errstr(status));
                        return false;
                }
 
@@ -5292,12 +5293,12 @@ static bool test_each_DisplayInfo_user(struct dcerpc_pipe *p,
                                        info->info21.acct_flags, info->info21.account_name);
 
                        if (!(querydisplayinfo->out.info->info2.entries[i].acct_flags & ACB_NORMAL)) {
-                               printf("Missing ACB_NORMAL in querydisplayinfo->out.info.info2.entries[i].acct_flags on %s\n",
+                               torture_warning(tctx, "Missing ACB_NORMAL in querydisplayinfo->out.info.info2.entries[i].acct_flags on %s\n",
                                       info->info21.account_name.string);
                        }
 
                        if (!(info->info21.acct_flags & (ACB_WSTRUST | ACB_SVRTRUST))) {
-                               printf("Found non-trust account %s in trust account listing: 0x%x 0x%x\n",
+                               torture_warning(tctx, "Found non-trust account %s in trust account listing: 0x%x 0x%x\n",
                                       info->info21.account_name.string,
                                       querydisplayinfo->out.info->info2.entries[i].acct_flags,
                                       info->info21.acct_flags);
@@ -5332,7 +5333,7 @@ static bool test_QueryDisplayInfo(struct dcerpc_pipe *p,
 
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing QueryDisplayInfo level %u\n", levels[i]);
+               torture_comment(tctx, "Testing QueryDisplayInfo level %u\n", levels[i]);
 
                r.in.start_idx = 0;
                status = STATUS_MORE_ENTRIES;
@@ -5347,7 +5348,7 @@ static bool test_QueryDisplayInfo(struct dcerpc_pipe *p,
 
                        status = dcerpc_samr_QueryDisplayInfo(p, tctx, &r);
                        if (!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES) && !NT_STATUS_IS_OK(status)) {
-                               printf("QueryDisplayInfo level %u failed - %s\n",
+                               torture_warning(tctx, "QueryDisplayInfo level %u failed - %s\n",
                                       levels[i], nt_errstr(status));
                                ret = false;
                        }
@@ -5382,7 +5383,7 @@ static bool test_QueryDisplayInfo(struct dcerpc_pipe *p,
                /* Check number of users returned is correct */
                status = dcerpc_samr_QueryDomainInfo(p, tctx, &dom_info);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryDomainInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryDomainInfo level %u failed - %s\n",
                               r.in.level, nt_errstr(status));
                                ret = false;
                                break;
@@ -5391,7 +5392,7 @@ static bool test_QueryDisplayInfo(struct dcerpc_pipe *p,
                case 1:
                case 4:
                        if (info->general.num_users < r.in.start_idx) {
-                               printf("QueryDomainInfo indicates that QueryDisplayInfo returned more users (%d/%d) than the domain %s is said to contain!\n",
+                               torture_warning(tctx, "QueryDomainInfo indicates that QueryDisplayInfo returned more users (%d/%d) than the domain %s is said to contain!\n",
                                       r.in.start_idx, info->general.num_groups,
                                       info->general.domain_name.string);
                                ret = false;
@@ -5399,7 +5400,7 @@ static bool test_QueryDisplayInfo(struct dcerpc_pipe *p,
                        if (!seen_testuser) {
                                struct policy_handle user_handle;
                                if (NT_STATUS_IS_OK(test_OpenUser_byname(p, tctx, handle, TEST_ACCOUNT_NAME, &user_handle))) {
-                                       printf("Didn't find test user " TEST_ACCOUNT_NAME " in enumeration of %s\n",
+                                       torture_warning(tctx, "Didn't find test user " TEST_ACCOUNT_NAME " in enumeration of %s\n",
                                               info->general.domain_name.string);
                                        ret = false;
                                        test_samr_handle_Close(p, tctx, &user_handle);
@@ -5409,7 +5410,7 @@ static bool test_QueryDisplayInfo(struct dcerpc_pipe *p,
                case 3:
                case 5:
                        if (info->general.num_groups != r.in.start_idx) {
-                               printf("QueryDomainInfo indicates that QueryDisplayInfo didn't return all (%d/%d) the groups in %s\n",
+                               torture_warning(tctx, "QueryDomainInfo indicates that QueryDisplayInfo didn't return all (%d/%d) the groups in %s\n",
                                       r.in.start_idx, info->general.num_groups,
                                       info->general.domain_name.string);
                                ret = false;
@@ -5437,7 +5438,7 @@ static bool test_QueryDisplayInfo2(struct dcerpc_pipe *p,
        union samr_DispInfo info;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing QueryDisplayInfo2 level %u\n", levels[i]);
+               torture_comment(tctx, "Testing QueryDisplayInfo2 level %u\n", levels[i]);
 
                r.in.domain_handle = handle;
                r.in.level = levels[i];
@@ -5450,7 +5451,7 @@ static bool test_QueryDisplayInfo2(struct dcerpc_pipe *p,
 
                status = dcerpc_samr_QueryDisplayInfo2(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryDisplayInfo2 level %u failed - %s\n",
+                       torture_warning(tctx, "QueryDisplayInfo2 level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -5485,7 +5486,7 @@ static bool test_QueryDisplayInfo3(struct dcerpc_pipe *p, struct torture_context
 
                status = dcerpc_samr_QueryDisplayInfo3(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryDisplayInfo3 level %u failed - %s\n",
+                       torture_warning(tctx, "QueryDisplayInfo3 level %u failed - %s\n",
                               levels[i], nt_errstr(status));
                        ret = false;
                }
@@ -5506,7 +5507,7 @@ static bool test_QueryDisplayInfo_continue(struct dcerpc_pipe *p,
        uint32_t returned_size;
        union samr_DispInfo info;
 
-       printf("Testing QueryDisplayInfo continuation\n");
+       torture_comment(tctx, "Testing QueryDisplayInfo continuation\n");
 
        r.in.domain_handle = handle;
        r.in.level = 1;
@@ -5521,7 +5522,7 @@ static bool test_QueryDisplayInfo_continue(struct dcerpc_pipe *p,
                status = dcerpc_samr_QueryDisplayInfo(p, tctx, &r);
                if (NT_STATUS_IS_OK(status) && *r.out.returned_size != 0) {
                        if (r.out.info->info1.entries[0].idx != r.in.start_idx + 1) {
-                               printf("expected idx %d but got %d\n",
+                               torture_warning(tctx, "expected idx %d but got %d\n",
                                       r.in.start_idx + 1,
                                       r.out.info->info1.entries[0].idx);
                                break;
@@ -5529,7 +5530,7 @@ static bool test_QueryDisplayInfo_continue(struct dcerpc_pipe *p,
                }
                if (!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES) &&
                    !NT_STATUS_IS_OK(status)) {
-                       printf("QueryDisplayInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryDisplayInfo level %u failed - %s\n",
                               r.in.level, nt_errstr(status));
                        ret = false;
                        break;
@@ -5564,7 +5565,7 @@ static bool test_QueryDomainInfo(struct dcerpc_pipe *p, struct torture_context *
        s.in.info->oem.oem_information.string = domain_comment;
        status = dcerpc_samr_SetDomainInfo(p, tctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("SetDomainInfo level %u (set comment) failed - %s\n",
+               torture_warning(tctx, "SetDomainInfo level %u (set comment) failed - %s\n",
                       s.in.level, nt_errstr(status));
                return false;
        }
@@ -5578,7 +5579,7 @@ static bool test_QueryDomainInfo(struct dcerpc_pipe *p, struct torture_context *
 
                status = dcerpc_samr_QueryDomainInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryDomainInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryDomainInfo level %u failed - %s\n",
                               r.in.level, nt_errstr(status));
                        ret = false;
                        continue;
@@ -5587,26 +5588,26 @@ static bool test_QueryDomainInfo(struct dcerpc_pipe *p, struct torture_context *
                switch (levels[i]) {
                case 2:
                        if (strcmp(info->general.oem_information.string, domain_comment) != 0) {
-                               printf("QueryDomainInfo level %u returned different oem_information (comment) (%s, expected %s)\n",
+                               torture_warning(tctx, "QueryDomainInfo level %u returned different oem_information (comment) (%s, expected %s)\n",
                                       levels[i], info->general.oem_information.string, domain_comment);
                                if (!torture_setting_bool(tctx, "samba3", false)) {
                                        ret = false;
                                }
                        }
                        if (!info->general.primary.string) {
-                               printf("QueryDomainInfo level %u returned no PDC name\n",
+                               torture_warning(tctx, "QueryDomainInfo level %u returned no PDC name\n",
                                       levels[i]);
                                ret = false;
                        } else if (info->general.role == SAMR_ROLE_DOMAIN_PDC) {
                                if (dcerpc_server_name(p) && strcasecmp_m(dcerpc_server_name(p), info->general.primary.string) != 0) {
-                                       printf("QueryDomainInfo level %u returned different PDC name (%s) compared to server name (%s), despite claiming to be the PDC\n",
+                                       torture_warning(tctx, "QueryDomainInfo level %u returned different PDC name (%s) compared to server name (%s), despite claiming to be the PDC\n",
                                               levels[i], info->general.primary.string, dcerpc_server_name(p));
                                }
                        }
                        break;
                case 4:
                        if (strcmp(info->oem.oem_information.string, domain_comment) != 0) {
-                               printf("QueryDomainInfo level %u returned different oem_information (comment) (%s, expected %s)\n",
+                               torture_warning(tctx, "QueryDomainInfo level %u returned different oem_information (comment) (%s, expected %s)\n",
                                       levels[i], info->oem.oem_information.string, domain_comment);
                                if (!torture_setting_bool(tctx, "samba3", false)) {
                                        ret = false;
@@ -5615,14 +5616,14 @@ static bool test_QueryDomainInfo(struct dcerpc_pipe *p, struct torture_context *
                        break;
                case 6:
                        if (!info->info6.primary.string) {
-                               printf("QueryDomainInfo level %u returned no PDC name\n",
+                               torture_warning(tctx, "QueryDomainInfo level %u returned no PDC name\n",
                                       levels[i]);
                                ret = false;
                        }
                        break;
                case 11:
                        if (strcmp(info->general2.general.oem_information.string, domain_comment) != 0) {
-                               printf("QueryDomainInfo level %u returned different comment (%s, expected %s)\n",
+                               torture_warning(tctx, "QueryDomainInfo level %u returned different comment (%s, expected %s)\n",
                                       levels[i], info->general2.general.oem_information.string, domain_comment);
                                if (!torture_setting_bool(tctx, "samba3", false)) {
                                        ret = false;
@@ -5640,14 +5641,14 @@ static bool test_QueryDomainInfo(struct dcerpc_pipe *p, struct torture_context *
                status = dcerpc_samr_SetDomainInfo(p, tctx, &s);
                if (set_ok[i]) {
                        if (!NT_STATUS_IS_OK(status)) {
-                               printf("SetDomainInfo level %u failed - %s\n",
+                               torture_warning(tctx, "SetDomainInfo level %u failed - %s\n",
                                       r.in.level, nt_errstr(status));
                                ret = false;
                                continue;
                        }
                } else {
                        if (!NT_STATUS_EQUAL(NT_STATUS_INVALID_INFO_CLASS, status)) {
-                               printf("SetDomainInfo level %u gave %s - should have been NT_STATUS_INVALID_INFO_CLASS\n",
+                               torture_warning(tctx, "SetDomainInfo level %u gave %s - should have been NT_STATUS_INVALID_INFO_CLASS\n",
                                       r.in.level, nt_errstr(status));
                                ret = false;
                                continue;
@@ -5656,7 +5657,7 @@ static bool test_QueryDomainInfo(struct dcerpc_pipe *p, struct torture_context *
 
                status = dcerpc_samr_QueryDomainInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryDomainInfo level %u failed - %s\n",
+                       torture_warning(tctx, "QueryDomainInfo level %u failed - %s\n",
                               r.in.level, nt_errstr(status));
                        ret = false;
                        continue;
@@ -5678,7 +5679,7 @@ static bool test_QueryDomainInfo2(struct dcerpc_pipe *p, struct torture_context
        bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
-               printf("Testing QueryDomainInfo2 level %u\n", levels[i]);
+               torture_comment(tctx, "Testing QueryDomainInfo2 level %u\n", levels[i]);
 
                r.in.domain_handle = handle;
                r.in.level = levels[i];
@@ -5686,7 +5687,7 @@ static bool test_QueryDomainInfo2(struct dcerpc_pipe *p, struct torture_context
 
                status = dcerpc_samr_QueryDomainInfo2(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryDomainInfo2 level %u failed - %s\n",
+                       torture_warning(tctx, "QueryDomainInfo2 level %u failed - %s\n",
                               r.in.level, nt_errstr(status));
                        ret = false;
                        continue;
@@ -5776,7 +5777,7 @@ static bool test_GroupList(struct dcerpc_pipe *p, struct torture_context *tctx,
                        }
 
                        if (!found) {
-                               printf("QueryDisplayInfo gave name [%s] that EnumDomainGroups did not\n",
+                               torture_warning(tctx, "QueryDisplayInfo gave name [%s] that EnumDomainGroups did not\n",
                                       name);
                                ret = false;
                        }
@@ -5785,14 +5786,14 @@ static bool test_GroupList(struct dcerpc_pipe *p, struct torture_context *tctx,
        }
 
        if (!NT_STATUS_IS_OK(status)) {
-               printf("QueryDisplayInfo level 5 failed - %s\n",
+               torture_warning(tctx, "QueryDisplayInfo level 5 failed - %s\n",
                       nt_errstr(status));
                ret = false;
        }
 
        for (i=0; i<num_names; i++) {
                if (names[i] != NULL) {
-                       printf("EnumDomainGroups gave name [%s] that QueryDisplayInfo did not\n",
+                       torture_warning(tctx, "EnumDomainGroups gave name [%s] that QueryDisplayInfo did not\n",
                               names[i]);
                        ret = false;
                }
@@ -5856,13 +5857,13 @@ static bool test_RidToSid(struct dcerpc_pipe *p, struct torture_context *tctx,
 
                status = dcerpc_samr_RidToSid(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("RidToSid for %d failed - %s\n", rids[i], nt_errstr(status));
+                       torture_warning(tctx, "RidToSid for %d failed - %s\n", rids[i], nt_errstr(status));
                        ret = false;
                } else {
                        calc_sid = dom_sid_add_rid(calc_sid, calc_sid, rids[i]);
 
                        if (!dom_sid_equal(calc_sid, out_sid)) {
-                               printf("RidToSid for %d failed - got %s, expected %s\n", rids[i],
+                               torture_warning(tctx, "RidToSid for %d failed - got %s, expected %s\n", rids[i],
                                       dom_sid_string(tctx, out_sid),
                                       dom_sid_string(tctx, calc_sid));
                                ret = false;
@@ -6007,7 +6008,7 @@ static bool test_CreateDomainGroup(struct dcerpc_pipe *p,
        r.out.group_handle = group_handle;
        r.out.rid = &rid;
 
-       printf("Testing CreateDomainGroup(%s)\n", r.in.name->string);
+       torture_comment(tctx, "Testing CreateDomainGroup(%s)\n", r.in.name->string);
 
        status = dcerpc_samr_CreateDomainGroup(p, tctx, &r);
 
@@ -6016,7 +6017,7 @@ static bool test_CreateDomainGroup(struct dcerpc_pipe *p,
                        torture_comment(tctx, "Server correctly refused create of '%s'\n", r.in.name->string);
                        return true;
                } else {
-                       printf("Server should have refused create of '%s', got %s instead\n", r.in.name->string,
+                       torture_warning(tctx, "Server should have refused create of '%s', got %s instead\n", r.in.name->string,
                               nt_errstr(status));
                        return false;
                }
@@ -6024,7 +6025,7 @@ static bool test_CreateDomainGroup(struct dcerpc_pipe *p,
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_GROUP_EXISTS)) {
                if (!test_DeleteGroup_byname(p, tctx, domain_handle, r.in.name->string)) {
-                       printf("CreateDomainGroup failed: Could not delete domain group %s - %s\n", r.in.name->string,
+                       torture_warning(tctx, "CreateDomainGroup failed: Could not delete domain group %s - %s\n", r.in.name->string,
                               nt_errstr(status));
                        return false;
                }
@@ -6033,7 +6034,7 @@ static bool test_CreateDomainGroup(struct dcerpc_pipe *p,
        if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
                if (!test_DeleteUser_byname(p, tctx, domain_handle, r.in.name->string)) {
 
-                       printf("CreateDomainGroup failed: Could not delete user %s - %s\n", r.in.name->string,
+                       torture_warning(tctx, "CreateDomainGroup failed: Could not delete user %s - %s\n", r.in.name->string,
                               nt_errstr(status));
                        return false;
                }
@@ -6046,7 +6047,7 @@ static bool test_CreateDomainGroup(struct dcerpc_pipe *p,
        }
 
        if (!test_AddGroupMember(p, tctx, domain_handle, group_handle)) {
-               printf("CreateDomainGroup failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "CreateDomainGroup failed - %s\n", nt_errstr(status));
                ret = false;
        }
 
@@ -6098,7 +6099,7 @@ static bool test_EnumDomainUsers(struct dcerpc_pipe *p,
        r.out.num_entries = &num_entries;
        r.out.resume_handle = &resume_handle;
 
-       printf("Testing EnumDomainUsers\n");
+       torture_comment(tctx, "Testing EnumDomainUsers\n");
 
        do {
                status = dcerpc_samr_EnumDomainUsers(p, tctx, &r);
@@ -6137,7 +6138,7 @@ static bool test_EnumDomainGroups(struct dcerpc_pipe *p,
        r.out.num_entries = &num_entries;
        r.out.resume_handle = &resume_handle;
 
-       printf("Testing EnumDomainGroups\n");
+       torture_comment(tctx, "Testing EnumDomainGroups\n");
 
        do {
                status = dcerpc_samr_EnumDomainGroups(p, tctx, &r);
@@ -6176,7 +6177,7 @@ static bool test_EnumDomainAliases(struct dcerpc_pipe *p,
        r.out.num_entries = &num_entries;
        r.out.resume_handle = &resume_handle;
 
-       printf("Testing EnumDomainAliases\n");
+       torture_comment(tctx, "Testing EnumDomainAliases\n");
 
        do {
                status = dcerpc_samr_EnumDomainAliases(p, tctx, &r);
@@ -6211,7 +6212,7 @@ static bool test_QueryDisplayInfo_level(struct dcerpc_pipe *p,
        r.in.max_entries = (uint32_t)-1;
        r.in.buf_size = (uint32_t)-1;
 
-       printf("Testing QueryDisplayInfo\n");
+       torture_comment(tctx, "Testing QueryDisplayInfo\n");
 
        do {
                uint32_t total_size;
@@ -6454,7 +6455,7 @@ static bool test_OpenDomain(struct dcerpc_pipe *p, struct torture_context *tctx,
                }
                ret &= test_CreateUser(p, tctx, &domain_handle, TEST_ACCOUNT_NAME, &user_handle, sid, which_ops, NULL, true);
                if (!ret) {
-                       printf("Testing PASSWORDS or PRIVILAGES on domain %s failed!\n", dom_sid_string(tctx, sid));
+                       torture_warning(tctx, "Testing PASSWORDS or PRIVILAGES on domain %s failed!\n", dom_sid_string(tctx, sid));
                }
                break;
        case TORTURE_SAMR_USER_ATTRIBUTES:
@@ -6465,7 +6466,7 @@ static bool test_OpenDomain(struct dcerpc_pipe *p, struct torture_context *tctx,
                /* This test needs 'complex' users to validate */
                ret &= test_QueryDisplayInfo(p, tctx, &domain_handle);
                if (!ret) {
-                       printf("Testing ATTRIBUTES on domain %s failed!\n", dom_sid_string(tctx, sid));
+                       torture_warning(tctx, "Testing ATTRIBUTES on domain %s failed!\n", dom_sid_string(tctx, sid));
                }
                break;
        case TORTURE_SAMR_PASSWORDS_PWDLASTSET:
@@ -6474,7 +6475,7 @@ static bool test_OpenDomain(struct dcerpc_pipe *p, struct torture_context *tctx,
                }
                ret &= test_CreateUser(p, tctx, &domain_handle, TEST_ACCOUNT_NAME, &user_handle, sid, which_ops, machine_credentials, true);
                if (!ret) {
-                       printf("Testing PASSWORDS PWDLASTSET on domain %s failed!\n", dom_sid_string(tctx, sid));
+                       torture_warning(tctx, "Testing PASSWORDS PWDLASTSET on domain %s failed!\n", dom_sid_string(tctx, sid));
                }
                break;
        case TORTURE_SAMR_MANY_ACCOUNTS:
@@ -6482,13 +6483,13 @@ static bool test_OpenDomain(struct dcerpc_pipe *p, struct torture_context *tctx,
        case TORTURE_SAMR_MANY_ALIASES:
                ret &= test_ManyObjects(p, tctx, &domain_handle, sid, which_ops);
                if (!ret) {
-                       printf("Testing MANY-{ACCOUNTS,GROUPS,ALIASES} on domain %s failed!\n", dom_sid_string(tctx, sid));
+                       torture_warning(tctx, "Testing MANY-{ACCOUNTS,GROUPS,ALIASES} on domain %s failed!\n", dom_sid_string(tctx, sid));
                }
                break;
        case TORTURE_SAMR_OTHER:
                ret &= test_CreateUser(p, tctx, &domain_handle, TEST_ACCOUNT_NAME, &user_handle, sid, which_ops, NULL, true);
                if (!ret) {
-                       printf("Failed to CreateUser in SAMR-OTHER on domain %s!\n", dom_sid_string(tctx, sid));
+                       torture_warning(tctx, "Failed to CreateUser in SAMR-OTHER on domain %s!\n", dom_sid_string(tctx, sid));
                }
                if (!torture_setting_bool(tctx, "samba3", false)) {
                        ret &= test_QuerySecurity(p, tctx, &domain_handle);
@@ -6543,7 +6544,7 @@ static bool test_OpenDomain(struct dcerpc_pipe *p, struct torture_context *tctx,
        /* reconnect the main handle */
 
        if (!ret) {
-               printf("Testing domain %s failed!\n", dom_sid_string(tctx, sid));
+               torture_warning(tctx, "Testing domain %s failed!\n", dom_sid_string(tctx, sid));
        }
 
        return ret;
@@ -6695,7 +6696,7 @@ static bool test_Connect(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        status = dcerpc_samr_Connect3(p, tctx, &r3);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("Connect3 failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "Connect3 failed - %s\n", nt_errstr(status));
                ret = false;
        } else {
                if (got_handle) {
@@ -6714,7 +6715,7 @@ static bool test_Connect(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        status = dcerpc_samr_Connect4(p, tctx, &r4);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("Connect4 failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "Connect4 failed - %s\n", nt_errstr(status));
                ret = false;
        } else {
                if (got_handle) {
@@ -6739,7 +6740,7 @@ static bool test_Connect(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        status = dcerpc_samr_Connect5(p, tctx, &r5);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("Connect5 failed - %s\n", nt_errstr(status));
+               torture_warning(tctx, "Connect5 failed - %s\n", nt_errstr(status));
                ret = false;
        } else {
                if (got_handle) {