diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 1ca3d4d6c7d8..c31eaaa97e33 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -360,6 +360,8 @@ .. .. sys + acl + .. aio .. fifo diff --git a/tests/sys/Makefile b/tests/sys/Makefile index a22214a1444d..f559e20230de 100644 --- a/tests/sys/Makefile +++ b/tests/sys/Makefile @@ -4,6 +4,7 @@ TESTSDIR= ${TESTSBASE}/sys +TESTS_SUBDIRS+= acl TESTS_SUBDIRS+= aio TESTS_SUBDIRS+= fifo TESTS_SUBDIRS+= file diff --git a/tools/regression/acltools/00.t b/tests/sys/acl/00.sh similarity index 89% rename from tools/regression/acltools/00.t rename to tests/sys/acl/00.sh index 88990887773b..61e8115525ff 100644 --- a/tools/regression/acltools/00.t +++ b/tests/sys/acl/00.sh @@ -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" diff --git a/tools/regression/acltools/01.t b/tests/sys/acl/01.sh similarity index 89% rename from tools/regression/acltools/01.t rename to tests/sys/acl/01.sh index f84e0a98b463..93487a77263f 100644 --- a/tools/regression/acltools/01.t +++ b/tests/sys/acl/01.sh @@ -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" diff --git a/tools/regression/acltools/02.t b/tests/sys/acl/02.sh similarity index 89% rename from tools/regression/acltools/02.t rename to tests/sys/acl/02.sh index 9a82c78d1456..8fbb39de4d6a 100644 --- a/tools/regression/acltools/02.t +++ b/tests/sys/acl/02.sh @@ -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" diff --git a/tools/regression/acltools/03.t b/tests/sys/acl/03.sh similarity index 91% rename from tools/regression/acltools/03.t rename to tests/sys/acl/03.sh index a0b4199c2bf2..2b81b2662306 100644 --- a/tools/regression/acltools/03.t +++ b/tests/sys/acl/03.sh @@ -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 diff --git a/tools/regression/acltools/04.t b/tests/sys/acl/04.sh similarity index 91% rename from tools/regression/acltools/04.t rename to tests/sys/acl/04.sh index 1a13183475fe..5669c5a48d24 100644 --- a/tools/regression/acltools/04.t +++ b/tests/sys/acl/04.sh @@ -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)) diff --git a/tools/regression/acltools/aclfuzzer.sh b/tests/sys/acl/aclfuzzer.sh similarity index 100% rename from tools/regression/acltools/aclfuzzer.sh rename to tests/sys/acl/aclfuzzer.sh diff --git a/tools/regression/acltools/mktrivial.sh b/tests/sys/acl/mktrivial.sh similarity index 100% rename from tools/regression/acltools/mktrivial.sh rename to tests/sys/acl/mktrivial.sh diff --git a/tools/regression/acltools/run b/tests/sys/acl/run similarity index 100% rename from tools/regression/acltools/run rename to tests/sys/acl/run diff --git a/tools/regression/acltools/tools-crossfs.test b/tests/sys/acl/tools-crossfs.test similarity index 100% rename from tools/regression/acltools/tools-crossfs.test rename to tests/sys/acl/tools-crossfs.test diff --git a/tools/regression/acltools/tools-nfs4-psarc.test b/tests/sys/acl/tools-nfs4-psarc.test similarity index 100% rename from tools/regression/acltools/tools-nfs4-psarc.test rename to tests/sys/acl/tools-nfs4-psarc.test diff --git a/tools/regression/acltools/tools-nfs4-trivial.test b/tests/sys/acl/tools-nfs4-trivial.test similarity index 100% rename from tools/regression/acltools/tools-nfs4-trivial.test rename to tests/sys/acl/tools-nfs4-trivial.test diff --git a/tools/regression/acltools/tools-nfs4.test b/tests/sys/acl/tools-nfs4.test similarity index 100% rename from tools/regression/acltools/tools-nfs4.test rename to tests/sys/acl/tools-nfs4.test diff --git a/tools/regression/acltools/tools-posix.test b/tests/sys/acl/tools-posix.test similarity index 100% rename from tools/regression/acltools/tools-posix.test rename to tests/sys/acl/tools-posix.test