svn commit: samba r15394 - in branches/SAMBA_4_0/source/torture: . rpc

mimir at samba.org mimir at samba.org
Tue May 2 13:08:38 GMT 2006


Author: mimir
Date: 2006-05-02 13:08:38 +0000 (Tue, 02 May 2006)
New Revision: 15394

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

Log:
Put initial code for testing async dcerpc binding. Currently
it only tests multiple simultaneous bind requests using transport
specified in command line. It will be interesting to use various
transports at the same time and test it agains windows servers...


rafal


Added:
   branches/SAMBA_4_0/source/torture/rpc/async_bind.c
Modified:
   branches/SAMBA_4_0/source/torture/config.mk
   branches/SAMBA_4_0/source/torture/rpc/rpc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/config.mk
===================================================================
--- branches/SAMBA_4_0/source/torture/config.mk	2006-05-02 12:13:23 UTC (rev 15393)
+++ branches/SAMBA_4_0/source/torture/config.mk	2006-05-02 13:08:38 UTC (rev 15394)
@@ -146,7 +146,8 @@
 		rpc/dssetup.o \
 		rpc/alter_context.o \
 		rpc/bench.o \
-		rpc/rpc.o
+		rpc/rpc.o \
+		rpc/async_bind.o
 PUBLIC_DEPENDENCIES = \
 		NDR_TABLE RPC_NDR_UNIXINFO RPC_NDR_SAMR RPC_NDR_WINREG RPC_NDR_INITSHUTDOWN \
 		RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL \

Added: branches/SAMBA_4_0/source/torture/rpc/async_bind.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/async_bind.c	2006-05-02 12:13:23 UTC (rev 15393)
+++ branches/SAMBA_4_0/source/torture/rpc/async_bind.c	2006-05-02 13:08:38 UTC (rev 15394)
@@ -0,0 +1,78 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   dcerpc torture tests
+
+   Copyright (C) Andrew Tridgell 2003
+   Copyright (C) Rafal Szczesniak 2006
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "includes.h"
+#include "torture/torture.h"
+#include "lib/events/events.h"
+#include "librpc/gen_ndr/ndr_lsa.h"
+#include "lib/cmdline/popt_common.h"
+#include "librpc/rpc/dcerpc.h"
+#include "torture/rpc/rpc.h"
+
+/*
+  This test initiates multiple rpc bind requests and verifies
+  whether all of them are served.
+*/
+
+
+BOOL torture_async_bind(struct torture_context *torture)
+{
+	NTSTATUS status;
+	TALLOC_CTX *mem_ctx;
+	struct event_context *evt_ctx;
+	int i;
+	const char *binding_string;
+	struct cli_credentials *creds;
+
+#define ASYNC_COUNT 100
+	struct composite_context *bind_req[ASYNC_COUNT];
+	struct dcerpc_pipe *pipe[ASYNC_COUNT];
+	struct dcerpc_interface_table *table[ASYNC_COUNT];
+
+	binding_string = lp_parm_string(-1, "torture", "binding");
+
+	/* talloc context */
+	mem_ctx = talloc_init("torture_async_bind");
+	if (mem_ctx == NULL) return False;
+
+	/* event context */
+	evt_ctx = event_context_init(mem_ctx);
+	if (evt_ctx == NULL) return False;
+
+	/* credentials */
+	creds = cmdline_credentials;
+
+	for (i = 0; i < ASYNC_COUNT; i++) {
+		table[i] = &dcerpc_table_lsarpc;
+		bind_req[i] = dcerpc_pipe_connect_send(mem_ctx, &pipe[i], binding_string,
+						       table[i], creds, evt_ctx);
+	}
+
+	for (i = 0; i < ASYNC_COUNT; i++) {
+		status = dcerpc_pipe_connect_recv(bind_req[i], mem_ctx, &pipe[i]);
+		if (!NT_STATUS_IS_OK(status)) return False;
+	}
+
+	talloc_free(mem_ctx);
+	return True;
+}

Modified: branches/SAMBA_4_0/source/torture/rpc/rpc.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/rpc.c	2006-05-02 12:13:23 UTC (rev 15393)
+++ branches/SAMBA_4_0/source/torture/rpc/rpc.c	2006-05-02 13:08:38 UTC (rev 15394)
@@ -130,6 +130,7 @@
 	register_torture_op("RPC-JOIN", torture_rpc_join, 0);
 	register_torture_op("RPC-DSSYNC", torture_rpc_dssync, 0);
 	register_torture_op("BENCH-RPC", torture_bench_rpc, 0);
+	register_torture_op("RPC-ASYNCBIND", torture_async_bind, 0);
 
 	return NT_STATUS_OK;
 }



More information about the samba-cvs mailing list