summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbluhm <bluhm@openbsd.org>2018-10-05 11:15:29 +0000
committerbluhm <bluhm@openbsd.org>2018-10-05 11:15:29 +0000
commit222317713728fa2c3a72bddd89c3bbac4d3d76f7 (patch)
treea17bb824e786427a98b725115a5f5c2557d690bf
parentpass current dir, rdomains and interfaces as argument to the test. (diff)
downloadwireguard-openbsd-222317713728fa2c3a72bddd89c3bbac4d3d76f7.tar.xz
wireguard-openbsd-222317713728fa2c3a72bddd89c3bbac4d3d76f7.zip
Add regress variable to run setup once for all tests.
OK anton@ benno@
-rw-r--r--share/man/man5/bsd.regress.mk.515
-rw-r--r--share/mk/bsd.regress.mk18
2 files changed, 25 insertions, 8 deletions
diff --git a/share/man/man5/bsd.regress.mk.5 b/share/man/man5/bsd.regress.mk.5
index a249889f006..f1e3c7801d4 100644
--- a/share/man/man5/bsd.regress.mk.5
+++ b/share/man/man5/bsd.regress.mk.5
@@ -1,4 +1,4 @@
-.\" $OpenBSD: bsd.regress.mk.5,v 1.16 2018/09/26 09:34:23 bluhm Exp $
+.\" $OpenBSD: bsd.regress.mk.5,v 1.17 2018/10/05 11:15:29 bluhm Exp $
.\"
.\" Copyright (c) 2002 Anil Madhavapeddy
.\" Copyright (c) 2000 Marc Espie
@@ -25,7 +25,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd $Mdocdate: September 26 2018 $
+.Dd $Mdocdate: October 5 2018 $
.Dt BSD.REGRESS.MK 5
.Os
.Sh NAME
@@ -92,11 +92,12 @@ See also
.Ev SUDO .
.It Ev REGRESS_SETUP
If this variable is set, it contains a target that is executed
-before all regress targets.
-The other regress targets depend on this one to enforce setup before
-running each test.
-It is recommended to implement this target with a stamp file to
-execute it only once.
+before each regress target.
+Regress targets depend on this one to enforce setup.
+.It Ev REGRESS_SETUP_ONCE
+If this variable is set, it contains a target that is executed
+once before all regress targets.
+Regress targets depend on a stamp file generated during setup.
.It Ev REGRESS_SKIP_SLOW
If this variable is not empty, skip over all the regression
tests which have been marked as being 'slow' using the
diff --git a/share/mk/bsd.regress.mk b/share/mk/bsd.regress.mk
index 932a7788810..09d397a8e38 100644
--- a/share/mk/bsd.regress.mk
+++ b/share/mk/bsd.regress.mk
@@ -1,4 +1,4 @@
-# $OpenBSD: bsd.regress.mk,v 1.15 2018/09/26 09:34:23 bluhm Exp $
+# $OpenBSD: bsd.regress.mk,v 1.16 2018/10/05 11:15:29 bluhm Exp $
# Documented in bsd.regress.mk(5)
# No man pages for regression tests.
@@ -68,11 +68,24 @@ REGRESS_SKIP_TARGETS+=${REGRESS_ROOT_TARGETS}
.endif
REGRESS_SETUP?=
+REGRESS_SETUP_ONCE?=
REGRESS_CLEANUP?=
+
.if !empty(REGRESS_SETUP)
${REGRESS_TARGETS}: ${REGRESS_SETUP}
.endif
+.if !empty(REGRESS_SETUP_ONCE)
+CLEANFILES+=${REGRESS_SETUP_ONCE:S/^/stamp-/}
+${REGRESS_TARGETS}: ${REGRESS_SETUP_ONCE:S/^/stamp-/}
+${REGRESS_SETUP_ONCE:S/^/stamp-/}: .SILENT
+ ${MAKE} -C ${.CURDIR} ${@:S/^stamp-//}
+ date >$@
+REGRESS_CLEANUP+=${REGRESS_SETUP_ONCE:S/^/cleanup-stamp-/}
+${REGRESS_SETUP_ONCE:S/^/cleanup-stamp-/}: .SILENT
+ rm -f ${@:S/^cleanup-//}
+.endif
+
regress: .SILENT
.if ! ${REGRESS_LOG:M/*}
echo =========================================================
@@ -81,6 +94,9 @@ regress: .SILENT
echo =========================================================
exit 1
.endif
+.if !empty(REGRESS_SETUP_ONCE)
+ rm -f ${REGRESS_SETUP_ONCE:S/^/stamp-/}
+.endif
.for RT in ${REGRESS_TARGETS} ${REGRESS_CLEANUP}
. if ${REGRESS_SKIP_TARGETS:M${RT}}
@echo -n "SKIP " ${_REGRESS_OUT}