From: Björn Jacke Date: Sat, 6 Jan 2024 16:32:57 +0000 (+0100) Subject: tests: add a test for vfs_recycle X-Git-Tag: talloc-2.4.2~94 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f02b0b984b7128319613315819599ef7acb54776;p=thirdparty%2Fsamba.git tests: add a test for vfs_recycle Signed-off-by: Bjoern Jacke Reviewed-by: Volker Lendecke --- diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index bfa9fad5ffe..13b3e731604 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -2687,6 +2687,9 @@ sub provision($$) my $smbget_sharedir="$shrdir/smbget"; push(@dirs, $smbget_sharedir); + my $recycle_shrdir="$shrdir/recycle"; + push(@dirs,$recycle_shrdir); + # this gets autocreated by winbindd my $wbsockdir="$prefix_abs/wbsock"; @@ -3596,6 +3599,14 @@ sub provision($$) path = $smbget_sharedir comment = smb username is [%U] +[recycle] + copy = tmp + path = $recycle_shrdir + vfs objects = recycle + recycle : repository = .trash + recycle : exclude = *.tmp + recycle : directory_mode = 755 + [smbget_guest] path = $smbget_sharedir comment = smb username is [%U] diff --git a/source3/script/tests/test_recycle.sh b/source3/script/tests/test_recycle.sh new file mode 100755 index 00000000000..8c9291feb92 --- /dev/null +++ b/source3/script/tests/test_recycle.sh @@ -0,0 +1,102 @@ +#!/bin/sh + +if [ $# -lt 7 ]; then + cat < $tmpfile + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT -U$USERNAME%$PASSWORD //$SERVER/recycle -I$SERVER_IP $ADDARGS < $tmpfile 2>&1' + eval echo "$cmd" + out=$(eval "$cmd") + ret=$? + rm -f "$tmpfile" + + if [ $ret != 0 ]; then + printf "%s\n" "$out" + printf "failed recycle smbclient run with error %s\n" "$ret" + return 1 + fi + + test -e "$share_test_dir/.trash/testfile1" || { + printf ".trash/testfile1 expected to exist but does NOT exist\n" + return 1 + } + test -e "$share_test_dir/.trash/testfile2.tmp" && { + printf ".trash/testfile2.tmp not expected to exist but DOES exist\n" + return 1 + } + perm_want=755 + perm_is=`stat -c '%a' "$share_test_dir/.trash/"` + test "$perm_is" = "$perm_want" || { + printf ".trash/ permission should be $perm_want but is $perm_is\n" + return 1 + } + return 0 +} + + +testit "recycle" \ + test_recycle || + failed=$((failed + 1)) + +# +# Cleanup. +do_cleanup + +testok "$0" "$failed" diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index dfe894872b7..40f02bcea84 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -763,6 +763,7 @@ for env in ["fileserver"]: 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.dropbox", env, [os.path.join(samba3srcdir, "script/tests/test_dropbox.sh"), '$SERVER', '$DOMAIN', 'gooduser', '$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.recycle", env, [os.path.join(samba3srcdir, "script/tests/test_recycle.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/recycle', '$PREFIX', smbclient3]) plantestsuite("samba3.blackbox.shadow_copy2.NT1", env + "_smb1_done", [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']) plantestsuite("samba3.blackbox.shadow_copy_torture", env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy_torture.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbtorture4, smbclient3])