From bb85a467ceba3e56d02b4168d2cf18fba47392ef Mon Sep 17 00:00:00 2001 From: bdrewery Date: Wed, 29 Apr 2020 21:12:32 +0000 Subject: [PATCH] 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 --- cddl/usr.sbin/dtrace/tests/dtrace.test.mk | 6 ++++-- cddl/usr.sbin/dtrace/tests/tools/exclude.sh | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/cddl/usr.sbin/dtrace/tests/dtrace.test.mk b/cddl/usr.sbin/dtrace/tests/dtrace.test.mk index aaeba61e103e..0da134c0cbc2 100644 --- a/cddl/usr.sbin/dtrace/tests/dtrace.test.mk +++ b/cddl/usr.sbin/dtrace/tests/dtrace.test.mk @@ -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,7 +19,8 @@ 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} - sh ${GENTEST} -e ${EXCLUDE} ${TESTGROUP} ${${PACKAGE}FILES:S/ */ /} > ${.TARGET} + env TESTBASE=${TESTBASE:Q} \ + sh ${GENTEST} -e ${EXCLUDE} ${TESTGROUP} ${${PACKAGE}FILES:S/ */ /} > ${.TARGET} CLEANFILES+= ${TESTWRAPPER}.sh diff --git a/cddl/usr.sbin/dtrace/tests/tools/exclude.sh b/cddl/usr.sbin/dtrace/tests/tools/exclude.sh index db5796039a0d..5767865429e8 100755 --- a/cddl/usr.sbin/dtrace/tests/tools/exclude.sh +++ b/cddl/usr.sbin/dtrace/tests/tools/exclude.sh @@ -23,7 +23,22 @@ exclude() { - eval $1=\"\$$1\\n$2\" + 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