summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2012-08-27 21:02:28 +1000
committerAndrew Bartlett <abartlet@samba.org>2012-08-28 07:57:29 +1000
commit1a8fd711d7e4f97a6749b5d6c4806b11c38f20f4 (patch)
tree89e55543ec1644da82447c2c4bdf35d5f6e91861
parente66fa2c8134a886f52419f4a33992b200b00ff49 (diff)
downloadsamba-1a8fd711d7e4f97a6749b5d6c4806b11c38f20f4.tar.gz
samba-1a8fd711d7e4f97a6749b5d6c4806b11c38f20f4.tar.bz2
samba-1a8fd711d7e4f97a6749b5d6c4806b11c38f20f4.zip
selftest: Add test of smbclient --machine-pass against and using both s3 and s4
This uses both smbclient binaries to ensure that both work in both environments. Andrew Bartlett
-rw-r--r--selftest/knownfail1
-rwxr-xr-xsource3/script/tests/test_smbclient_machine_auth.sh21
-rwxr-xr-xsource3/selftest/tests.py3
-rwxr-xr-xsource4/selftest/tests.py3
-rwxr-xr-xsource4/utils/tests/test_smbclient.sh34
5 files changed, 62 insertions, 0 deletions
diff --git a/selftest/knownfail b/selftest/knownfail
index 100fd01b58..7276543045 100644
--- a/selftest/knownfail
+++ b/selftest/knownfail
@@ -42,6 +42,7 @@
^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\]
+^samba3.blackbox.smbclient_machine_auth.plain \(s3dc:local\)# the S3dc does not currently set up a self-join
^samba3.raw.samba3hide.samba3hide\((s3dc|plugin_s4_dc)\) # This test fails against an smbd environment with NT ACLs enabled
^samba3.raw.samba3closeerr.samba3closeerr\(s3dc\) # This test fails against an smbd environment with NT ACLs enabled
^samba3.raw.acls.generic\(s3dc\) # This fails against smbd
diff --git a/source3/script/tests/test_smbclient_machine_auth.sh b/source3/script/tests/test_smbclient_machine_auth.sh
new file mode 100755
index 0000000000..f67256d19b
--- /dev/null
+++ b/source3/script/tests/test_smbclient_machine_auth.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# this runs the file serving tests that are expected to pass with samba3 against shares with various options
+
+if [ $# -lt 2 ]; then
+cat <<EOF
+Usage: test_smbclient_machine_auth.sh SERVER SMBCLIENT <smbclient arguments>
+EOF
+exit 1;
+fi
+
+SERVER="$1"
+SMBCLIENT="$2"
+SMBCLIENT="$VALGRIND ${SMBCLIENT}"
+shift 2
+ADDARGS="$*"
+
+incdir=`dirname $0`/../../../testprogs/blackbox
+. $incdir/subunit.sh
+
+testit "smbclient //$SERVER/tmp" $SMBCLIENT //$SERVER/tmp --machine-pass -I $SERVER_IP -p 139 -c quit $ADDARGS
diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py
index 2e13ca0923..8b65232e73 100755
--- a/source3/selftest/tests.py
+++ b/source3/selftest/tests.py
@@ -171,6 +171,9 @@ for options in ["--option=clientusespnego=no", " --option=clientntlmv2auth=no --
env = "s3dc"
plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient, configuration, options])
+for env in ["s3dc", "member", "s3member", "dc", "s4member"]:
+ plantestsuite("samba3.blackbox.smbclient_machine_auth.plain (%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_machine_auth.sh"), '$SERVER', smbclient, configuration])
+
for env in ["s3dc", "member", "s3member"]:
plantestsuite("samba3.blackbox.smbclient_auth.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient, configuration])
plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER\\\\$USERNAME', '$PASSWORD', smbclient, configuration])
diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py
index b453922c46..f205fe4745 100755
--- a/source4/selftest/tests.py
+++ b/source4/selftest/tests.py
@@ -304,6 +304,9 @@ planpythontestsuite("s3dc", "samba.tests.libsmb_samba_internal");
# the API. These mainly test that the various command-line options of commands
# work correctly.
+for env in ["s3member", "s4member", "dc"]:
+ plantestsuite("samba4.blackbox.smbclient(%s:local)" % env, "%s:local" % env, [os.path.join(samba4srcdir, "utils/tests/test_smbclient.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient])
+
planpythontestsuite("none", "samba.tests.blackbox.ndrdump")
planpythontestsuite("none", "samba.tests.source")
plantestsuite("samba4.blackbox.samba_tool(dc:local)", "dc:local", [os.path.join(samba4srcdir, "utils/tests/test_samba_tool.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient])
diff --git a/source4/utils/tests/test_smbclient.sh b/source4/utils/tests/test_smbclient.sh
new file mode 100755
index 0000000000..a91c2db1bd
--- /dev/null
+++ b/source4/utils/tests/test_smbclient.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+# Blackbox tests for smbclient
+
+SERVER=$1
+SERVER_IP=$2
+USERNAME=$3
+PASSWORD=$4
+DOMAIN=$5
+smbclient=$6
+shift 6
+
+failed=0
+
+testit() {
+ name="$1"
+ shift
+ cmdline="$*"
+ echo "test: $name"
+ $cmdline
+ status=$?
+ if [ x$status = x0 ]; then
+ echo "success: $name"
+ else
+ echo "failure: $name"
+ failed=`expr $failed + 1`
+ fi
+ return $status
+}
+
+testit "Test login with --machine-pass without kerberos" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp --machine-pass -k no
+
+testit "Test login with --machine-pass and kerberos" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp --machine-pass -k yes
+
+exit $failed