/*
* Testing synchronous version
*/
- if (!test_opendomain(p, mem_ctx, &h, &name, &sid)) {
+ if (!test_opendomain(torture, p, mem_ctx, &h, &name, &sid)) {
ret = false;
goto done;
}
&p,
&ndr_table_samr);
- if (!NT_STATUS_IS_OK(status)) {
- return false;
- }
+ torture_assert_ntstatus_ok(torture, status, "RPC connection");
domain_name.string = lp_workgroup(torture->lp_ctx);
- if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+ if (!test_opendomain(torture, p, mem_ctx, &h, &domain_name, &sid)) {
ret = false;
goto done;
}
/*
* Testing synchronous version
*/
- if (!test_opendomain(p, mem_ctx, &h, &name, &sid)) {
+ if (!test_opendomain(torture, p, mem_ctx, &h, &name, &sid)) {
ret = false;
goto done;
}
- if (!test_user_create(p, mem_ctx, &h, TEST_USERNAME, &rid)) {
+ if (!test_user_create(torture, p, mem_ctx, &h, TEST_USERNAME, &rid)) {
ret = false;
goto done;
}
goto done;
}
- if (!test_user_cleanup(p, mem_ctx, &h, TEST_USERNAME)) {
+ if (!test_user_cleanup(torture, p, mem_ctx, &h, TEST_USERNAME)) {
ret = false;
goto done;
}
/*
* Testing asynchronous version and monitor messages
*/
- if (!test_opendomain(p, mem_ctx, &h, &name, &sid)) {
+ if (!test_opendomain(torture, p, mem_ctx, &h, &name, &sid)) {
ret = false;
goto done;
}
- if (!test_user_create(p, mem_ctx, &h, TEST_USERNAME, &rid)) {
+ if (!test_user_create(torture, p, mem_ctx, &h, TEST_USERNAME, &rid)) {
ret = false;
goto done;
}
goto done;
}
- if (!test_user_cleanup(p, mem_ctx, &h, TEST_USERNAME)) {
+ if (!test_user_cleanup(torture, p, mem_ctx, &h, TEST_USERNAME)) {
ret = false;
goto done;
}
}
-static bool test_usermod(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_usermod(struct torture_context *tctx, struct dcerpc_pipe *p,
+ TALLOC_CTX *mem_ctx,
struct policy_handle *handle, int num_changes,
struct libnet_rpc_usermod *mod, char **username)
{
mod->in.username = talloc_strdup(mem_ctx, *username);
mod->in.domain_handle = *handle;
- printf("modifying user (%d simultaneous change(s))\n", num_changes);
+ torture_comment(tctx, "modifying user (%d simultaneous change(s))\n",
+ num_changes);
- printf("fields to change: [");
+ torture_comment(tctx, "fields to change: [");
for (i = 0; i < num_changes && i < FIELDS_NUM - 1; i++) {
const char *fldname;
printf(((i < num_changes - 1) ? "%s," : "%s"), fldname);
}
- printf("]\n");
+ torture_comment(tctx, "]\n");
status = libnet_rpc_usermod(p, mem_ctx, mod);
- if (!NT_STATUS_IS_OK(status)) {
- printf("Failed to call sync libnet_rpc_usermod - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx, status, "Failed to call sync libnet_rpc_usermod");
return true;
}
}
-static bool test_compare(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_compare(struct torture_context *tctx,
+ struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *handle, struct libnet_rpc_usermod *mod,
const char *username)
{
info.in.level = 21; /* the most rich infolevel available */
status = libnet_rpc_userinfo(p, mem_ctx, &info);
- if (!NT_STATUS_IS_OK(status)) {
- printf("Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx, status, "Failed to call sync libnet_rpc_userinfo");
i = &info.out.info.info21;
&p,
&ndr_table_samr);
- if (!NT_STATUS_IS_OK(status)) {
- return false;
- }
+ torture_assert_ntstatus_ok(torture, status, "RPC connect failed");
domain_name.string = lp_workgroup(torture->lp_ctx);
- if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+ if (!test_opendomain(torture, p, mem_ctx, &h, &domain_name, &sid)) {
ret = false;
goto done;
}
goto done;
}
- if (!test_user_cleanup(p, mem_ctx, &h, name)) {
+ if (!test_user_cleanup(torture, p, mem_ctx, &h, name)) {
ret = false;
goto done;
}
- if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+ if (!test_opendomain(torture, p, mem_ctx, &h, &domain_name, &sid)) {
ret = false;
goto done;
}
goto done;
}
- if (!test_user_cleanup(p, mem_ctx, &h, name)) {
+ if (!test_user_cleanup(torture, p, mem_ctx, &h, name)) {
ret = false;
goto done;
}
}
domain_name.string = lp_workgroup(torture->lp_ctx);
- if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+ if (!test_opendomain(torture, p, mem_ctx, &h, &domain_name, &sid)) {
ret = false;
goto done;
}
- if (!test_user_create(p, mem_ctx, &h, name, &rid)) {
+ if (!test_user_create(torture, p, mem_ctx, &h, name, &rid)) {
ret = false;
goto done;
}
&p,
&ndr_table_samr);
- if (!NT_STATUS_IS_OK(status)) {
- ret = false;
- goto done;
- }
+ torture_assert_ntstatus_ok(torture, status, "RPC connect");
domain_name.string = lp_workgroup(torture->lp_ctx);
name = talloc_strdup(mem_ctx, TEST_USERNAME);
- if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+ if (!test_opendomain(torture, p, mem_ctx, &h, &domain_name, &sid)) {
ret = false;
goto done;
}
- if (!test_user_create(p, mem_ctx, &h, name, &rid)) {
+ if (!test_user_create(torture, p, mem_ctx, &h, name, &rid)) {
ret = false;
goto done;
}
for (i = 1; i < FIELDS_NUM; i++) {
struct libnet_rpc_usermod m;
- if (!test_usermod(p, mem_ctx, &h, i, &m, &name)) {
+ if (!test_usermod(torture, p, mem_ctx, &h, i, &m, &name)) {
ret = false;
goto cleanup;
}
- if (!test_compare(p, mem_ctx, &h, &m, name)) {
+ if (!test_compare(torture, p, mem_ctx, &h, &m, name)) {
ret = false;
goto cleanup;
}
}
cleanup:
- if (!test_user_cleanup(p, mem_ctx, &h, name)) {
+ if (!test_user_cleanup(torture, p, mem_ctx, &h, name)) {
ret = false;
goto done;
}
#include "param/param.h"
-bool test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+bool test_opendomain(struct torture_context *tctx,
+ struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *handle, struct lsa_String *domname,
struct dom_sid2 *sid)
{
struct samr_LookupDomain r2;
struct samr_OpenDomain r3;
- printf("connecting\n");
+ torture_comment(tctx, "connecting\n");
r1.in.system_name = 0;
r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
r1.out.connect_handle = &h;
status = dcerpc_samr_Connect(p, mem_ctx, &r1);
- if (!NT_STATUS_IS_OK(status)) {
- printf("Connect failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx, status, "Connect failed");
r2.in.connect_handle = &h;
r2.in.domain_name = domname;
- printf("domain lookup on %s\n", domname->string);
+ torture_comment(tctx, "domain lookup on %s\n", domname->string);
status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2);
- if (!NT_STATUS_IS_OK(status)) {
- printf("LookupDomain failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx, status, "LookupDomain failed");
r3.in.connect_handle = &h;
r3.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
r3.in.sid = r2.out.sid;
r3.out.domain_handle = &domain_handle;
- printf("opening domain\n");
+ torture_comment(tctx, "opening domain\n");
status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3);
- if (!NT_STATUS_IS_OK(status)) {
- printf("OpenDomain failed - %s\n", nt_errstr(status));
- return false;
- } else {
- *handle = domain_handle;
- }
+ torture_assert_ntstatus_ok(tctx, status, "OpenDomain failed");
+ *handle = domain_handle;
*sid = *r2.out.sid;
return true;
}
-bool test_user_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
- struct policy_handle *domain_handle,
+bool test_user_cleanup(struct torture_context *tctx, struct dcerpc_pipe *p,
+ TALLOC_CTX *mem_ctx, struct policy_handle *domain_handle,
const char *name)
{
NTSTATUS status;
r1.in.num_names = 1;
r1.in.names = names;
- printf("user account lookup '%s'\n", name);
+ torture_comment(tctx, "user account lookup '%s'\n", name);
status = dcerpc_samr_LookupNames(p, mem_ctx, &r1);
- if (!NT_STATUS_IS_OK(status)) {
- printf("LookupNames failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx, status, "LookupNames failed");
rid = r1.out.rids.ids[0];
r2.in.rid = rid;
r2.out.user_handle = &user_handle;
- printf("opening user account\n");
+ torture_comment(tctx, "opening user account\n");
status = dcerpc_samr_OpenUser(p, mem_ctx, &r2);
- if (!NT_STATUS_IS_OK(status)) {
- printf("OpenUser failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx, status, "OpenUser failed");
r3.in.user_handle = &user_handle;
r3.out.user_handle = &user_handle;
- printf("deleting user account\n");
+ torture_comment(tctx, "deleting user account\n");
status = dcerpc_samr_DeleteUser(p, mem_ctx, &r3);
- if (!NT_STATUS_IS_OK(status)) {
- printf("DeleteUser failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx, status, "DeleteUser failed");
return true;
}
-bool test_user_create(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+bool test_user_create(struct torture_context *tctx,
+ struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *handle, const char *name,
uint32_t *rid)
{
r.out.user_handle = &user_handle;
r.out.rid = rid;
- printf("creating user account %s\n", name);
+ torture_comment(tctx, "creating user account %s\n", name);
status = dcerpc_samr_CreateUser(p, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
printf("CreateUser failed - %s\n", nt_errstr(status));
if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
- printf("User (%s) already exists - attempting to delete and recreate account again\n", name);
- if (!test_user_cleanup(p, mem_ctx, handle, name)) {
+ torture_comment(tctx, "User (%s) already exists - attempting to delete and recreate account again\n", name);
+ if (!test_user_cleanup(tctx, p, mem_ctx, handle, name)) {
return false;
}
- printf("creating user account\n");
+ torture_comment(tctx, "creating user account\n");
status = dcerpc_samr_CreateUser(p, mem_ctx, &r);
- if (!NT_STATUS_IS_OK(status)) {
- printf("CreateUser failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx, status, "CreateUser failed");
return true;
}
return false;
*/
-bool test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+bool test_opendomain(struct torture_context *tctx,
+ struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *handle, struct lsa_String *domname,
struct dom_sid2 *sid);
-bool test_user_create(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+bool test_user_create(struct torture_context *tctx,
+ struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *handle, const char *name,
uint32_t *rid);
-bool test_user_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+bool test_user_cleanup(struct torture_context *tctx,
+ struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *domain_handle,
const char *name);