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

tridge at samba.org tridge at samba.org
Thu Jun 16 23:28:24 GMT 2005


Author: tridge
Date: 2005-06-16 23:28:24 +0000 (Thu, 16 Jun 2005)
New Revision: 7656

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

Log:
added testing of rpc request timeouts and destruction


Modified:
   branches/SAMBA_4_0/source/torture/rpc/echo.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/echo.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/echo.c	2005-06-16 23:19:35 UTC (rev 7655)
+++ branches/SAMBA_4_0/source/torture/rpc/echo.c	2005-06-16 23:28:24 UTC (rev 7656)
@@ -383,6 +383,67 @@
 	return ret;
 }
 
+
+/*
+  test request timeouts
+*/
+static BOOL test_timeout(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+{
+	NTSTATUS status;
+	struct rpc_request *req;
+	struct echo_TestSleep r;
+	int timeout_saved = p->request_timeout;
+
+	if (!lp_parm_bool(-1, "torture", "echo_TestSleep", True)) {
+		printf("timeout testing disabled - use \"torture:echo_TestSleep=yes\" to enable\n");
+		return True;
+	}
+
+	printf("testing request timeouts\n");
+	r.in.seconds = 2;
+	p->request_timeout = 1;
+
+	req = dcerpc_echo_TestSleep_send(p, mem_ctx, &r);
+	if (!req) {
+		printf("Failed to send async sleep request\n");
+		goto failed;
+	}
+
+	status	= dcerpc_ndr_request_recv(req);
+	if (!NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT)) {
+		printf("request should have timed out - %s\n", nt_errstr(status));
+		goto failed;
+	}
+
+	printf("testing request destruction\n");
+	req = dcerpc_echo_TestSleep_send(p, mem_ctx, &r);
+	if (!req) {
+		printf("Failed to send async sleep request\n");
+		goto failed;
+	}
+	talloc_free(req);
+
+	req = dcerpc_echo_TestSleep_send(p, mem_ctx, &r);
+	if (!req) {
+		printf("Failed to send async sleep request\n");
+		goto failed;
+	}
+	status	= dcerpc_ndr_request_recv(req);
+	if (!NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT)) {
+		printf("request should have timed out - %s\n", nt_errstr(status));
+		goto failed;
+	}
+	
+
+	p->request_timeout = timeout_saved;
+	return True;
+
+failed:
+	p->request_timeout = timeout_saved;
+	return False;
+}
+
+
 BOOL torture_rpc_echo(void)
 {
 	NTSTATUS status;
@@ -411,6 +472,7 @@
 	ret &= test_surrounding(p, mem_ctx);
 	ret &= test_doublepointer(p, mem_ctx);
 	ret &= test_sleep(p, mem_ctx);
+	ret &= test_timeout(p, mem_ctx);
 
 	printf("\n");
 	



More information about the samba-cvs mailing list