Home | History | Annotate | Line # | Download | only in lint1
      1 # $NetBSD: Makefile,v 1.142 2024/06/08 09:09:20 rillig Exp $
      2 
      3 NOMAN=		# defined
      4 
      5 .include <bsd.own.mk>
      6 
      7 ARCHSUBDIR!=	cd ${NETBSDSRCDIR}/usr.bin/xlint/lint1 && ${MAKE} -v ARCHSUBDIR
      8 
      9 TESTSDIR=	${TESTSBASE}/usr.bin/xlint/lint1
     10 
     11 TESTS_SH=	t_integration t_usage
     12 TESTS_SH_SRC_t_integration=	archsubdir.sh t_integration.sh
     13 CLEANFILES+=	archsubdir.sh
     14 CLEANFILES+=	*.exp
     15 
     16 archsubdir.sh:
     17 	@echo archsubdir=${ARCHSUBDIR} >${.TARGET}
     18 
     19 FILESDIR=	${TESTSDIR}
     20 FILES+=		${:!cd ${.CURDIR} && echo *.c *.exp-ln!}
     21 FILES+=		check-expect.lua
     22 
     23 add-test: .PHONY
     24 	@set -eu; \
     25 	test=${NAME:Q}; \
     26 	[ "$$test" ] || { \
     27 		echo "usage: ${MAKE} add-test NAME=<name>"; \
     28 		exit; \
     29 	}; \
     30 	\
     31 	if [ -f "$$test.c" ]; then \
     32 		echo "error: test $$test already exists in $$PWD."; \
     33 		exit 1; \
     34 	fi; \
     35 	\
     36 	echo "=> Adding test $$test"; \
     37 	printf '%s\n' \
     38 		'/*	$$''NetBSD$$	*/' \
     39 		"# 3 \"$$test.c\"" \
     40 		'' \
     41 		'/*' \
     42 		' * TODO: Explain the purpose of the test.' \
     43 		' */' \
     44 		'' \
     45 		'/* lint1-extra-flags: -Z */' \
     46 		'/* lint1-flags: -Z */' \
     47 		'/* lint1-only-if: schar uchar ilp32 lp64 int long ldbl64 ldbl96 ldbl128 */' \
     48 		'' \
     49 		'// TODO: Add some code that passes.' \
     50 		'// TODO: Add some code that fails.' \
     51 	> "$$test.c"; \
     52 	cvs add "$$test.c"; \
     53 	${MAKE} sync-mi
     54 
     55 # Note: only works for adding tests.
     56 # To remove a test, the $$mi file must be edited manually.
     57 sync-mi: .PHONY
     58 	@set -eu;							\
     59 	cd "${MAKEFILE:tA:H}/../../../..";				\
     60 	mi="distrib/sets/lists/tests/mi";				\
     61 	cvs update "$$mi";						\
     62 	fmt="./usr/tests/usr.bin/xlint/lint1/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
     63 	cat "$$mi" > "$$mi.tmp";					\
     64 	printf "$$fmt" ${FILES} >> "$$mi.tmp";				\
     65 	distrib/sets/fmt-list "$$mi.tmp";				\
     66 	mv "$$mi.tmp" "$$mi";						\
     67 	cvs diff "$$mi" || true
     68 
     69 accept: .PHONY
     70 	@archsubdir=${ARCHSUBDIR:Q} sh ./accept.sh ''
     71 
     72 .include <bsd.test.mk>
     73