svn commit: samba r26530 - in branches/SAMBA_4_0/source/torture/libnet: .

mimir at samba.org mimir at samba.org
Wed Dec 19 00:44:02 GMT 2007


Author: mimir
Date: 2007-12-19 00:44:01 +0000 (Wed, 19 Dec 2007)
New Revision: 26530

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26530

Log:
Add NET-API-GROUPLIST test.


Modified:
   branches/SAMBA_4_0/source/torture/libnet/libnet.c
   branches/SAMBA_4_0/source/torture/libnet/libnet_group.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/libnet/libnet.c
===================================================================
--- branches/SAMBA_4_0/source/torture/libnet/libnet.c	2007-12-19 00:39:27 UTC (rev 26529)
+++ branches/SAMBA_4_0/source/torture/libnet/libnet.c	2007-12-19 00:44:01 UTC (rev 26530)
@@ -42,6 +42,7 @@
 	torture_suite_add_simple_test(suite, "API-USERINFO", torture_userinfo_api);
 	torture_suite_add_simple_test(suite, "API-USERLIST", torture_userlist);
 	torture_suite_add_simple_test(suite, "API-GROUPINFO", torture_groupinfo_api);
+	torture_suite_add_simple_test(suite, "API-GROUPLIST", torture_grouplist);
 	torture_suite_add_simple_test(suite, "API-RPCCONN-BIND", torture_rpc_connect_binding);
 	torture_suite_add_simple_test(suite, "API-RPCCONN-SRV", torture_rpc_connect_srv);
 	torture_suite_add_simple_test(suite, "API-RPCCONN-PDC", torture_rpc_connect_pdc);

Modified: branches/SAMBA_4_0/source/torture/libnet/libnet_group.c
===================================================================
--- branches/SAMBA_4_0/source/torture/libnet/libnet_group.c	2007-12-19 00:39:27 UTC (rev 26529)
+++ branches/SAMBA_4_0/source/torture/libnet/libnet_group.c	2007-12-19 00:44:01 UTC (rev 26530)
@@ -202,6 +202,25 @@
 }
 
 
+static bool test_lsa_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+			   struct policy_handle *domain_handle)
+{
+	NTSTATUS status;
+	struct lsa_Close r;
+
+	r.in.handle = domain_handle;
+	r.out.handle = domain_handle;
+	
+	status = dcerpc_lsa_Close(p, mem_ctx, &r);
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("Close lsa domain failed - %s\n", nt_errstr(status));
+		return false;
+	}
+
+	return true;
+}
+
+
 bool torture_groupinfo_api(struct torture_context *torture)
 {
 	const char *name = TEST_GROUPNAME;
@@ -269,3 +288,64 @@
 	talloc_free(mem_ctx);
 	return ret;
 }
+
+
+bool torture_grouplist(struct torture_context *torture)
+{
+	bool ret = true;
+	NTSTATUS status;
+	TALLOC_CTX *mem_ctx = NULL;
+	struct libnet_context *ctx;
+	struct lsa_String domain_name;
+	struct libnet_GroupList req;
+	int i;
+
+	ctx = libnet_context_init(NULL, torture->lp_ctx);
+	ctx->cred = cmdline_credentials;
+
+	domain_name.string = lp_workgroup(torture->lp_ctx);
+	mem_ctx = talloc_init("torture group list");
+
+	ZERO_STRUCT(req);
+
+	printf("listing group accounts:\n");
+	
+	do {
+		req.in.domain_name  = domain_name.string;
+		req.in.page_size    = 128;
+		req.in.resume_index = req.out.resume_index;
+
+		status = libnet_GroupList(ctx, mem_ctx, &req);
+		if (!NT_STATUS_IS_OK(status) &&
+		    !NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) break;
+
+		for (i = 0; i < req.out.count; i++) {
+			printf("\tgroup: %s, sid=%s\n",
+			       req.out.groups[i].groupname, req.out.groups[i].sid);
+		}
+
+	} while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES));
+
+	if (!(NT_STATUS_IS_OK(status) ||
+	      NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES))) {
+		printf("libnet_GroupList call failed: %s\n", nt_errstr(status));
+		ret = false;
+		goto done;
+	}
+
+	if (!test_samr_close(ctx->samr.pipe, mem_ctx, &ctx->samr.handle)) {
+		printf("domain close failed\n");
+		ret = false;
+	}
+
+	if (!test_lsa_close(ctx->lsa.pipe, mem_ctx, &ctx->lsa.handle)) {
+		printf("lsa domain close failed\n");
+		ret = false;
+	}
+
+	talloc_free(ctx);
+
+done:
+	talloc_free(mem_ctx);
+	return ret;
+}



More information about the samba-cvs mailing list