#!/usr/bin/env 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;;FA;;;WD)' -e 's/(.*)/(A;;FA;;;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