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

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