mirror of
https://github.com/samba-team/samba.git
synced 2025-02-25 17:57:42 +03:00
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)
This commit is contained in:
parent
7e5523cbe4
commit
365d9ef73d
@ -8,7 +8,7 @@ ncacn_ip_tcp_tests="RPC-SCHANNEL RPC-ECHO"
|
||||
|
||||
if [ $# -lt 4 ]; then
|
||||
cat <<EOF
|
||||
Usage: test_echo.sh SERVER USERNAME PASSWORD DOMAIN
|
||||
Usage: test_rpc.sh SERVER USERNAME PASSWORD DOMAIN
|
||||
EOF
|
||||
exit 1;
|
||||
fi
|
||||
|
53
source4/script/tests/test_w2k3.sh
Executable file
53
source4/script/tests/test_w2k3.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
|
||||
# tests that should pass against a w2k3 DC, as administrator
|
||||
|
||||
# add tests to this list as they start passing, so we test
|
||||
# that they stay passing
|
||||
ncacn_np_tests="RPC-DSSETUP RPC-EPMAPPER RPC-SAMR RPC-WKSSVC RPC-SRVSVC RPC-EVENTLOG RPC-NETLOGON"
|
||||
ncacn_ip_tcp_tests="RPC-EPMAPPER RPC-SAMR RPC-NETLOGON"
|
||||
|
||||
if [ $# -lt 4 ]; then
|
||||
cat <<EOF
|
||||
Usage: test_w2k3.sh SERVER USERNAME PASSWORD DOMAIN
|
||||
EOF
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
server="$1"
|
||||
username="$2"
|
||||
password="$3"
|
||||
domain="$4"
|
||||
shift 4
|
||||
|
||||
testit() {
|
||||
trap "rm -f test.$$" EXIT
|
||||
cmdline="$*"
|
||||
if ! $cmdline > test.$$ 2>&1; then
|
||||
cat test.$$;
|
||||
rm -f test.$$;
|
||||
echo "TEST FAILED - $cmdline";
|
||||
exit 1;
|
||||
fi
|
||||
rm -f test.$$;
|
||||
}
|
||||
|
||||
for transport in ncacn_ip_tcp ncacn_np; do
|
||||
for bindoptions in connect sign seal validate bigendian; do
|
||||
case $transport in
|
||||
ncacn_np) tests=$ncacn_np_tests ;;
|
||||
ncacn_ip_tcp) tests=$ncacn_ip_tcp_tests ;;
|
||||
esac
|
||||
for t in $tests; do
|
||||
echo Testing $t on $transport with $bindoptions
|
||||
testit bin/smbtorture $transport:"$server[$bindoptions]" -U"$username"%"$password" -W $domain $t "$*"
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
echo Testing RPC-DRSUAPI on ncacn_ip_tcp with seal
|
||||
testit bin/smbtorture ncacn_ip_tcp:"$server[seal]" -U"$username"%"$password" -W $domain RPC-DRSUAPI "$*"
|
||||
echo Testing RPC-DRSUAPI on ncacn_ip_tcp with seal,bigendian
|
||||
testit bin/smbtorture ncacn_ip_tcp:"$server[seal,bigendian]" -U"$username"%"$password" -W $domain RPC-DRSUAPI "$*"
|
||||
|
||||
echo "ALL OK";
|
@ -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);
|
||||
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user