xref: /netbsd-src/tests/usr.bin/xlint/lint1/Makefile (revision 6f6b09ef952b87a8258c163a7c779f0a5bb252c4)
1# $NetBSD: Makefile,v 1.142 2024/06/08 09:09:20 rillig Exp $
2
3NOMAN=		# defined
4
5.include <bsd.own.mk>
6
7ARCHSUBDIR!=	cd ${NETBSDSRCDIR}/usr.bin/xlint/lint1 && ${MAKE} -v ARCHSUBDIR
8
9TESTSDIR=	${TESTSBASE}/usr.bin/xlint/lint1
10
11TESTS_SH=	t_integration t_usage
12TESTS_SH_SRC_t_integration=	archsubdir.sh t_integration.sh
13CLEANFILES+=	archsubdir.sh
14CLEANFILES+=	*.exp
15
16archsubdir.sh:
17	@echo archsubdir=${ARCHSUBDIR} >${.TARGET}
18
19FILESDIR=	${TESTSDIR}
20FILES+=		${:!cd ${.CURDIR} && echo *.c *.exp-ln!}
21FILES+=		check-expect.lua
22
23add-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.
57sync-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
69accept: .PHONY
70	@archsubdir=${ARCHSUBDIR:Q} sh ./accept.sh ''
71
72.include <bsd.test.mk>
73