xref: /netbsd-src/tests/usr.bin/indent/Makefile (revision abc3274d3a58885e4acbaa1be9def415f1e99b99)
1#	$NetBSD: Makefile,v 1.49 2023/06/16 23:51:32 rillig Exp $
2
3.include <bsd.own.mk>
4
5TESTSDIR=	${TESTSBASE}/usr.bin/indent
6TESTS_SH=	t_errors
7TESTS_SH+=	t_misc
8TESTS_SH+=	t_options
9
10FILESDIR=	${TESTSDIR}
11FILES+=		edge_cases.c
12FILES+=		fmt_block.c
13FILES+=		fmt_decl.c
14FILES+=		fmt_else_comment.c
15FILES+=		fmt_expr.c
16FILES+=		fmt_init.c
17FILES+=		indent_off_on.c
18FILES+=		label.c
19FILES+=		lex_char.c
20FILES+=		lex_ident.c
21FILES+=		lex_number.c
22FILES+=		lex_string.c
23FILES+=		lsym_binary_op.c
24FILES+=		lsym_case_label.c
25FILES+=		lsym_colon.c
26FILES+=		lsym_comma.c
27FILES+=		lsym_comment.c
28FILES+=		lsym_do.c
29FILES+=		lsym_else.c
30FILES+=		lsym_eof.c
31FILES+=		lsym_for.c
32FILES+=		lsym_form_feed.c
33FILES+=		lsym_funcname.c
34FILES+=		lsym_if.c
35FILES+=		lsym_lbrace.c
36FILES+=		lsym_lparen_or_lbracket.c
37FILES+=		lsym_newline.c
38FILES+=		lsym_offsetof.c
39FILES+=		lsym_period.c
40FILES+=		lsym_postfix_op.c
41FILES+=		lsym_preprocessing.c
42FILES+=		lsym_question.c
43FILES+=		lsym_rbrace.c
44FILES+=		lsym_return.c
45FILES+=		lsym_rparen_or_rbracket.c
46FILES+=		lsym_semicolon.c
47FILES+=		lsym_sizeof.c
48FILES+=		lsym_storage_class.c
49FILES+=		lsym_switch.c
50FILES+=		lsym_tag.c
51FILES+=		lsym_type.c
52FILES+=		lsym_typedef.c
53FILES+=		lsym_unary_op.c
54FILES+=		lsym_while.c
55FILES+=		lsym_word.c
56FILES+=		opt_P.c
57FILES+=		opt_T.c
58FILES+=		opt_bacc.c
59FILES+=		opt_bad.c
60FILES+=		opt_badp.c
61FILES+=		opt_bap.c
62FILES+=		opt_bap_sob.c
63FILES+=		opt_bbb.c
64FILES+=		opt_bc.c
65FILES+=		opt_bl_br.c
66FILES+=		opt_bs.c
67FILES+=		opt_c.c
68FILES+=		opt_cd.c
69FILES+=		opt_cdb.c
70FILES+=		opt_ce.c
71FILES+=		opt_ci.c
72FILES+=		opt_cli.c
73FILES+=		opt_cs.c
74FILES+=		opt_d.c
75FILES+=		opt_di.c
76FILES+=		opt_dj.c
77FILES+=		opt_eei.c
78FILES+=		opt_ei.c
79FILES+=		opt_fbs.c
80FILES+=		opt_fc1.c
81FILES+=		opt_fcb.c
82FILES+=		opt_i.c
83FILES+=		opt_ip.c
84FILES+=		opt_l.c
85FILES+=		opt_lc.c
86FILES+=		opt_ldi.c
87FILES+=		opt_lp.c
88FILES+=		opt_lpl.c
89FILES+=		opt_pcs.c
90FILES+=		opt_psl.c
91FILES+=		opt_sc.c
92FILES+=		opt_sob.c
93FILES+=		opt_ta.c
94FILES+=		opt_ts.c
95FILES+=		opt_ut.c
96FILES+=		opt_v.c
97FILES+=		opt_version.c
98FILES+=		ps_ind_level.c
99FILES+=		psym_decl.c
100FILES+=		psym_do.c
101FILES+=		psym_do_stmt.c
102FILES+=		psym_else.c
103FILES+=		psym_for_exprs.c
104FILES+=		psym_if_expr.c
105FILES+=		psym_if_expr_stmt.c
106FILES+=		psym_if_expr_stmt_else.c
107FILES+=		psym_lbrace.c
108FILES+=		psym_rbrace.c
109FILES+=		psym_semicolon.c
110FILES+=		psym_stmt.c
111FILES+=		psym_switch_expr.c
112FILES+=		psym_while_expr.c
113FILES+=		t_options.lua
114
115add-test: .PHONY
116	@set -eu; \
117	test=${NAME:Q}.c; \
118	if [ "$$test" = ".c" ]; then \
119		echo "usage: ${MAKE} add-test NAME=<name>"; \
120		exit; \
121	fi; \
122	\
123	if [ -f "$$test" ]; then \
124		echo "error: test $$test already exists." 1>&2; \
125		exit 1; \
126	fi; \
127	\
128	echo "=> Adding test $$test"; \
129	printf '%s\n' \
130		'/* $$''NetBSD$$ */' \
131		'' \
132		'/*' \
133		' * TODO: Explain the purpose of the test.' \
134		' */' \
135		'' \
136		'//indent input' \
137		'// TODO: add input' \
138		'//indent end' \
139		'' \
140		'//indent run [-options]' \
141		'// TODO: add expected output' \
142		'//indent end' \
143	> "$$test"; \
144	cvs add "$$test"; \
145	printf '%s\n' \
146		'/^FILES+=/i' \
147		"FILES+=		$$test" \
148		'.' 'w' 'q' \
149	| ed Makefile; \
150	${MAKE} sync-mi
151
152# Note: only works for adding tests.
153# To remove a test, the $$mi file must be edited manually.
154sync-mi: .PHONY
155	@set -eu;							\
156	cd "${MAKEFILE:tA:H}/../../..";					\
157	mi="distrib/sets/lists/tests/mi";				\
158	cvs update "$$mi";						\
159	fmt="./usr/tests/usr.bin/indent/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
160	cat "$$mi" > "$$mi.tmp";					\
161	printf "$$fmt" ${FILES:M${NAME}*} >> "$$mi.tmp";		\
162	distrib/sets/fmt-list "$$mi.tmp";				\
163	mv "$$mi.tmp" "$$mi";						\
164	cvs diff "$$mi" || true
165
166.include <bsd.test.mk>
167