Integrate tools/regression/acltools into the FreeBSD test suite as tests/sys/acl

- Make the requirements more complete for the testcases
- Detect prerequisites so the tests won't fail (zfs.ko is loaded, zpool(1)
  is available, ACL support is enabled with UFS, etc).
- Work with temporary files/directories/mountpoints that work with atf/kyua
- Limit the testcases to work on temporary filesystems to reduce tainting the
  test host

MFC after: 2 weeks
Reviewed by: trasz (earlier version)
Differential Revision: https://reviews.freebsd.org/D3810
This commit is contained in:
Enji Cooper 2015-10-17 08:39:37 +00:00
parent ab866a3d61
commit b3af24b4ff
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289446
16 changed files with 86 additions and 36 deletions

View File

@ -360,6 +360,8 @@
..
..
sys
acl
..
aio
..
fifo

View File

@ -4,6 +4,7 @@
TESTSDIR= ${TESTSBASE}/sys
TESTS_SUBDIRS+= acl
TESTS_SUBDIRS+= aio
TESTS_SUBDIRS+= fifo
TESTS_SUBDIRS+= file

View File

@ -37,12 +37,16 @@
#
# Output should be obvious.
echo "1..4"
if [ `whoami` != "root" ]; then
echo "not ok 1 - you need to be root to run this test."
exit 1
if [ $(sysctl -n kern.features.ufs_acl 2>/dev/null || echo 0) -eq 0 ]; then
echo "1..0 # SKIP system does not have UFS ACL support"
exit 0
fi
if [ $(id -u) -ne 0 ]; then
echo "1..0 # SKIP you must be root"
exit 0
fi
echo "1..4"
TESTDIR=$(dirname $(realpath $0))
@ -50,9 +54,11 @@ TESTDIR=$(dirname $(realpath $0))
MD=`mdconfig -at swap -s 10m`
MNT=`mktemp -dt acltools`
newfs /dev/$MD > /dev/null
trap "cd /; umount -f $MNT; rmdir $MNT; mdconfig -d -u $MD" EXIT
mount -o acls /dev/$MD $MNT
if [ $? -ne 0 ]; then
echo "not ok 1 - mount failed."
echo 'Bail out!'
exit 1
fi
@ -78,8 +84,5 @@ else
fi
cd /
umount -f $MNT
rmdir $MNT
mdconfig -du $MD
echo "ok 4"

View File

@ -39,21 +39,27 @@
#
# Output should be obvious.
echo "1..4"
if [ `whoami` != "root" ]; then
echo "not ok 1 - you need to be root to run this test."
exit 1
if ! sysctl vfs.zfs.version.spa >/dev/null 2>&1; then
echo "1..0 # SKIP system doesn't have ZFS loaded"
exit 0
fi
if [ $(id -u) -ne 0 ]; then
echo "1..0 # SKIP you must be root"
exit 0
fi
echo "1..4"
TESTDIR=$(dirname $(realpath $0))
# Set up the test filesystem.
MD=`mdconfig -at swap -s 64m`
MNT=`mktemp -dt acltools`
trap "cd /; zpool destroy -f acltools; rmdir $MNT; mdconfig -d -u $MD" EXIT
zpool create -m $MNT acltools /dev/$MD
if [ $? -ne 0 ]; then
echo "not ok 1 - 'zpool create' failed."
echo 'Bail out!'
exit 1
fi
@ -78,9 +84,4 @@ else
echo "not ok 3"
fi
cd /
zpool destroy -f acltools
rmdir $MNT
mdconfig -du $MD
echo "ok 4"

View File

