Makefile revision 1.16
1#	$NetBSD: Makefile,v 1.16 2021/10/16 03:20:12 rillig Exp $
2
3.include <bsd.own.mk>
4
5TESTSDIR=	${TESTSBASE}/usr.bin/indent
6TESTS_SH=	t_errors
7TESTS_SH+=	t_indent
8TESTS_SH+=	t_misc
9TESTS_SH+=	t_options
10
11FILESDIR=	${TESTSDIR}
12FILES=		binary.0
13FILES+=		binary.0.stdout
14FILES+=		block.0
15FILES+=		block.0.stdout
16FILES+=		comment-line-end.0
17FILES+=		comment-line-end.0.stdout
18FILES+=		comments.0
19FILES+=		comments.0.pro
20FILES+=		comments.0.stdout
21FILES+=		declarations.0
22FILES+=		declarations.0.stderr
23FILES+=		declarations.0.stdout
24FILES+=		elsecomment.0
25FILES+=		elsecomment.0.stdout
26FILES+=		elsecomment.0.pro
27FILES+=		f_decls.0
28FILES+=		f_decls.0.stdout
29FILES+=		float.0
30FILES+=		float.0.stdout
31FILES+=		indent_variables.0
32FILES+=		indent_variables.0.pro
33FILES+=		indent_variables.0.stdout
34FILES+=		label.0
35FILES+=		label.0.stdout
36FILES+=		label.0.pro
37FILES+=		lex.0
38FILES+=		lex.0.pro
39FILES+=		lex.0.stdout
40FILES+=		lex_char.0
41FILES+=		lex_char.0.pro
42FILES+=		lex_char.0.stdout
43FILES+=		lex_string.0
44FILES+=		lex_string.0.pro
45FILES+=		lex_string.0.stdout
46FILES+=		lineno.0
47FILES+=		lineno.0.pro
48FILES+=		lineno.0.stdout
49FILES+=		list_head.0
50FILES+=		list_head.0.stdout
51FILES+=		ncs.0
52FILES+=		ncs.0.stdout
53FILES+=		ncs.0.pro
54FILES+=		offsetof.0
55FILES+=		offsetof.0.stdout
56FILES+=		opt--version.0
57FILES+=		opt--version.0.pro
58FILES+=		opt--version.0.stdout
59FILES+=		opt-P.0
60FILES+=		opt-P.0.pro
61FILES+=		opt-P.0.stdout
62FILES+=		opt-T.0
63FILES+=		opt-T.0.pro
64FILES+=		opt-T.0.stdout
65FILES+=		opt-U.0
66FILES+=		opt-U.0.list
67FILES+=		opt-U.0.pro
68FILES+=		opt-U.0.stdout
69FILES+=		opt-bap+sob.0
70FILES+=		opt-bap+sob.0.pro
71FILES+=		opt-bap+sob.0.stdout
72FILES+=		opt-bl.0
73FILES+=		opt-bl.0.pro
74FILES+=		opt-bl.0.stdout
75FILES+=		opt-br.0
76FILES+=		opt-br.0.pro
77FILES+=		opt-br.0.stdout
78FILES+=		opt-c.0
79FILES+=		opt-c.0.pro
80FILES+=		opt-c.0.stdout
81FILES+=		opt-cd.0
82FILES+=		opt-cd.0.pro
83FILES+=		opt-cd.0.stdout
84FILES+=		opt-ci.0
85FILES+=		opt-ci.0.pro
86FILES+=		opt-ci.0.stdout
87FILES+=		opt-cli.0
88FILES+=		opt-cli.0.pro
89FILES+=		opt-cli.0.stdout
90FILES+=		opt-d.0
91FILES+=		opt-d.0.pro
92FILES+=		opt-d.0.stdout
93FILES+=		opt-di.0
94FILES+=		opt-di.0.pro
95FILES+=		opt-di.0.stdout
96FILES+=		opt-i.0
97FILES+=		opt-i.0.pro
98FILES+=		opt-i.0.stdout
99FILES+=		opt-l.0
100FILES+=		opt-l.0.pro
101FILES+=		opt-l.0.stdout
102FILES+=		opt-lc.0
103FILES+=		opt-lc.0.pro
104FILES+=		opt-lc.0.stdout
105FILES+=		opt-ldi.0
106FILES+=		opt-ldi.0.pro
107FILES+=		opt-ldi.0.stdout
108FILES+=		opt-npro.0
109FILES+=		opt-npro.0.pro
110FILES+=		opt-npro.0.stdout
111FILES+=		opt-ta.0
112FILES+=		opt-ta.0.pro
113FILES+=		opt-ta.0.stdout
114FILES+=		opt-ts.0
115FILES+=		opt-ts.0.pro
116FILES+=		opt-ts.0.stdout
117FILES+=		opt.0
118FILES+=		opt.0.pro
119FILES+=		opt.0.stdout
120FILES+=		opt_bacc.c
121FILES+=		opt_bad.c
122FILES+=		opt_badp.c
123FILES+=		opt_bap.c
124FILES+=		opt_bbb.c
125FILES+=		opt_bc.c
126FILES+=		opt_bs.c
127FILES+=		opt_cdb.c
128FILES+=		opt_ce.c
129FILES+=		opt_cs.c
130FILES+=		opt_dj.c
131FILES+=		opt_eei.c
132FILES+=		opt_ei.c
133FILES+=		opt_fbs.c
134FILES+=		opt_fc1.c
135FILES+=		opt_fcb.c
136FILES+=		opt_ip.c
137FILES+=		opt_lp.c
138FILES+=		opt_lpl.c
139FILES+=		opt_pcs.c
140FILES+=		opt_psl.c
141FILES+=		opt_sc.c
142FILES+=		opt_sob.c
143FILES+=		opt_ut.c
144FILES+=		opt_v.c
145FILES+=		parens.0
146FILES+=		parens.0.stdout
147FILES+=		parens.0.pro
148FILES+=		pcs.0
149FILES+=		pcs.0.stdout
150FILES+=		pcs.0.pro
151FILES+=		ps_ind_level.0
152FILES+=		ps_ind_level.0.pro
153FILES+=		ps_ind_level.0.stdout
154FILES+=		cs.0
155FILES+=		cs.0.stdout
156FILES+=		cs.0.pro
157FILES+=		struct.0
158FILES+=		struct.0.stdout
159FILES+=		surplusbad.0
160FILES+=		surplusbad.0.stdout
161FILES+=		surplusbad.0.pro
162FILES+=		token-binary_op.0
163FILES+=		token-binary_op.0.pro
164FILES+=		token-binary_op.0.stdout
165FILES+=		token-case_label.0
166FILES+=		token-case_label.0.pro
167FILES+=		token-case_label.0.stdout
168FILES+=		token-colon.0
169FILES+=		token-colon.0.pro
170FILES+=		token-colon.0.stdout
171FILES+=		token-comma.0
172FILES+=		token-comma.0.pro
173FILES+=		token-comma.0.stdout
174FILES+=		token-comment.0
175FILES+=		token-comment.0.pro
176FILES+=		token-comment.0.stdout
177FILES+=		token-decl.0
178FILES+=		token-decl.0.pro
179FILES+=		token-decl.0.stdout
180FILES+=		token-do_stmt.0
181FILES+=		token-do_stmt.0.pro
182FILES+=		token-do_stmt.0.stdout
183FILES+=		token-end_of_file.0
184FILES+=		token-end_of_file.0.pro
185FILES+=		token-end_of_file.0.stdout
186FILES+=		token-for_exprs.0
187FILES+=		token-for_exprs.0.pro
188FILES+=		token-for_exprs.0.stdout
189FILES+=		token-form_feed.0
190FILES+=		token-form_feed.0.pro
191FILES+=		token-form_feed.0.stdout
192FILES+=		token-funcname.0
193FILES+=		token-funcname.0.pro
194FILES+=		token-funcname.0.stdout
195FILES+=		token-ident.0
196FILES+=		token-ident.0.pro
197FILES+=		token-ident.0.stdout
198FILES+=		token-if_expr.0
199FILES+=		token-if_expr.0.pro
200FILES+=		token-if_expr.0.stdout
201FILES+=		token-if_expr_stmt.0
202FILES+=		token-if_expr_stmt.0.pro
203FILES+=		token-if_expr_stmt.0.stdout
204FILES+=		token-if_expr_stmt_else.0
205FILES+=		token-if_expr_stmt_else.0.pro
206FILES+=		token-if_expr_stmt_else.0.stdout
207FILES+=		token-keyword_do.0
208FILES+=		token-keyword_do.0.pro
209FILES+=		token-keyword_do.0.stdout
210FILES+=		token-keyword_do_else.0
211FILES+=		token-keyword_do_else.0.pro
212FILES+=		token-keyword_do_else.0.stdout
213FILES+=		token-keyword_else.0
214FILES+=		token-keyword_else.0.pro
215FILES+=		token-keyword_else.0.stdout
216FILES+=		token-keyword_for_if_while.0
217FILES+=		token-keyword_for_if_while.0.pro
218FILES+=		token-keyword_for_if_while.0.stdout
219FILES+=		token-keyword_struct_union_enum.0
220FILES+=		token-keyword_struct_union_enum.0.pro
221FILES+=		token-keyword_struct_union_enum.0.stdout
222FILES+=		token-lbrace.0
223FILES+=		token-lbrace.0.pro
224FILES+=		token-lbrace.0.stdout
225FILES+=		token-lparen.0
226FILES+=		token-lparen.0.pro
227FILES+=		token-lparen.0.stdout
228FILES+=		token-newline.0
229FILES+=		token-newline.0.pro
230FILES+=		token-newline.0.stdout
231FILES+=		token-period.0
232FILES+=		token-period.0.pro
233FILES+=		token-period.0.stdout
234FILES+=		token-postfix_op.0
235FILES+=		token-postfix_op.0.pro
236FILES+=		token-postfix_op.0.stdout
237FILES+=		token-preprocessing.0
238FILES+=		token-preprocessing.0.pro
239FILES+=		token-preprocessing.0.stdout
240FILES+=		token-question.0
241FILES+=		token-question.0.pro
242FILES+=		token-question.0.stdout
243FILES+=		token-rbrace.0
244FILES+=		token-rbrace.0.pro
245FILES+=		token-rbrace.0.stdout
246FILES+=		token-rparen.0
247FILES+=		token-rparen.0.pro
248FILES+=		token-rparen.0.stdout
249FILES+=		token-semicolon.0
250FILES+=		token-semicolon.0.pro
251FILES+=		token-semicolon.0.stdout
252FILES+=		token-stmt.0
253FILES+=		token-stmt.0.pro
254FILES+=		token-stmt.0.stdout
255FILES+=		token-stmt_list.0
256FILES+=		token-stmt_list.0.pro
257FILES+=		token-stmt_list.0.stdout
258FILES+=		token-storage_class.0
259FILES+=		token-storage_class.0.pro
260FILES+=		token-storage_class.0.stdout
261FILES+=		token-string_prefix.0
262FILES+=		token-string_prefix.0.pro
263FILES+=		token-string_prefix.0.stdout
264FILES+=		token-switch_expr.0
265FILES+=		token-switch_expr.0.pro
266FILES+=		token-switch_expr.0.stdout
267FILES+=		token-type_def.0
268FILES+=		token-type_def.0.pro
269FILES+=		token-type_def.0.stdout
270FILES+=		token-unary_op.0
271FILES+=		token-unary_op.0.pro
272FILES+=		token-unary_op.0.stdout
273FILES+=		token-while_expr.0
274FILES+=		token-while_expr.0.pro
275FILES+=		token-while_expr.0.stdout
276FILES+=		types_from_file.0
277FILES+=		types_from_file.0.stdout
278FILES+=		types_from_file.0.list
279FILES+=		types_from_file.0.pro
280FILES+=		wchar.0
281FILES+=		wchar.0.stdout
282
283add-test: .PHONY
284	@set -eu; \
285	test=${NAME:Q}; \
286	[ "$$test" ] || { \
287		echo "usage: ${MAKE} add-test NAME=<name>"; \
288		exit; \
289	}; \
290	\
291	if [ -f "$$test" ]; then \
292		echo "error: test $$test already exists." 1>&2; \
293		exit 1; \
294	fi; \
295	\
296	echo "=> Adding test $$test"; \
297	printf '%s\n' \
298		'/* $$''NetBSD$$ */' \
299		'/* $$''FreeBSD$$ */' \
300		'' \
301		'/*' \
302		' * TODO: Explain the purpose of the test.' \
303		' */' \
304		'' \
305		'// TODO: Add some code that passes.' \
306	> "$$test"; \
307	printf '%s\n' \
308		'/* $$''NetBSD$$ */' \
309		'/* $$''FreeBSD$$ */' \
310		'' \
311		'/*' \
312		' * TODO: Explain the command line options of the test.' \
313		' */' \
314		'' \
315		'/* TODO: Add some command line options */' \
316	> "$$test.pro"; \
317	cat < "$$test" > "$$test.stdout"; \
318	cvs add "$$test" "$$test.pro" "$$test.stdout"; \
319	printf '%s\n' \
320		'/^FILES+=/i' \
321		"FILES+=		$$test" \
322		"FILES+=		$$test.pro" \
323		"FILES+=		$$test.stdout" \
324		'.' 'w' 'q' \
325	| ed Makefile; \
326	${MAKE} sync-mi
327
328# Note: only works for adding tests.
329# To remove a test, the $$mi file must be edited manually.
330sync-mi: .PHONY
331	@set -eu;							\
332	cd "${MAKEFILE:tA:H}/../../..";					\
333	mi="distrib/sets/lists/tests/mi";				\
334	cvs update "$$mi";						\
335	fmt="./usr/tests/usr.bin/indent/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
336	cat "$$mi" > "$$mi.tmp";					\
337	printf "$$fmt" ${FILES:M${NAME}*} >> "$$mi.tmp";		\
338	distrib/sets/fmt-list "$$mi.tmp";				\
339	mv "$$mi.tmp" "$$mi";						\
340	cvs diff "$$mi" || true
341
342.include <bsd.test.mk>
343