[SCM] Samba Shared Repository - branch master updated -
release-4-0-0alpha7-2160-gbf7c814
Günther Deschner
gd at samba.org
Mon Jun 8 20:45:51 GMT 2009
The branch, master has been updated
via bf7c814694f532ebe174f3dcd7bf4115d5006aa6 (commit)
via 7caf51c37a26e855d0ed8d4148a5a91ce8e6807a (commit)
via 80d0a12fb777de7b903a6f5b319a1951c4fdfaa6 (commit)
from 7f52c8fb5006a167e05860854dc51798652cb192 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit bf7c814694f532ebe174f3dcd7bf4115d5006aa6
Author: Günther Deschner <gd at samba.org>
Date: Mon Jun 8 22:41:23 2009 +0200
s4-smbtorture: when testing RPC-SAMR-LARGE-DC its fine to just close the objects.
Guenther
commit 7caf51c37a26e855d0ed8d4148a5a91ce8e6807a
Author: Günther Deschner <gd at samba.org>
Date: Mon Jun 8 22:33:51 2009 +0200
nss_wrapper: fix typo in testsuite.
Guenther
commit 80d0a12fb777de7b903a6f5b319a1951c4fdfaa6
Author: Günther Deschner <gd at samba.org>
Date: Mon Jun 8 10:24:48 2009 +0200
s4-smbtorture: add test_QueryDisplayInfo_level to RPC-SAMR-LARGE-DC.
Guenther
-----------------------------------------------------------------------
Summary of changes:
lib/nss_wrapper/testsuite.c | 2 +-
source4/torture/rpc/samr.c | 115 ++++++++++++++++++++++++++++++++++++-------
2 files changed, 97 insertions(+), 20 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/nss_wrapper/testsuite.c b/lib/nss_wrapper/testsuite.c
index e4047cf..02a10e3 100644
--- a/lib/nss_wrapper/testsuite.c
+++ b/lib/nss_wrapper/testsuite.c
@@ -586,7 +586,7 @@ static bool test_nwrap_group(struct torture_context *tctx)
torture_assert(tctx, test_nwrap_getgrgid(tctx, grp[i].gr_gid, &grp2),
"failed to call getgrgid for enumerated user");
torture_assert_group_equal(tctx, &grp[i], &grp2,
- "getgrent and getgruid gave different results");
+ "getgrent and getgrgid gave different results");
torture_assert_group_equal(tctx, &grp1, &grp2,
"getgrnam and getgrgid gave different results");
}
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index b5eb0e2..11e746a 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -6172,6 +6172,77 @@ static bool test_EnumDomainAliases(struct dcerpc_pipe *p,
return true;
}
+static bool test_QueryDisplayInfo_level(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *handle,
+ uint16_t level,
+ uint32_t *total_num_entries_p)
+{
+ NTSTATUS status;
+ struct samr_QueryDisplayInfo r;
+ uint32_t total_num_entries = 0;
+
+ r.in.domain_handle = handle;
+ r.in.level = level;
+ r.in.start_idx = 0;
+ r.in.max_entries = (uint32_t)-1;
+ r.in.buf_size = (uint32_t)-1;
+
+ printf("Testing QueryDisplayInfo\n");
+
+ do {
+ uint32_t total_size;
+ uint32_t returned_size;
+ union samr_DispInfo info;
+
+ r.out.total_size = &total_size;
+ r.out.returned_size = &returned_size;
+ r.out.info = &info;
+
+ status = dcerpc_samr_QueryDisplayInfo(p, tctx, &r);
+ if (NT_STATUS_IS_ERR(status)) {
+ torture_assert_ntstatus_ok(tctx, status,
+ "failed to query displayinfo");
+ }
+
+ if (*r.out.returned_size == 0) {
+ break;
+ }
+
+ switch (r.in.level) {
+ case 1:
+ total_num_entries += info.info1.count;
+ r.in.start_idx += info.info1.entries[info.info1.count - 1].idx + 1;
+ break;
+ case 2:
+ total_num_entries += info.info2.count;
+ r.in.start_idx += info.info2.entries[info.info2.count - 1].idx + 1;
+ break;
+ case 3:
+ total_num_entries += info.info3.count;
+ r.in.start_idx += info.info3.entries[info.info3.count - 1].idx + 1;
+ break;
+ case 4:
+ total_num_entries += info.info4.count;
+ r.in.start_idx += info.info4.entries[info.info4.count - 1].idx + 1;
+ break;
+ case 5:
+ total_num_entries += info.info5.count;
+ r.in.start_idx += info.info5.entries[info.info5.count - 1].idx + 1;
+ break;
+ default:
+ return false;
+ }
+
+ } while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES));
+
+ if (total_num_entries_p) {
+ *total_num_entries_p = total_num_entries;
+ }
+
+ return true;
+}
+
static bool test_ManyObjects(struct dcerpc_pipe *p,
struct torture_context *tctx,
struct policy_handle *domain_handle,
@@ -6260,21 +6331,23 @@ static bool test_ManyObjects(struct dcerpc_pipe *p,
return false;
}
- /* TODO: dispinfo */
+ /* dispinfo */
switch (which_ops) {
case TORTURE_SAMR_MANY_ACCOUNTS:
+ ret &= test_QueryDisplayInfo_level(p, tctx, domain_handle, 1, &num_disp);
break;
case TORTURE_SAMR_MANY_GROUPS:
+ ret &= test_QueryDisplayInfo_level(p, tctx, domain_handle, 3, &num_disp);
break;
case TORTURE_SAMR_MANY_ALIASES:
+ /* no aliases in dispinfo */
break;
default:
return false;
}
-
- /* delete */
+ /* close or delete */
for (i=0; i < num_total; i++) {
@@ -6282,31 +6355,35 @@ static bool test_ManyObjects(struct dcerpc_pipe *p,
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;
+ if (torture_setting_bool(tctx, "samba3", false)) {
+ ret &= test_samr_handle_Close(p, tctx, &handles[i]);
+ } else {
+ 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;
+ }
}
}
talloc_free(handles);
-#if 0
- torture_assert_int_equal(tctx, num_disp, num_anounced + num_created,
- "unexpected number of results returned in dispinfo call");
-#endif
if (which_ops == TORTURE_SAMR_MANY_ACCOUNTS && num_enum != num_anounced + num_created) {
torture_comment(tctx,
"unexpected number of results (%u) returned in enum call, expected %u\n",
num_enum, num_anounced + num_created);
+
+ torture_comment(tctx,
+ "unexpected number of results (%u) returned in dispinfo, call, expected %u\n",
+ num_disp, num_anounced + num_created);
}
return ret;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list