diff options
author | Andreas Schneider <asn@samba.org> | 2020-02-12 16:30:01 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2020-02-14 20:16:04 +0000 |
commit | b9ab8bf7a9c4e5a389e4fc1397e9a3bfd5bb13ff (patch) | |
tree | 396c1534c93a90f6b70418afd7813cbd9f5bae07 | |
parent | f231a072d5c09a61e75091c294f722622dcd45da (diff) | |
download | samba-b9ab8bf7a9c4e5a389e4fc1397e9a3bfd5bb13ff.tar.gz |
s3:tests: Add smbclient test for 'force create mode = 0664'
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Fri Feb 14 20:16:04 UTC 2020 on sn-devel-184
-rwxr-xr-x | selftest/target/Samba3.pm | 8 | ||||
-rwxr-xr-x | source3/script/tests/test_force_create_mode.sh | 72 | ||||
-rwxr-xr-x | source3/selftest/tests.py | 1 |
3 files changed, 81 insertions, 0 deletions
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 0c9adcc76fd..99230a6429c 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -1071,6 +1071,14 @@ sub setup_fileserver path = $share_dir comment = force group test # force group = everyone + +[create_mode_664] + path = $share_dir + comment = smb username is [%U] + create mask = 0644 + force create mode = 0664 + vfs objects = dirsort + [homes] comment = Home directories browseable = No diff --git a/source3/script/tests/test_force_create_mode.sh b/source3/script/tests/test_force_create_mode.sh new file mode 100755 index 00000000000..d5948b239b1 --- /dev/null +++ b/source3/script/tests/test_force_create_mode.sh @@ -0,0 +1,72 @@ +#!/bin/sh +# +# Blackbox test for 'force create mode' +# + +if [ $# -lt 7 ]; then +cat <<EOF +Usage: $0 SERVER DOMAIN USERNAME PASSWORD PREFIX TARGET_ENV SMBCLIENT +EOF +exit 1; +fi + +SERVER=${1} +DOMAIN=${2} +USERNAME=${3} +PASSWORD=${4} +PREFIX=${5} +TARGET_ENV=${6} +SMBCLIENT=${7} +shift 7 +SMBCLIENT="$VALGRIND ${SMBCLIENT}" +ADDARGS="$@" + +incdir=`dirname $0`/../../../testprogs/blackbox +. $incdir/subunit.sh + +failed=0 + +test_force_create_mode() +{ + local filename="wurst.$$" + local filename_path="$PREFIX/$filename" + + local tmpfile=$PREFIX/smbclient_interactive_prompt_commands + + echo wurstbar > $filename_path + + cat > $tmpfile <<EOF +lcd $PREFIX +put $filename +quit +EOF + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT -U$USERNAME%$PASSWORD //$SERVER/$1 $ADDARGS < $tmpfile 2>&1' + eval echo "$cmd" + out=`eval $cmd` + ret=$? + rm -f $tmpfile + + if [ $ret -ne 0 ] ; then + echo "$out" + echo "Failed to connect - error: $ret" + return 1 + fi + rm -f $filename_path + + share_filename="$PREFIX/$TARGET_ENV/share/$filename" + file_perms=$(stat --format=%a $share_filename) + if [ "$file_perms" != "664" ]; then + echo "Invalid file permissions: $file_perms" + return 1 + fi + + rm -f $share_filename + + return 0 +} + +testit "test_mode=0664" \ + test_force_create_mode create_mode_664 || \ + failed=`expr $failed + 1` + +exit $failed diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 5a897c9ad0b..5953ba9bdaf 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -357,6 +357,7 @@ for env in ["fileserver"]: plantestsuite("samba3.blackbox.dfree_quota.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_dfree_quota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcquotas, smbcacls, "SMB3"]) plantestsuite("samba3.blackbox.smbcquotas", env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas]) plantestsuite("samba3.blackbox.valid_users", env, [os.path.join(samba3srcdir, "script/tests/test_valid_users.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3]) + plantestsuite("samba3.blackbox.force_create_mode", env, [os.path.join(samba3srcdir, "script/tests/test_force_create_mode.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', env, smbclient3]) plantestsuite("samba3.blackbox.offline", env, [os.path.join(samba3srcdir, "script/tests/test_offline.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/offline', smbclient3]) plantestsuite("samba3.blackbox.shadow_copy2.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3, '-m', 'NT1']) plantestsuite("samba3.blackbox.shadow_copy2.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3, '-m', 'SMB3']) |