From 5017dfeef24b8d568e0146c085f3f979d688acf2 Mon Sep 17 00:00:00 2001 From: Uri Simchoni Date: Sun, 9 Apr 2017 00:20:40 +0300 Subject: [PATCH] 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 Reviewed-by: Jeremy Allison --- source3/script/tests/test_large_acl.sh | 59 ++++++++++++++++++++++++++ source3/selftest/tests.py | 1 + 2 files changed, 60 insertions(+) create mode 100755 source3/script/tests/test_large_acl.sh diff --git a/source3/script/tests/test_large_acl.sh b/source3/script/tests/test_large_acl.sh new file mode 100755 index 00000000000..9b6901fcfb1 --- /dev/null +++ b/source3/script/tests/test_large_acl.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# +# Blackbox test for fetching a large ACL +# + +if [ $# -lt 5 ]; then +cat < /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 diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index d0e2ae69775..395943923da 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -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