s3-selftest: Add test for rpcclient, including kerberos authentication
authorAndrew Bartlett <abartlet@samba.org>
Tue, 3 Jan 2012 04:57:40 +0000 (15:57 +1100)
committerStefan Metzmacher <metze@samba.org>
Thu, 5 Jan 2012 16:17:28 +0000 (17:17 +0100)
Some knownfail entries are added for things the currently fail.

Andrew Bartlett

Signed-off-by: Stefan Metzmacher <metze@samba.org>
selftest/knownfail
source3/script/tests/test_rpcclient.sh [new file with mode: 0755]
source3/selftest/tests.py

index 9e52fa894331e24804aef2e6681cfd9202b5d552..220df1c232881cf7dafef8504ad20f494b62d20d 100644 (file)
 ^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 (executable)
index 0000000..6c29316
--- /dev/null
@@ -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
index 2111530903999ba4f43822597a8eb9e5814db1fa..61bd1bb26875ae8eca93408ec360210a947c580a 100755 (executable)
@@ -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: