summaryrefslogtreecommitdiff
path: root/source4/torture/rpc
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-01-06 09:26:14 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:08:27 -0500
commit365d9ef73d47446c2aaa4f24c970d4e6ec81c20a (patch)
tree1cf5c4b9e6b7ec21161276473c80a88644e6f030 /source4/torture/rpc
parent7e5523cbe468283d57521e73332ec2561a93d42a (diff)
downloadsamba-365d9ef73d47446c2aaa4f24c970d4e6ec81c20a.tar.gz
samba-365d9ef73d47446c2aaa4f24c970d4e6ec81c20a.tar.bz2
samba-365d9ef73d47446c2aaa4f24c970d4e6ec81c20a.zip
r4560: - fixed crash bugs in the RPC-SCHANNEL and RPC-NETLOGON tests
- disabled the async netlogon tests for now until we better understand async rpc - added a test_w2k3.sh script that runs rpc tests that a w2k3 DC should pass. This is useful for regression testing when PIDL changes are made. (This used to be commit f7d4d3db489ad79457de70a85ad990159f6e74f8)
Diffstat (limited to 'source4/torture/rpc')
-rw-r--r--source4/torture/rpc/netlogon.c104
-rw-r--r--source4/torture/rpc/schannel.c4
2 files changed, 31 insertions, 77 deletions
diff --git a/source4/torture/rpc/netlogon.c b/source4/torture/rpc/netlogon.c
index 93755fd049..7bfd3a9a6c 100644
--- a/source4/torture/rpc/netlogon.c
+++ b/source4/torture/rpc/netlogon.c
@@ -1018,7 +1018,12 @@ static BOOL test_GetDomainInfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
struct creds_CredentialState creds_async[ASYNC_COUNT];
struct rpc_request *req[ASYNC_COUNT];
int i;
- int async_counter = 0;
+ int *async_counter = talloc_p(mem_ctx, int);
+
+ if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
+ printf("test_GetDomainInfo_async disabled - enable dangerous tests to use\n");
+ return True;
+ }
if (!test_SetupCredentials3(p, mem_ctx, NETLOGON_NEG_AUTH2_ADS_FLAGS,
TEST_MACHINE_NAME, machine_password, &creds)) {
@@ -1049,6 +1054,8 @@ static BOOL test_GetDomainInfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
printf("Testing netr_LogonGetDomainInfo - async count %d\n", ASYNC_COUNT);
+ *async_counter = 0;
+
for (i=0;i<ASYNC_COUNT;i++) {
creds_client_authenticator(&creds, &a);
@@ -1056,7 +1063,7 @@ static BOOL test_GetDomainInfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
req[i] = dcerpc_netr_LogonGetDomainInfo_send(p, mem_ctx, &r);
req[i]->async.callback = async_callback;
- req[i]->async.private = &async_counter;
+ req[i]->async.private = async_counter;
/* even with this flush per request a w2k3 server seems to
clag with multiple outstanding requests. bleergh. */
@@ -1079,9 +1086,9 @@ static BOOL test_GetDomainInfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
}
}
- printf("Testing netr_LogonGetDomainInfo - async count %d OK\n", async_counter);
+ printf("Testing netr_LogonGetDomainInfo - async count %d OK\n", *async_counter);
- return async_counter == ASYNC_COUNT;
+ return (*async_counter) == ASYNC_COUNT;
}
@@ -1110,77 +1117,24 @@ BOOL torture_rpc_netlogon(void)
return False;
}
- if (!test_LogonUasLogon(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_LogonUasLogoff(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_SamLogon(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_SetPassword(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_GetDomainInfo(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_DatabaseSync(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_DatabaseDeltas(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_AccountDeltas(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_AccountSync(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_GetDcName(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_LogonControl(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_GetAnyDCName(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_LogonControl2(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_DatabaseSync2(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_LogonControl2Ex(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_DsrEnumerateDomainTrusts(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_GetDomainInfo_async(p, mem_ctx)) {
- ret = False;
- }
-
- if (!test_netr_DrsGetDCNameEx2(p, mem_ctx)) {
- ret = False;
- }
+ ret &= test_LogonUasLogon(p, mem_ctx);
+ ret &= test_LogonUasLogoff(p, mem_ctx);
+ ret &= test_SamLogon(p, mem_ctx);
+ ret &= test_SetPassword(p, mem_ctx);
+ ret &= test_GetDomainInfo(p, mem_ctx);
+ ret &= test_DatabaseSync(p, mem_ctx);
+ ret &= test_DatabaseDeltas(p, mem_ctx);
+ ret &= test_AccountDeltas(p, mem_ctx);
+ ret &= test_AccountSync(p, mem_ctx);
+ ret &= test_GetDcName(p, mem_ctx);
+ ret &= test_LogonControl(p, mem_ctx);
+ ret &= test_GetAnyDCName(p, mem_ctx);
+ ret &= test_LogonControl2(p, mem_ctx);
+ ret &= test_DatabaseSync2(p, mem_ctx);
+ ret &= test_LogonControl2Ex(p, mem_ctx);
+ ret &= test_DsrEnumerateDomainTrusts(p, mem_ctx);
+ ret &= test_GetDomainInfo_async(p, mem_ctx);
+ ret &= test_netr_DrsGetDCNameEx2(p, mem_ctx);
talloc_destroy(mem_ctx);
diff --git a/source4/torture/rpc/schannel.c b/source4/torture/rpc/schannel.c
index 5ec466f0c1..b220b9ff65 100644
--- a/source4/torture/rpc/schannel.c
+++ b/source4/torture/rpc/schannel.c
@@ -122,8 +122,8 @@ static BOOL test_schannel(TALLOC_CTX *mem_ctx,
NTSTATUS status;
const char *binding = lp_parm_string(-1, "torture", "binding");
struct dcerpc_binding b;
- struct dcerpc_pipe *p;
- struct dcerpc_pipe *p_netlogon;
+ struct dcerpc_pipe *p = NULL;
+ struct dcerpc_pipe *p_netlogon = NULL;
struct creds_CredentialState *creds;
join_ctx = torture_join_domain(TEST_MACHINE_NAME, lp_workgroup(), acct_flags,