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

1.21    ! espie       1: # $OpenBSD: bsd.regress.mk,v 1.20 2019/06/15 07:30:26 espie 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: # XXX - Need full path to REGRESS_LOG, otherwise there will be much pain.
                     21: REGRESS_LOG?=/dev/null
                     22: REGRESS_SKIP_TARGETS?=
                     23: REGRESS_SKIP_SLOW?=no
1.11      halex      24: REGRESS_FAIL_EARLY?=no
1.10      avsm       25:
1.19      espie      26: .if ! ${REGRESS_LOG:M/*}
                     27: ERRORS += "Fatal: REGRESS_LOG=${REGRESS_LOG} is not an absolute path"
                     28: .endif
                     29:
1.10      avsm       30: _REGRESS_NAME=${.CURDIR:S/${BSDSRCDIR}\/regress\///}
                     31: _REGRESS_TMP?=/dev/null
                     32: _REGRESS_OUT= | tee -a ${REGRESS_LOG} ${_REGRESS_TMP} 2>&1 > /dev/null
1.1       art        33:
                     34: .if defined(PROG) && !empty(PROG)
1.3       art        35: run-regress-${PROG}: ${PROG}
1.1       art        36:        ./${PROG}
1.19      espie      37: .PHONY: run-regress-${PROG}
1.1       art        38: .endif
                     39:
1.12      kettenis   40: .if defined(PROG) && !defined(REGRESS_TARGETS)
1.10      avsm       41: REGRESS_TARGETS=run-regress-${PROG}
                     42: .  if defined(REGRESS_SKIP)
                     43: REGRESS_SKIP_TARGETS=run-regress-${PROG}
1.1       art        44: .  endif
                     45: .endif
                     46:
1.18      bluhm      47: .if defined(REGRESS_SLOW_TARGETS) && ${REGRESS_SKIP_SLOW:L} != no
1.10      avsm       48: REGRESS_SKIP_TARGETS+=${REGRESS_SLOW_TARGETS}
1.9       marc       49: .endif
                     50:
1.18      bluhm      51: .if ${REGRESS_FAIL_EARLY:L} != no
1.19      espie      52: _REGRESS_FAILED = false
1.11      halex      53: .else
1.19      espie      54: _REGRESS_FAILED = true
1.11      halex      55: .endif
                     56:
1.10      avsm       57: .if defined(REGRESS_ROOT_TARGETS)
                     58: _ROOTUSER!=id -g
1.9       marc       59: SUDO?=
1.10      avsm       60: .  if (${_ROOTUSER} != 0) && empty(SUDO)
                     61: REGRESS_SKIP_TARGETS+=${REGRESS_ROOT_TARGETS}
                     62: .  endif
1.4       art        63: .endif
                     64:
1.21    ! espie      65: REGRESS_EXPECTED_FAILURES?=
1.15      bluhm      66: REGRESS_SETUP?=
1.16      bluhm      67: REGRESS_SETUP_ONCE?=
1.15      bluhm      68: REGRESS_CLEANUP?=
1.16      bluhm      69:
1.15      bluhm      70: .if !empty(REGRESS_SETUP)
                     71: ${REGRESS_TARGETS}: ${REGRESS_SETUP}
                     72: .endif
1.1       art        73:
1.16      bluhm      74: .if !empty(REGRESS_SETUP_ONCE)
                     75: CLEANFILES+=${REGRESS_SETUP_ONCE:S/^/stamp-/}
                     76: ${REGRESS_TARGETS}: ${REGRESS_SETUP_ONCE:S/^/stamp-/}
                     77: ${REGRESS_SETUP_ONCE:S/^/stamp-/}: .SILENT
                     78:        ${MAKE} -C ${.CURDIR} ${@:S/^stamp-//}
                     79:        date >$@
                     80: .endif
                     81:
1.10      avsm       82: regress: .SILENT
1.16      bluhm      83: .if !empty(REGRESS_SETUP_ONCE)
                     84:        rm -f ${REGRESS_SETUP_ONCE:S/^/stamp-/}
1.10      avsm       85: .endif
1.20      espie      86: .for RT in ${REGRESS_TARGETS}
1.10      avsm       87: .  if ${REGRESS_SKIP_TARGETS:M${RT}}
1.19      espie      88:        echo -n "SKIP " ${_REGRESS_OUT}
                     89:        echo SKIPPED
1.21    ! espie      90: .  elif ${REGRESS_EXPECTED_FAILURES:M${RT}}
        !            91:        if ${MAKE} -C ${.CURDIR} ${RT}; then \
        !            92:            echo -n "XPASS " ${_REGRESS_OUT} ; \
        !            93:            echo UNEXPECTED_PASS; \
        !            94:            ${_REGRESS_FAILED}; \
        !            95:        else \
        !            96:            echo -n "XFAIL " ${_REGRESS_OUT} ; \
        !            97:            echo EXPECTED_FAIL; \
        !            98:        fi
1.1       art        99: .  else
1.19      espie     100:        if ${MAKE} -C ${.CURDIR} ${RT}; then \
1.10      avsm      101:            echo -n "SUCCESS " ${_REGRESS_OUT} ; \
1.3       art       102:        else \
1.10      avsm      103:            echo -n "FAIL " ${_REGRESS_OUT} ; \
1.1       art       104:            echo FAILED ; \
1.19      espie     105:            ${_REGRESS_FAILED}; \
1.1       art       106:        fi
                    107: .  endif
1.19      espie     108:        echo ${_REGRESS_NAME}/${RT:S/^run-regress-//} ${_REGRESS_OUT}
1.1       art       109: .endfor
1.20      espie     110: .for RT in ${REGRESS_CLEANUP}
                    111:        ${MAKE} -C ${.CURDIR} ${RT}
                    112: .endfor
                    113:        rm -f ${REGRESS_SETUP_ONCE:S/^/stamp-/}
1.19      espie     114:
                    115: .if defined(ERRORS)
                    116: .BEGIN:
                    117: .  for _m in ${ERRORS}
                    118:        @echo 1>&2 ${_m}
                    119: .  endfor
                    120: .  if !empty(ERRORS:M"Fatal\:*") || !empty(ERRORS:M'Fatal\:*')
                    121:        @exit 1
                    122: .  endif
                    123: .endif
1.1       art       124:
                    125: .PHONY: regress