Add test smbclient 'delree' of dir (on DFS share)
authorNoel Power <noel.power@suse.com>
Fri, 17 Jun 2022 09:58:48 +0000 (10:58 +0100)
committerJeremy Allison <jra@samba.org>
Fri, 17 Jun 2022 16:20:35 +0000 (16:20 +0000)
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>
selftest/knownfail.d/smb1-tests
selftest/knownfail.d/smbclient-smb3
source3/script/tests/test_smbclient_s3.sh

index 9437da571591c30b3901601ca1221abc7283eda6..b5263f28016dd424c0ec51e95cfbcdb0ac7b47da 100644 (file)
@@ -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)\)
index 119e93e479af8078a4639b19b84ac86fc47efc6b..f6ca529c61d1c3842dd3690fdbda2b5098d0f34d 100644 (file)
@@ -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
index e3c7b134b0446bfc1f0bb485845fcc8ef3a6d5e1..bc03f432411897e8805912dfba9eac94f3941174 100755 (executable)
@@ -568,6 +568,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()
 {
@@ -2212,6 +2259,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)