dtrace tests: Support globbing for excludes

Downstream this makes skipping tests like common/ip/tst.*sctp*.ksh simpler.

Reviewed by:	vangyzen, cem, markj
Sponsored by:	Dell EMC
Differential Revision:	https://reviews.freebsd.org/D24608
This commit is contained in:
bdrewery 2020-04-29 21:12:32 +00:00
parent 2338a28d9e
commit bb85a467ce
2 changed files with 20 additions and 3 deletions

View File

@ -1,7 +1,8 @@
# $FreeBSD$
TESTGROUP= ${.CURDIR:H:T}/${.CURDIR:T}
TESTSRC= ${SRCTOP}/cddl/contrib/opensolaris/cmd/dtrace/test/tst/${TESTGROUP}
TESTBASE= ${SRCTOP}/cddl/contrib/opensolaris/cmd/dtrace/test/tst
TESTSRC= ${TESTBASE}/${TESTGROUP}
TESTSDIR= ${TESTSBASE}/cddl/usr.sbin/dtrace/${TESTGROUP}
FILESGROUPS+= ${TESTGROUP}EXE
@ -18,6 +19,7 @@ TEST_METADATA.t_dtrace_contrib+= required_user="root"
GENTEST?= ${.CURDIR:H:H}/tools/gentest.sh
EXCLUDE= ${.CURDIR:H:H}/tools/exclude.sh
${TESTWRAPPER}.sh: ${GENTEST} ${EXCLUDE} ${${PACKAGE}FILES}
env TESTBASE=${TESTBASE:Q} \
sh ${GENTEST} -e ${EXCLUDE} ${TESTGROUP} ${${PACKAGE}FILES:S/ */ /} > ${.TARGET}
CLEANFILES+= ${TESTWRAPPER}.sh

View File

@ -23,7 +23,22 @@
exclude()
{
case $2 in
# Handle globbing later
*"*"*) ;;
# No globbing needed
*)
eval $1=\"\$$1\\n$2\"
return
;;
esac
for file in ${TESTBASE}/${2}; do
case ${file} in
# Invalid glob
"${TESTBASE}/${2}") echo "Invalid exclude for $2" >&2; exit 1; ;;
esac
exclude "$1" "${file##${TESTBASE}/}"
done
}
exclude EXFAIL common/aggs/tst.subr.d