diff options
author | Christian Ambach <ambi@samba.org> | 2016-04-04 19:28:05 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2016-05-04 01:28:23 +0200 |
commit | c519cc8b98e05a17698790ebad7dec04531c22d8 (patch) | |
tree | 03e10d21cfde6e1343036db91b4da78410d42045 /source3 | |
parent | a9ccd50b63421187c18bfb04001d225d212cdc2a (diff) | |
download | samba-c519cc8b98e05a17698790ebad7dec04531c22d8.tar.gz |
selftest: test for case insensitivity over SMB2/SMB3
Signed-off-by: Christian Ambach <ambi@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3')
-rwxr-xr-x | source3/script/tests/test_smb2_not_casesensitive.sh | 82 | ||||
-rwxr-xr-x | source3/selftest/tests.py | 1 |
2 files changed, 83 insertions, 0 deletions
diff --git a/source3/script/tests/test_smb2_not_casesensitive.sh b/source3/script/tests/test_smb2_not_casesensitive.sh new file mode 100755 index 00000000000..a643ae7e6ba --- /dev/null +++ b/source3/script/tests/test_smb2_not_casesensitive.sh @@ -0,0 +1,82 @@ +#!/bin/sh +# +# Blackbox test for SMB2 case insensitivity +# + +if [ $# -lt 6 ]; then +cat <<EOF +Usage: test_smb2_not_casesensitive SERVER SERVER_IP USERNAME PASSWORD LOCAL_PATH SMBCLIENT +EOF +exit 1; +fi + +SERVER=${1} +SERVER_IP=${2} +USERNAME=${3} +PASSWORD=${4} +LOCAL_PATH=${5} +SMBCLIENT=${6} + +incdir=`dirname $0`/../../../testprogs/blackbox +. $incdir/subunit.sh + +failed=0 + +# Test a file with different case works over SMB2 and later +test_access_with_different_case() +{ + tmpfile=$LOCAL_PATH/testfile.txt + echo "foobar" > $tmpfile + + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT -mSMB3 -U$USERNAME%$PASSWORD "$SERVER" -I $SERVER_IP -c "ls TeStFiLe.TxT" 2>&1' + out=`eval $cmd` + ret=$? + + rm -f $tmpfile + + if [ $ret = 0 ]; then + return 0 + else + echo "$out" + echo "failed to get file with different case" + return 1 + fi +} + +# Test that a rename causes a conflict works when target name exists in +# different case +test_rename() +{ +set -x + tmpfile=$LOCAL_PATH/torename.txt + echo "foobar" > $tmpfile + targetfile=$LOCAL_PATH/target.txt + touch $targetfile + + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT -mSMB3 -U$USERNAME%$PASSWORD "$SERVER" -I $SERVER_IP -c "rename ToReNaMe.TxT TaRgEt.txt" 2>&1' + out=`eval $cmd` + ret=$? + + rm -f $tmpfile + rm -f $targetfile + rm -f $LOCAL_PATH/TaRgEt.txt + + if [ $ret = 1 -a -z "${out##*COLLISION*}" ]; then + return 0 + else + echo "$out" + echo "failed to get file with different case" + return 1 + fi +} + + +testit "accessing a file with different case succeeds" \ + test_access_with_different_case || \ + failed=`expr $failed + 1` + +testit "renaming a file with different case succeeds" \ + test_rename || \ + failed=`expr $failed + 1` + +exit $failed diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 2bd4110c0f7..077510c1550 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -190,6 +190,7 @@ for env in ["fileserver"]: plantestsuite("samba3.blackbox.smbget (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbget.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', 'smbget_user', '$PASSWORD', '$LOCAL_PATH/smbget', smbget]) plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient]) plantestsuite("samba3.blackbox.acl_xattr (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls]) + plantestsuite("samba3.blackbox.smb2.not_casesensitive (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smb2_not_casesensitive.sh"), '//$SERVER/tmp', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3]) # # tar command tests |