[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.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