[BACK]Return to bsd.regress.mk CVS log [TXT][DIR] Up to [local] / src / share / mk

Annotation of src/share/mk/bsd.regress.mk, Revision 1.11

1.11    ! halex       1: # $OpenBSD: bsd.regress.mk,v 1.10 2002/09/02 19:56:55 avsm Exp $
1.10      avsm        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
1.11    ! halex      40: REGRESS_FAIL_EARLY?=no
1.10      avsm       41:
                     42: _REGRESS_NAME=${.CURDIR:S/${BSDSRCDIR}\/regress\///}
                     43: _REGRESS_TMP?=/dev/null
                     44: _REGRESS_OUT= | tee -a ${REGRESS_LOG} ${_REGRESS_TMP} 2>&1 > /dev/null
1.1       art        45:
                     46: .if defined(PROG) && !empty(PROG)
1.3       art        47: run-regress-${PROG}: ${PROG}
1.1       art        48:        ./${PROG}
                     49: .endif
                     50:
1.10      avsm       51: .if !defined(REGRESS_TARGETS)
                     52: REGRESS_TARGETS=run-regress-${PROG}
                     53: .  if defined(REGRESS_SKIP)
                     54: REGRESS_SKIP_TARGETS=run-regress-${PROG}
1.1       art        55: .  endif
                     56: .endif
                     57:
1.10      avsm       58: .if defined(REGRESS_SLOW_TARGETS) && !empty(REGRESS_SKIP_SLOW)
                     59: REGRESS_SKIP_TARGETS+=${REGRESS_SLOW_TARGETS}
1.9       marc       60: .endif
                     61:
1.11    ! halex      62: .if ${REGRESS_FAIL_EARLY} != no
        !            63: _SKIP_FAIL=
        !            64: .else
        !            65: _SKIP_FAIL=-
        !            66: .endif
        !            67:
1.10      avsm       68: .if defined(REGRESS_ROOT_TARGETS)
                     69: _ROOTUSER!=id -g
1.9       marc       70: SUDO?=
1.10      avsm       71: .  if (${_ROOTUSER} != 0) && empty(SUDO)
                     72: REGRESS_SKIP_TARGETS+=${REGRESS_ROOT_TARGETS}
                     73: .  endif
1.4       art        74: .endif
                     75:
1.10      avsm       76: .if defined(ERRORS)
                     77: .BEGIN:
                     78: .  for _m in ${ERRORS}
                     79:        @echo 1>&2 ${_m}
                     80: .  endfor
                     81: .  if !empty(ERRORS:M"Fatal\:*") || !empty(ERRORS:M'Fatal\:*')
                     82:        @exit 1
                     83: .  endif
                     84: .endif
1.1       art        85:
1.10      avsm       86: regress: .SILENT
                     87: .if ! ${REGRESS_LOG:M/*}
                     88:        echo =========================================================
                     89:        echo REGRESS_LOG must contain an absolute path to the log-file.
                     90:        echo It currently points to: ${REGRESS_LOG}
                     91:        echo =========================================================
                     92:        exit 1
                     93: .endif
                     94: .for RT in ${REGRESS_TARGETS}
                     95: .  if ${REGRESS_SKIP_TARGETS:M${RT}}
                     96:        @echo -n "SKIP " ${_REGRESS_OUT}
1.1       art        97: .  else
1.3       art        98: # XXX - we need a better method to see if a test fails due to timeout or just
                     99: #       normal failure.
1.10      avsm      100: .   if !defined(REGRESS_MAXTIME)
1.11    ! halex     101:        ${_SKIP_FAIL}if cd ${.CURDIR} && ${MAKE} ${RT}; then \
1.10      avsm      102:            echo -n "SUCCESS " ${_REGRESS_OUT} ; \
1.3       art       103:        else \
1.10      avsm      104:            echo -n "FAIL " ${_REGRESS_OUT} ; \
1.1       art       105:            echo FAILED ; \
1.11    ! halex     106:            false; \
1.1       art       107:        fi
1.3       art       108: .   else
1.11    ! halex     109:        ${_SKIP_FAIL}if cd ${.CURDIR} && \
        !           110:            (ulimit -t ${REGRESS_MAXTIME} ; ${MAKE} ${RT}); then \
1.10      avsm      111:            echo -n "SUCCESS " ${_REGRESS_OUT} ; \
1.3       art       112:        else \
1.10      avsm      113:            echo -n "FAIL (possible timeout) " ${_REGRESS_OUT} ; \
1.3       art       114:            echo FAILED ; \
1.11    ! halex     115:            false; \
1.3       art       116:        fi
                    117: .   endif
1.1       art       118: .  endif
1.10      avsm      119:        @echo ${_REGRESS_NAME}/${RT:S/^run-regress-//} ${_REGRESS_OUT}
1.1       art       120: .endfor
                    121:
                    122: .PHONY: regress