diff options
author | Noel Power <noel.power@suse.com> | 2022-06-17 10:58:48 +0100 |
---|---|---|
committer | Jule Anger <janger@samba.org> | 2022-06-20 08:52:14 +0000 |
commit | 25fa2c753040ea2af403cecf65373844b83c2814 (patch) | |
tree | 103930b7201b5d76c5b28bec9c1d8c9a4247bf3f | |
parent | afb6650939862fdabe15739181cf5d2418a53bb7 (diff) | |
download | samba-25fa2c753040ea2af403cecf65373844b83c2814.tar.gz |
Add test smbclient 'delree' of dir (on DFS share)
deltree of a file on a DFS share results in NT_STATUS_OBJECT_PATH_NOT_FOUND
Addionally add a knownfail for this (to be removed in subsequent patch
to fix bug)
We also need to add a knownfail (which will not be removed) for the
new test which will fail in smb1 envs
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15100
Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit 23a5a05db03a8f14ab701005a8bec9a3eeff3d77)
-rw-r--r-- | selftest/knownfail.d/smb1-tests | 1 | ||||
-rw-r--r-- | selftest/knownfail.d/smbclient-smb3 | 1 | ||||
-rwxr-xr-x | source3/script/tests/test_smbclient_s3.sh | 51 |
3 files changed, 53 insertions, 0 deletions
diff --git a/selftest/knownfail.d/smb1-tests b/selftest/knownfail.d/smb1-tests index 9437da57159..b5263f28016 100644 --- a/selftest/knownfail.d/smb1-tests +++ b/selftest/knownfail.d/smb1-tests @@ -11,6 +11,7 @@ ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.creating a bad symlink and deleting it\((ad_member|nt4_member)\) ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.Accessing an MS-DFS link\((ad_member|nt4_member)\) ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.del on MS-DFS share\((ad_member|nt4_member)\) +^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.deltree on MS-DFS share\((ad_member|nt4_member)\) ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.Ensure archive bit is set correctly on file/dir rename\((ad_member|nt4_member)\) ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.ccache access works for smbclient\((ad_member|nt4_member)\) ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.using an authentication file\((ad_member|nt4_member)\) diff --git a/selftest/knownfail.d/smbclient-smb3 b/selftest/knownfail.d/smbclient-smb3 index 119e93e479a..f6ca529c61d 100644 --- a/selftest/knownfail.d/smbclient-smb3 +++ b/selftest/knownfail.d/smbclient-smb3 @@ -1,4 +1,5 @@ ^samba3.blackbox.smbclient_s3.SMB3.*.creating.a.bad.symlink.and.deleting.it +^samba3.blackbox.smbclient_s3.SMB3.*.deltree on MS-DFS share ^samba3.blackbox.acl_xattr.SMB3.nt_affects_posix ^samba3.blackbox.acl_xattr.SMB3.nt_affects_chown ^samba3.blackbox.acl_xattr.SMB3.nt_affects_chgrp diff --git a/source3/script/tests/test_smbclient_s3.sh b/source3/script/tests/test_smbclient_s3.sh index d2c3c1ee845..caf5b3f64d7 100755 --- a/source3/script/tests/test_smbclient_s3.sh +++ b/source3/script/tests/test_smbclient_s3.sh @@ -569,6 +569,53 @@ EOF return 0 } +test_msdfs_deltree() +{ + tmpfile="$PREFIX/smbclient.in.$$" + dirname_src="foodir.$$" + filename_src="src.$$" + filename_src_path="$PREFIX/$filename_src" + dirname_src_path="$PREFIX/$dirname" + rm -f "$filename_src_path" + touch "$filename_src_path" + + cat > $tmpfile <<EOF +lcd $PREFIX +cd dfshop1 +cd dfshop2 +mkdir $dirname_src +cd $dirname_src +put $filename_src +cd .. +deltree $dirname_src +quit +EOF + + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/msdfs-share -I $SERVER_IP $ADDARGS < $tmpfile 2>&1' + eval echo "$cmd" + out=`eval $cmd` + ret=$? + rm -f "$tmpfile" + rm -f "$filename_src_path" + rm -f "$dirname_src_path" + + if [ $ret != 0 ] ; then + echo "$out" + echo "deltree failed deleting dir $dirname_src with error $ret" + return 1 + fi + + echo "$out" | grep "NT_STATUS" >/dev/null 2>&1 + + ret="$?" + if [ "$ret" -eq 0 ] ; then + echo "$out" + echo "deltree $dirname_src NT_STATUS_ error" + return 1 + fi + return 0 +} + # Archive bits are correctly set on file/dir creation and rename. test_rename_archive_bit() { @@ -2169,6 +2216,10 @@ testit "del on MS-DFS share" \ test_msdfs_del || \ failed=`expr $failed + 1` +testit "deltree on MS-DFS share" \ + test_msdfs_deltree || \ + failed=`expr $failed + 1` + testit "Ensure archive bit is set correctly on file/dir rename" \ test_rename_archive_bit || \ failed=`expr $failed + 1` |