s3:tests: Add test that veto files works for hidden files
authorAndreas Schneider <asn@samba.org>
Wed, 19 Apr 2023 13:35:47 +0000 (15:35 +0200)
committerJeremy Allison <jra@samba.org>
Wed, 19 Apr 2023 21:29:33 +0000 (21:29 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15360

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
selftest/knownfail.d/veto_files [new file with mode: 0644]
selftest/target/Samba3.pm
source3/script/tests/test_veto_files.sh

diff --git a/selftest/knownfail.d/veto_files b/selftest/knownfail.d/veto_files
new file mode 100644 (file)
index 0000000..be28da8
--- /dev/null
@@ -0,0 +1 @@
+^samba3.blackbox.test_veto_files.list.files.fileserver
index 6f9b7466e4ae7e7f8870235137b184917e2e7a82..6b371ee27142a3b56f8f91a97d583dca81efcdff 100755 (executable)
@@ -1968,6 +1968,10 @@ sub setup_fileserver
        path = $veto_sharedir
        delete veto files = yes
 
+[veto_files_nohidden]
+       path = $veto_sharedir
+       veto files = /.*/
+
 [veto_files]
        path = $veto_sharedir
        veto files = /veto_name*/
index e246e864b322134f5d97c4c3c59eae58072923ba..201883ee3304b8b07488ef2b1a5ac92d6e2f1d6d 100755 (executable)
@@ -22,10 +22,14 @@ SHAREPATH=${5}
 SMBCLIENT=${6}
 shift 6
 SMBCLIENT="$VALGRIND ${SMBCLIENT}"
+# Used by test_smbclient()
+# shellcheck disable=2034
+smbclient="$VALGRIND ${SMBCLIENT}"
 ADDARGS="$@"
 
 incdir=$(dirname "$0")/../../../testprogs/blackbox
 . "$incdir"/subunit.sh
+. "${incdir}/common_test_fns.inc"
 
 failed=0
 
@@ -45,6 +49,8 @@ do_cleanup()
                rm -rf "$SHAREPATH/veto_name_dir\"mangle"
                rm -f "$SHAREPATH/veto_name_file"
                rm -f "$SHAREPATH/veto_name_file\"mangle"
+               rm -f "${SHAREPATH}/regular_file"
+               rm -f "${SHAREPATH}/.hidden_file"
        )
 }
 
@@ -185,6 +191,25 @@ test_create_veto_file()
 
 do_cleanup
 
+echo "regular_file" > "${SHAREPATH}/regular_file"
+echo "hidden_file" > "${SHAREPATH}/.hidden_file"
+
+test_smbclient "download regular file" \
+       "get regular_file" "//${SERVER}/veto_files_nohidden" \
+       -U"${USERNAME}%${PASSWORD}" ||
+       failed=$((failed + 1))
+rm -f regular_file
+test_smbclient_expect_failure "hidden file can't be downloaded" \
+       "get .hidden_file" "//${SERVER}/veto_files_nohidden" \
+       -U"${USERNAME}%${PASSWORD}" ||
+       failed=$((failed + 1))
+test_smbclient "list files" \
+       "ls" "//${SERVER}/veto_files_nohidden" \
+       -U"${USERNAME}%${PASSWORD}" ||
+       failed=$((failed + 1))
+
+do_cleanup
+
 # Using hash2, veto_name_file\"mangle == VHXE5P~M
 # Using hash2, veto_name_dir\"mangle == VF5SKC~B