mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
selftest: test fetching a large ACL from vfs_acl_xattr
Add a test that fetches an ACL whose size is larger than 4K. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12737 Signed-off-by: Uri Simchoni <uri@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
0e0f56485e
commit
5017dfeef2
59
source3/script/tests/test_large_acl.sh
Executable file
59
source3/script/tests/test_large_acl.sh
Executable file
@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Blackbox test for fetching a large ACL
|
||||
#
|
||||
|
||||
if [ $# -lt 5 ]; then
|
||||
cat <<EOF
|
||||
Usage: $0 SERVER USERNAME PASSWORD SMBCLIENT SMBCACLS PARAMS
|
||||
EOF
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
SERVER=${1}
|
||||
USERNAME=${2}
|
||||
PASSWORD=${3}
|
||||
SMBCLIENT=${4}
|
||||
SMBCACLS=${5}
|
||||
shift 5
|
||||
ADDARGS="$*"
|
||||
SMBCLIENT="$VALGRIND ${SMBCLIENT} ${ADDARGS}"
|
||||
SMBCACLS="$VALGRIND ${SMBCACLS} ${ADDARGS}"
|
||||
|
||||
incdir=`dirname $0`/../../../testprogs/blackbox
|
||||
. $incdir/subunit.sh
|
||||
|
||||
# build a file to work with
|
||||
build_files()
|
||||
{
|
||||
touch large_acl
|
||||
$SMBCLIENT //$SERVER/acl_xattr_ign_sysacl_windows -U $USERNAME%$PASSWORD -c 'put large_acl' > /dev/null 2>&1
|
||||
rm -rf large_acl > /dev/null
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
$SMBCLIENT //$SERVER/acl_xattr_ign_sysacl_windows -U $USERNAME%$PASSWORD -c 'rm large_acl' > /dev/null 2>&1
|
||||
}
|
||||
|
||||
build_files
|
||||
|
||||
test_large_acl()
|
||||
{
|
||||
#An ACL with 200 entries, ~7K
|
||||
new_acl=$(seq 1001 1200 | sed -r -e '1 i\D:(A;;0x001f01ff;;;WD)' -e 's/(.*)/(A;;0x001f01ff;;;S-1-5-21-11111111-22222222-33333333-\1)/' | tr -d '\n')
|
||||
$SMBCACLS //$SERVER/acl_xattr_ign_sysacl_windows -U $USERNAME%$PASSWORD --sddl -S $new_acl large_acl
|
||||
actual_acl=$($SMBCACLS //$SERVER/acl_xattr_ign_sysacl_windows -U $USERNAME%$PASSWORD --sddl --numeric large_acl 2>/dev/null | sed -rn 's/.*(D:.*)/\1/p' | tr -d '\n')
|
||||
if [ ! "$new_acl" = "$actual_acl" ] ; then
|
||||
echo -e "expected:\n$new_acl\nactual:\n$actual_acl\n"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
failed=0
|
||||
|
||||
testit "able to retrieve a large ACL if VFS supports it" test_large_acl || failed=`expr $failed + 1`
|
||||
|
||||
cleanup
|
||||
|
||||
exit $failed
|
@ -228,6 +228,7 @@ for env in ["fileserver"]:
|
||||
plantestsuite("samba3.blackbox.inherit_owner.default(%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'tmp', '0', '0', '-m', 'NT1'])
|
||||
plantestsuite("samba3.blackbox.inherit_owner.full (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'inherit_owner', '1', '1', '-m', 'NT1'])
|
||||
plantestsuite("samba3.blackbox.inherit_owner.unix (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'inherit_owner_u', '0', '1', '-m', 'NT1'])
|
||||
plantestsuite("samba3.blackbox.large_acl (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls])
|
||||
|
||||
#
|
||||
# tar command tests
|
||||
|
Loading…
x
Reference in New Issue
Block a user