From 1a8fd711d7e4f97a6749b5d6c4806b11c38f20f4 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 27 Aug 2012 21:02:28 +1000 Subject: 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 --- selftest/knownfail | 1 + .../script/tests/test_smbclient_machine_auth.sh | 21 +++++++++++++ source3/selftest/tests.py | 3 ++ source4/selftest/tests.py | 3 ++ source4/utils/tests/test_smbclient.sh | 34 ++++++++++++++++++++++ 5 files changed, 62 insertions(+) create mode 100755 source3/script/tests/test_smbclient_machine_auth.sh create mode 100755 source4/utils/tests/test_smbclient.sh 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 +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 -- cgit