#!/bin/sh -x

set -e
mkdir -p testdir
cd testdir

set +e
setfacl -d -m u:nobody:rw .
if test $? != 0; then
	echo "Filesystem does not support ACL"
	exit 0
fi

expect_failure() {
	if "$@"; then return 1; else return 0; fi
}

set -e
c=0
while [ $c -lt 100  ]
do
	c=`expr $c + 1`
	# inherited ACL from parent directory's default ACL
	mkdir d1
	c1=`getfacl d1 | grep -c "nobody:rw"`
	echo 3 | sudo tee /proc/sys/vm/drop_caches > /dev/null
	c2=`getfacl d1 | grep -c "nobody:rw"`
	rmdir d1
	if [ $c1 -ne 2 ] || [ $c2 -ne 2 ]
	then
		echo "ERROR: incorrect ACLs"
		exit 1
	fi
done

mkdir d1

# The ACL xattr only contains ACL header. ACL should be removed
# in this case.
setfattr -n system.posix_acl_access -v 0x02000000 d1
setfattr -n system.posix_acl_default -v 0x02000000 .

expect_failure getfattr -n system.posix_acl_access d1
expect_failure getfattr -n system.posix_acl_default .


rmdir d1
cd ..
rmdir testdir
echo OK