@ -37,12 +37,16 @@
#
# Output should be obvious.
echo "1..4"
if [ `whoami` != "root" ]; then
echo "not ok 1 - you need to be root to run this test."
exit 1
if [ $(sysctl -n kern.features.ufs_acl 2>/dev/null || echo 0) -eq 0 ]; then
echo "1..0 # SKIP system does not have UFS ACL support"
exit 0
fi
if [ $(id -u) -ne 0 ]; then
echo "1..0 # SKIP you must be root"
exit 0
fi
echo "1..4"
TESTDIR=$(dirname $(realpath $0))
@ -50,9 +54,11 @@ TESTDIR=$(dirname $(realpath $0))
MD=`mdconfig -at swap -s 10m`
MNT=`mktemp -dt acltools`
newfs /dev/$MD > /dev/null
trap "cd /; umount -f $MNT; rmdir $MNT; mdconfig -d -u $MD" EXIT
mount -o nfsv4acls /dev/$MD $MNT
if [ $? -ne 0 ]; then
echo "not ok 1 - mount failed."
echo 'Bail out!'
exit 1
fi
@ -82,9 +88,6 @@ else
fi
cd /
umount -f $MNT
rmdir $MNT
mdconfig -du $MD
echo "ok 4"

View File

@ -34,12 +34,16 @@
#
# Output should be obvious.
echo "1..5"
if [ `whoami` != "root" ]; then
echo "not ok 1 - you need to be root to run this test."
exit 1
if ! sysctl vfs.zfs.version.spa >/dev/null 2>&1; then
echo "1..0 # SKIP system doesn't have ZFS loaded"
exit 0
fi
if [ $(id -u) -ne 0 ]; then
echo "1..0 # SKIP you must be root"
exit 0
fi
echo "1..5"
TESTDIR=$(dirname $(realpath $0))
MNTROOT=`mktemp -dt acltools`
@ -51,6 +55,7 @@ mkdir $MNT1
zpool create -m $MNT1 acltools /dev/$MD1
if [ $? -ne 0 ]; then
echo "not ok 1 - 'zpool create' failed."
echo 'Bail out!'
exit 1
fi
@ -63,6 +68,7 @@ newfs /dev/$MD2 > /dev/null
mount -o acls /dev/$MD2 $MNT2
if [ $? -ne 0 ]; then
echo "not ok 2 - mount failed."
echo 'Bail out!'
exit 1
fi
@ -75,6 +81,7 @@ newfs /dev/$MD3 > /dev/null
mount /dev/$MD3 $MNT3
if [ $? -ne 0 ]; then
echo "not ok 3 - mount failed."
echo 'Bail out!'
exit 1
fi

View File

@ -31,12 +31,16 @@
#
# WARNING: It uses hardcoded ZFS pool name "acltools"
echo "1..3"
if [ `whoami` != "root" ]; then
echo "not ok 1 - you need to be root to run this test."
exit 1
if ! sysctl vfs.zfs.version.spa >/dev/null 2>&1; then
echo "1..0 # SKIP system doesn't have ZFS loaded"
exit 0
fi
if [ $(id -u) -ne 0 ]; then
echo "1..0 # SKIP you must be root"
exit 0
fi
echo "1..3"
TESTDIR=$(dirname $(realpath $0))

29
tests/sys/acl/Makefile Normal file
View File

@ -0,0 +1,29 @@
# $FreeBSD$
TESTSDIR= ${TESTSBASE}/sys/acl
BINDIR= ${TESTSDIR}
FILES+= tools-crossfs.test
FILES+= tools-nfs4.test
FILES+= tools-nfs4-psarc.test
FILES+= tools-nfs4-trivial.test
FILES+= tools-posix.test
SCRIPTS+= run
TAP_TESTS_SH+= 00
TAP_TESTS_SH+= 01
TAP_TESTS_SH+= 02
TAP_TESTS_SH+= 03
TAP_TESTS_SH+= 04
.for t in ${TAP_TESTS_SH}
TEST_METADATA.$t+= required_user="root"
.endfor
.for t in 01 03 04
TEST_METADATA.$t+= required_programs="/sbin/zpool"
.endfor
.include <bsd.test.mk>