aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Layton <jlayton@kernel.org>2023-08-22 17:40:18 -0400
committerJeff Layton <jlayton@kernel.org>2023-08-22 17:40:18 -0400
commita693012375a4c231a72645db5377048f32b6623e (patch)
treebc10718d8ee1e26100691a5a6942d69c11d895fd
parent8de535c53887bb49adae74a1b2e83e77d7e8457d (diff)
downloadxfstests-dev-require_acl.tar.gz
common/attr: fix the _require_acl testrequire_acl
_require_acl tests whether you're able to fetch the ACL from a file using chacl. Unfortunately, filesystems like NFSv4 return -ENODATA when someone calls getxattr for system.posix_acl. chacl treats that as if there is no ACL attached to the file and so doesn't return an error even though the filesystem doesn't support ACLs. Fix the test to have chacl set an ACL on the file instead, which should reliably fail on filesystems that don't support them. Signed-off-by: Jeff Layton <jlayton@kernel.org>
-rw-r--r--common/attr9
1 files changed, 4 insertions, 5 deletions
diff --git a/common/attr b/common/attr
index cce4d1b201..3ebba682c8 100644
--- a/common/attr
+++ b/common/attr
@@ -163,13 +163,12 @@ _require_acls()
[ -n "$CHACL_PROG" ] || _notrun "chacl command not found"
#
- # Test if chacl is able to list ACLs on the target filesystems. On really
- # old kernels the system calls might not be implemented at all, but the
- # more common case is that the tested filesystem simply doesn't support
- # ACLs.
+ # Test if chacl is able to set an ACL on a file. On really old kernels
+ # the system calls might not be implemented at all, but the more common
+ # case is that the tested filesystem simply doesn't support ACLs.
#
touch $TEST_DIR/syscalltest
- chacl -l $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
+ chacl 'u::rw-,g::---,o::---' $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
cat $TEST_DIR/syscalltest.out >> $seqres.full
if grep -q 'Function not implemented' $TEST_DIR/syscalltest.out; then