1d4d90f10SMarcel Moolenaar# This is a generated file, do NOT edit! 2d4d90f10SMarcel Moolenaar# See contrib/bmake/bsd.after-import.mk 3d4d90f10SMarcel Moolenaar# 4d4d90f10SMarcel Moolenaar# $FreeBSD$ 5d4d90f10SMarcel Moolenaar 6d4d90f10SMarcel MoolenaarSRCTOP?= ${.CURDIR:H:H:H} 7d4d90f10SMarcel Moolenaar 8*1bbe5942SSimon J. Gerraty# $Id: Makefile.in,v 1.44 2013/08/28 22:09:29 sjg Exp $ 9d4d90f10SMarcel Moolenaar# 10*1bbe5942SSimon J. Gerraty# $NetBSD: Makefile,v 1.38 2013/08/28 21:56:50 sjg Exp $ 11d4d90f10SMarcel Moolenaar# 12d4d90f10SMarcel Moolenaar# Unit tests for make(1) 13d4d90f10SMarcel Moolenaar# The main targets are: 14d4d90f10SMarcel Moolenaar# 15d4d90f10SMarcel Moolenaar# all: run all the tests 16d4d90f10SMarcel Moolenaar# test: run 'all', capture output and compare to expected results 17d4d90f10SMarcel Moolenaar# accept: move generated output to expected results 18d4d90f10SMarcel Moolenaar# 19d4d90f10SMarcel Moolenaar# Adding a test case. 20d4d90f10SMarcel Moolenaar# Each feature should get its own set of tests in its own suitably 21d4d90f10SMarcel Moolenaar# named makefile which should be added to SUBFILES to hook it in. 22d4d90f10SMarcel Moolenaar# 23d4d90f10SMarcel Moolenaar 24d4d90f10SMarcel Moolenaarsrcdir= ${SRCTOP}/contrib/bmake/unit-tests 25d4d90f10SMarcel Moolenaar 26d4d90f10SMarcel Moolenaar.MAIN: all 27d4d90f10SMarcel Moolenaar 28d4d90f10SMarcel MoolenaarUNIT_TESTS:= ${srcdir} 29d4d90f10SMarcel Moolenaar 30d4d90f10SMarcel Moolenaar# Simple sub-makefiles - we run them as a black box 31d4d90f10SMarcel Moolenaar# keep the list sorted. 32d4d90f10SMarcel MoolenaarSUBFILES= \ 33d4d90f10SMarcel Moolenaar comment \ 34d4d90f10SMarcel Moolenaar cond1 \ 35d4d90f10SMarcel Moolenaar error \ 36d4d90f10SMarcel Moolenaar export \ 37d4d90f10SMarcel Moolenaar export-all \ 381748de26SSimon J. Gerraty export-env \ 39d4d90f10SMarcel Moolenaar doterror \ 40d4d90f10SMarcel Moolenaar dotwait \ 41d4d90f10SMarcel Moolenaar forloop \ 42d4d90f10SMarcel Moolenaar forsubst \ 43d4d90f10SMarcel Moolenaar hash \ 44d4d90f10SMarcel Moolenaar misc \ 45d4d90f10SMarcel Moolenaar moderrs \ 46d4d90f10SMarcel Moolenaar modmatch \ 47d4d90f10SMarcel Moolenaar modmisc \ 48d4d90f10SMarcel Moolenaar modorder \ 49d4d90f10SMarcel Moolenaar modts \ 50d4d90f10SMarcel Moolenaar modword \ 5159a02420SSimon J. Gerraty order \ 52d4d90f10SMarcel Moolenaar phony-end \ 53d4d90f10SMarcel Moolenaar posix \ 54d4d90f10SMarcel Moolenaar qequals \ 55*1bbe5942SSimon J. Gerraty sunshcmd \ 56d4d90f10SMarcel Moolenaar sysv \ 57d4d90f10SMarcel Moolenaar ternary \ 58d4d90f10SMarcel Moolenaar unexport \ 59d4d90f10SMarcel Moolenaar unexport-env \ 60d4d90f10SMarcel Moolenaar varcmd 61d4d90f10SMarcel Moolenaar 62d4d90f10SMarcel Moolenaarall: ${SUBFILES} 63d4d90f10SMarcel Moolenaar 64d4d90f10SMarcel Moolenaarflags.doterror= 6559a02420SSimon J. Gerratyflags.order=-j1 66d4d90f10SMarcel Moolenaar 67d4d90f10SMarcel Moolenaar# the tests are actually done with sub-makes. 68d4d90f10SMarcel Moolenaar.PHONY: ${SUBFILES} 69d4d90f10SMarcel Moolenaar.PRECIOUS: ${SUBFILES} 70d4d90f10SMarcel Moolenaar${SUBFILES}: 71d4d90f10SMarcel Moolenaar -@${.MAKE} ${flags.$@:U-k} -f ${UNIT_TESTS}/$@ 72d4d90f10SMarcel Moolenaar 73d4d90f10SMarcel Moolenaarclean: 74d4d90f10SMarcel Moolenaar rm -f *.out *.fail *.core 75d4d90f10SMarcel Moolenaar 76d4d90f10SMarcel Moolenaar.sinclude <bsd.obj.mk> 77d4d90f10SMarcel Moolenaar 78d4d90f10SMarcel MoolenaarTEST_MAKE?= ${.MAKE} 79d4d90f10SMarcel MoolenaarTOOL_SED?= sed 80d4d90f10SMarcel MoolenaarTOOL_TR?= tr 81d4d90f10SMarcel MoolenaarTOOL_DIFF?= diff 82d4d90f10SMarcel MoolenaarDIFF_FLAGS?= -u 83d4d90f10SMarcel Moolenaar 844639b858SSimon J. Gerraty.if defined(.PARSEDIR) 85d4d90f10SMarcel Moolenaar# ensure consistent results from sort(1) 86d4d90f10SMarcel MoolenaarLC_ALL= C 87d4d90f10SMarcel MoolenaarLANG= C 88d4d90f10SMarcel Moolenaar.export LANG LC_ALL 894639b858SSimon J. Gerraty.endif 90d4d90f10SMarcel Moolenaar 91d4d90f10SMarcel Moolenaar# The driver. 92d4d90f10SMarcel Moolenaar# We always pretend .MAKE was called 'make' 93d4d90f10SMarcel Moolenaar# and strip ${.CURDIR}/ from the output 94d4d90f10SMarcel Moolenaar# and replace anything after 'stopped in' with unit-tests 95d4d90f10SMarcel Moolenaar# so the results can be compared. 96d4d90f10SMarcel Moolenaartest: 97d4d90f10SMarcel Moolenaar @echo "${TEST_MAKE} -f ${MAKEFILE} > ${.TARGET}.out 2>&1" 98d4d90f10SMarcel Moolenaar @cd ${.OBJDIR} && ${TEST_MAKE} -f ${MAKEFILE} 2>&1 | \ 99d4d90f10SMarcel Moolenaar ${TOOL_TR} -d '\015' | \ 10051ee2c1cSSimon J. Gerraty ${TOOL_SED} -e 's,^${TEST_MAKE:T:C/\./\\\./g}[^:]*:,make:,' \ 101d4d90f10SMarcel Moolenaar -e '/stopped/s, /.*, unit-tests,' \ 102d4d90f10SMarcel Moolenaar -e 's,${.CURDIR:C/\./\\\./g}/,,g' \ 103d4d90f10SMarcel Moolenaar -e 's,${UNIT_TESTS:C/\./\\\./g}/,,g' > ${.TARGET}.out || { \ 104d4d90f10SMarcel Moolenaar tail ${.TARGET}.out; mv ${.TARGET}.out ${.TARGET}.fail; exit 1; } 105d4d90f10SMarcel Moolenaar ${TOOL_DIFF} ${DIFF_FLAGS} ${UNIT_TESTS}/${.TARGET}.exp ${.TARGET}.out 106d4d90f10SMarcel Moolenaar 107d4d90f10SMarcel Moolenaaraccept: 108d4d90f10SMarcel Moolenaar mv test.out ${srcdir}/test.exp 109d4d90f10SMarcel Moolenaar 110