summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--selftest/knownfail9
-rwxr-xr-xsource3/script/tests/test_rpcclient.sh19
-rwxr-xr-xsource3/selftest/tests.py11
3 files changed, 38 insertions, 1 deletions
diff --git a/selftest/knownfail b/selftest/knownfail
index 9e52fa8943..220df1c232 100644
--- a/selftest/knownfail
+++ b/selftest/knownfail
@@ -12,6 +12,15 @@
^samba3.*rap.sam.*.useradd # Not provided by Samba 3
^samba3.*rap.sam.*.userdelete # Not provided by Samba 3
^samba3.posix_s3.libsmbclient .opendir # This requires a workgroup called 'WORKGROUP' and for netbios browse lists to have been registered
+#These rpcclient combinations (pipe-level authentication but without sign or seal) need fixing in s3
+^samba3.blackbox.rpcclient over ncacn_np with \[spnego\]
+^samba3.blackbox.rpcclient over ncacn_np with \[spnego,bigendian\]
+^samba3.blackbox.rpcclient over ncacn_np with \[spnego,connect\]
+^samba3.blackbox.rpcclient over ncacn_np with \[spnego,connect,bigendian\]
+^samba3.blackbox.rpcclient over ncacn_np with \[spnego,smb2\]
+^samba3.blackbox.rpcclient over ncacn_np with \[spnego,smb2,bigendian\]
+^samba3.blackbox.rpcclient over ncacn_np with \[spnego,connect,smb2\]
+^samba3.blackbox.rpcclient over ncacn_np with \[spnego,connect,smb2,bigendian\]
# these show that we still have some differences between our system
# with our internal iconv because it passes except when we bypass our
# internal iconv modules
diff --git a/source3/script/tests/test_rpcclient.sh b/source3/script/tests/test_rpcclient.sh
new file mode 100755
index 0000000000..6c293166a2
--- /dev/null
+++ b/source3/script/tests/test_rpcclient.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+if [ $# -lt 1 ]; then
+cat <<EOF
+Usage: test_rpcclient.sh ccache binding <rpcclient commands>
+EOF
+exit 1;
+fi
+
+KRB5CCNAME=$1
+shift 1
+export KRB5CCNAME
+ADDARGS="$*"
+
+incdir=`dirname $0`/../../../testprogs/blackbox
+. $incdir/subunit.sh
+testit "rpcclient" $VALGRIND $BINDIR/rpcclient -c 'getusername' $ADDARGS || failed=`expr $failed + 1`
+
+testok $0 $failed
diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py
index 2111530903..61bd1bb268 100755
--- a/source3/selftest/tests.py
+++ b/source3/selftest/tests.py
@@ -251,7 +251,7 @@ if sub.returncode == 0:
test = 'rpc.lsa.lookupsids'
- auth_options = ["", "ntlm", "spnego" ]
+ auth_options = ["", "ntlm", "spnego", "spnego,ntlm" ]
signseal_options = ["", ",connect", ",sign", ",seal"]
smb_options = ["", ",smb2"]
endianness_options = ["", ",bigendian"]
@@ -262,6 +262,8 @@ if sub.returncode == 0:
binding_string = "ncacn_np:$SERVER[%s%s%s%s]" % (a, s, z, e)
options = binding_string + " -U$USERNAME%$PASSWORD"
plansmbtorturetestsuite(test, "s3dc", options, 'over ncacn_np with [%s%s%s%s] ' % (a, s, z, e))
+ plantestsuite("samba3.blackbox.rpcclient over ncacn_np with [%s%s%s%s] " % (a, s, z, e), "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
+ "none", options, configuration])
# We should try more combinations in future, but this is all
# the pre-calculated credentials cache supports at the moment
@@ -274,6 +276,13 @@ if sub.returncode == 0:
options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
plansmbtorturetestsuite(test, "ktest", options, 'over kerberos ncacn_np with [%s%s%s%s] ' % (a, s, z, e))
+ auth_options2 = ["krb5", "spnego,krb5"]
+ for a in auth_options2:
+ binding_string = "ncacn_np:$SERVER[%s%s%s%s]" % (a, s, z, e)
+
+ plantestsuite("samba3.blackbox.rpcclient over kerberos with ncacn_np with [%s%s%s%s] " % (a, s, z, e), "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
+ "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
+
for e in endianness_options: