Annotation of src/share/mk/bsd.regress.mk, Revision 1.10
1.10 ! avsm 1: # $OpenBSD: bsd.regress.mk,v 1.9 2002/02/17 01:10:15 marc Exp $
! 2: # Documented in bsd.regress.mk(5)
! 3:
1.1 art 4: # No man pages for regression tests.
5: NOMAN=
6:
7: # No installation.
8: install:
9:
1.10 ! avsm 10: # If REGRESS_TARGETS is defined and PROG is not defined, set NOPROG
! 11: .if defined(REGRESS_TARGETS) && !defined(PROG)
1.2 art 12: NOPROG=
1.1 art 13: .endif
14:
15: .include <bsd.prog.mk>
1.7 art 16:
17: .MAIN: all
18: all: regress
1.1 art 19:
1.10 ! avsm 20: # Check for deprecated REGRESS* variables and assign them to the
! 21: # new versions if the new version is not already defined.
! 22: _REGRESS_DEPRECATED=LOG:LOG SKIPTARGETS:SKIP_TARGETS SKIPSLOW:SKIP_SLOW \
! 23: SKIP:SKIP TARGETS:TARGETS MAXTIME:MAXTIME ROOTTARGETS:ROOT_TARGETS
! 24:
! 25: .for _I in ${_REGRESS_DEPRECATED}
! 26: _REGRESS_OLD=REGRESS${_I:C/\:.*//}
! 27: _REGRESS_NEW=REGRESS_${_I:C/.*\://}
! 28: . if defined(${_REGRESS_OLD})
! 29: ERRORS:= ${ERRORS} "Warning: ${_REGRESS_OLD} is deprecated, use ${_REGRESS_NEW} instead."
! 30: . if !defined(${_REGRESS_NEW})
! 31: ${_REGRESS_NEW}:=${${_REGRESS_OLD}}
! 32: . endif
! 33: . endif
! 34: .endfor
1.1 art 35:
1.10 ! avsm 36: # XXX - Need full path to REGRESS_LOG, otherwise there will be much pain.
! 37: REGRESS_LOG?=/dev/null
! 38: REGRESS_SKIP_TARGETS?=
! 39: REGRESS_SKIP_SLOW?=no
! 40:
! 41: _REGRESS_NAME=${.CURDIR:S/${BSDSRCDIR}\/regress\///}
! 42: _REGRESS_TMP?=/dev/null
! 43: _REGRESS_OUT= | tee -a ${REGRESS_LOG} ${_REGRESS_TMP} 2>&1 > /dev/null
1.1 art 44:
45: .if defined(PROG) && !empty(PROG)
1.3 art 46: run-regress-${PROG}: ${PROG}
1.1 art 47: ./${PROG}
48: .endif
49:
1.10 ! avsm 50: .if !defined(REGRESS_TARGETS)
! 51: REGRESS_TARGETS=run-regress-${PROG}
! 52: . if defined(REGRESS_SKIP)
! 53: REGRESS_SKIP_TARGETS=run-regress-${PROG}
1.1 art 54: . endif
55: .endif
56:
1.10 ! avsm 57: .if defined(REGRESS_SLOW_TARGETS) && !empty(REGRESS_SKIP_SLOW)
! 58: REGRESS_SKIP_TARGETS+=${REGRESS_SLOW_TARGETS}
1.9 marc 59: .endif
60:
1.10 ! avsm 61: .if defined(REGRESS_ROOT_TARGETS)
! 62: _ROOTUSER!=id -g
1.9 marc 63: SUDO?=
1.10 ! avsm 64: . if (${_ROOTUSER} != 0) && empty(SUDO)
! 65: REGRESS_SKIP_TARGETS+=${REGRESS_ROOT_TARGETS}
! 66: . endif
1.4 art 67: .endif
68:
1.10 ! avsm 69: .if defined(ERRORS)
! 70: .BEGIN:
! 71: . for _m in ${ERRORS}
! 72: @echo 1>&2 ${_m}
! 73: . endfor
! 74: . if !empty(ERRORS:M"Fatal\:*") || !empty(ERRORS:M'Fatal\:*')
! 75: @exit 1
! 76: . endif
! 77: .endif
1.1 art 78:
1.10 ! avsm 79: regress: .SILENT
! 80: .if ! ${REGRESS_LOG:M/*}
! 81: echo =========================================================
! 82: echo REGRESS_LOG must contain an absolute path to the log-file.
! 83: echo It currently points to: ${REGRESS_LOG}
! 84: echo =========================================================
! 85: exit 1
! 86: .endif
! 87: .for RT in ${REGRESS_TARGETS}
! 88: . if ${REGRESS_SKIP_TARGETS:M${RT}}
! 89: @echo -n "SKIP " ${_REGRESS_OUT}
1.1 art 90: . else
1.3 art 91: # XXX - we need a better method to see if a test fails due to timeout or just
92: # normal failure.
1.10 ! avsm 93: . if !defined(REGRESS_MAXTIME)
! 94: -if cd ${.CURDIR} && ${MAKE} ${RT}; then \
! 95: echo -n "SUCCESS " ${_REGRESS_OUT} ; \
1.3 art 96: else \
1.10 ! avsm 97: echo -n "FAIL " ${_REGRESS_OUT} ; \
1.1 art 98: echo FAILED ; \
99: fi
1.3 art 100: . else
1.10 ! avsm 101: -if cd ${.CURDIR} && (ulimit -t ${REGRESS_MAXTIME} ; ${MAKE} ${RT}); then \
! 102: echo -n "SUCCESS " ${_REGRESS_OUT} ; \
1.3 art 103: else \
1.10 ! avsm 104: echo -n "FAIL (possible timeout) " ${_REGRESS_OUT} ; \
1.3 art 105: echo FAILED ; \
106: fi
107: . endif
1.1 art 108: . endif
1.10 ! avsm 109: @echo ${_REGRESS_NAME}/${RT:S/^run-regress-//} ${_REGRESS_OUT}
1.1 art 110: .endfor
111:
112: .PHONY: regress