1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-10 12:58:35 +03:00

s4:torture Clean up users and groups added in RPC-SAMR-LARGE-DC

This commit is contained in:
Andrew Bartlett 2009-05-29 08:35:41 +10:00
parent 98ff29291b
commit a3f619f9d9

View File

@ -6176,6 +6176,8 @@ static bool test_ManyObjects(struct dcerpc_pipe *p,
NTSTATUS status; NTSTATUS status;
uint32_t i; uint32_t i;
struct policy_handle *handles = talloc_zero_array(tctx, struct policy_handle, num_total);
/* query */ /* query */
{ {
@ -6208,29 +6210,25 @@ static bool test_ManyObjects(struct dcerpc_pipe *p,
for (i=0; i < num_total; i++) { for (i=0; i < num_total; i++) {
struct policy_handle handle;
const char *name = NULL; const char *name = NULL;
ZERO_STRUCT(handle);
switch (which_ops) { switch (which_ops) {
case TORTURE_SAMR_MANY_ACCOUNTS: case TORTURE_SAMR_MANY_ACCOUNTS:
name = talloc_asprintf(tctx, "%s%04d", TEST_ACCOUNT_NAME, i); name = talloc_asprintf(tctx, "%s%04d", TEST_ACCOUNT_NAME, i);
ret &= test_CreateUser(p, tctx, domain_handle, name, &handle, domain_sid, 0, NULL, false); ret &= test_CreateUser(p, tctx, domain_handle, name, &handles[i], domain_sid, 0, NULL, false);
break; break;
case TORTURE_SAMR_MANY_GROUPS: case TORTURE_SAMR_MANY_GROUPS:
name = talloc_asprintf(tctx, "%s%04d", TEST_GROUPNAME, i); name = talloc_asprintf(tctx, "%s%04d", TEST_GROUPNAME, i);
ret &= test_CreateDomainGroup(p, tctx, domain_handle, name, &handle, domain_sid, false); ret &= test_CreateDomainGroup(p, tctx, domain_handle, name, &handles[i], domain_sid, false);
break; break;
case TORTURE_SAMR_MANY_ALIASES: case TORTURE_SAMR_MANY_ALIASES:
name = talloc_asprintf(tctx, "%s%04d", TEST_ALIASNAME, i); name = talloc_asprintf(tctx, "%s%04d", TEST_ALIASNAME, i);
ret &= test_CreateAlias(p, tctx, domain_handle, name, &handle, domain_sid, false); ret &= test_CreateAlias(p, tctx, domain_handle, name, &handles[i], domain_sid, false);
break; break;
default: default:
return false; return false;
} }
if (!policy_handle_empty(&handle)) { if (!policy_handle_empty(&handles[i])) {
ret &= test_samr_handle_Close(p, tctx, &handle);
num_created++; num_created++;
} }
} }
@ -6251,9 +6249,6 @@ static bool test_ManyObjects(struct dcerpc_pipe *p,
return false; return false;
} }
torture_assert_int_equal(tctx, num_enum, num_anounced + num_created,
"unexpected number of results returned in enum call");
#if 0
/* TODO: dispinfo */ /* TODO: dispinfo */
switch (which_ops) { switch (which_ops) {
@ -6267,9 +6262,40 @@ static bool test_ManyObjects(struct dcerpc_pipe *p,
return false; return false;
} }
/* delete */
for (i=0; i < num_total; i++) {
if (policy_handle_empty(&handles[i])) {
continue;
}
switch (which_ops) {
case TORTURE_SAMR_MANY_ACCOUNTS:
ret &= test_DeleteUser(p, tctx, &handles[i]);
break;
case TORTURE_SAMR_MANY_GROUPS:
ret &= test_DeleteDomainGroup(p, tctx, &handles[i]);
break;
case TORTURE_SAMR_MANY_ALIASES:
ret &= test_DeleteAlias(p, tctx, &handles[i]);
break;
default:
return false;
}
ret &= test_samr_handle_Close(p, tctx, &handles[i]);
}
talloc_free(handles);
#if 0
torture_assert_int_equal(tctx, num_disp, num_anounced + num_created, torture_assert_int_equal(tctx, num_disp, num_anounced + num_created,
"unexpected number of results returned in dispinfo call"); "unexpected number of results returned in dispinfo call");
#endif #endif
torture_assert_int_equal(tctx, num_enum, num_anounced + num_created,
"unexpected number of results returned in enum call");
return ret; return ret;
} }