11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#	$OpenBSD: bsd.regress.mk,v 1.9 2002/02/17 01:10:15 marc Exp $
21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# No man pages for regression tests.
31305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodNOMAN=
41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# No installation.
61305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodinstall:
71305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
81305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# If REGRESSTARGETS is defined and PROG is not defined, set NOPROG
91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.if defined(REGRESSTARGETS) && !defined(PROG)
101305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodNOPROG=
111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.endif
121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.include <bsd.prog.mk>
141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.MAIN: all
161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodall: regress
171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# XXX - Need full path to REGRESSLOG, otherwise there will be much pain.
191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
201305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodREGRESSLOG?=/dev/null
211305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodREGRESSNAME=${.CURDIR:S/${BSDSRCDIR}\/regress\///}
221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.if defined(PROG) && !empty(PROG)
241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrun-regress-${PROG}: ${PROG}
251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	./${PROG}
261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.endif
271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.if !defined(REGRESSTARGETS)
291305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodREGRESSTARGETS=run-regress-${PROG}
301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.  if defined(REGRESSSKIP)
311305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodREGRESSSKIPTARGETS=run-regress-${PROG}
321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.  endif
331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.endif
341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
351305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodREGRESSSKIPSLOW?=no
361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#.if (${REGRESSSKIPSLOW:L} == "yes") && defined(REGRESSSLOWTARGETS)
381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.if (${REGRESSSKIPSLOW} == "yes") && defined(REGRESSSLOWTARGETS)
401305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodREGRESSSKIPTARGETS+=${REGRESSSLOWTARGETS}
411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.endif
421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.if defined(REGRESSROOTTARGETS)
441305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodROOTUSER!=id -g
451305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodSUDO?=
461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood. if (${ROOTUSER} != 0) && empty(SUDO)
471305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodREGRESSSKIPTARGETS+=${REGRESSROOTTARGETS}
481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood. endif
491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.endif
501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
511305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodREGRESSSKIPTARGETS?=
521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodregress:
541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.for RT in ${REGRESSTARGETS} 
551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.  if ${REGRESSSKIPTARGETS:M${RT}}
561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	@echo -n "SKIP " >> ${REGRESSLOG}
571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.  else
581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# XXX - we need a better method to see if a test fails due to timeout or just
591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#       normal failure.
601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.   if !defined(REGRESSMAXTIME)
611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	@if cd ${.CURDIR} && ${MAKE} ${RT}; then \
621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	    echo -n "SUCCESS " >> ${REGRESSLOG} ; \
631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	else \
641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	    echo -n "FAIL " >> ${REGRESSLOG} ; \
651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	    echo FAILED ; \
661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	fi
671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.   else
681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	@if cd ${.CURDIR} && (ulimit -t ${REGRESSMAXTIME} ; ${MAKE} ${RT}); then \
691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	    echo -n "SUCCESS " >> ${REGRESSLOG} ; \
701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	else \
711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	    echo -n "FAIL (possible timeout) " >> ${REGRESSLOG} ; \
721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	    echo FAILED ; \
731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	fi
741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.   endif
751305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.  endif
761305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	@echo ${REGRESSNAME}/${RT:S/^run-regress-//} >> ${REGRESSLOG}
771305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.endfor
781305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
791305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood.PHONY: regress
80