Makefile revision 1.15
1#	$NetBSD: Makefile,v 1.15 2021/10/14 17:42:13 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
9
10FILESDIR=	${TESTSDIR}
11FILES=		binary.0
12FILES+=		binary.0.stdout
13FILES+=		block.0
14FILES+=		block.0.stdout
15FILES+=		comment-line-end.0
16FILES+=		comment-line-end.0.stdout
17FILES+=		comments.0
18FILES+=		comments.0.pro
19FILES+=		comments.0.stdout
20FILES+=		declarations.0
21FILES+=		declarations.0.stderr
22FILES+=		declarations.0.stdout
23FILES+=		elsecomment.0
24FILES+=		elsecomment.0.stdout
25FILES+=		elsecomment.0.pro
26FILES+=		f_decls.0
27FILES+=		f_decls.0.stdout
28FILES+=		float.0
29FILES+=		float.0.stdout
30FILES+=		indent_variables.0
31FILES+=		indent_variables.0.pro
32FILES+=		indent_variables.0.stdout
33FILES+=		label.0
34FILES+=		label.0.stdout
35FILES+=		label.0.pro
36FILES+=		lex.0
37FILES+=		lex.0.pro
38FILES+=		lex.0.stdout
39FILES+=		lex_char.0
40FILES+=		lex_char.0.pro
41FILES+=		lex_char.0.stdout
42FILES+=		lex_string.0
43FILES+=		lex_string.0.pro
44FILES+=		lex_string.0.stdout
45FILES+=		lineno.0
46FILES+=		lineno.0.pro
47FILES+=		lineno.0.stdout
48FILES+=		list_head.0
49FILES+=		list_head.0.stdout
50FILES+=		ncs.0
51FILES+=		ncs.0.stdout
52FILES+=		ncs.0.pro
53FILES+=		offsetof.0
54FILES+=		offsetof.0.stdout
55FILES+=		opt--version.0
56FILES+=		opt--version.0.pro
57FILES+=		opt--version.0.stdout
58FILES+=		opt-P.0
59FILES+=		opt-P.0.pro
60FILES+=		opt-P.0.stdout
61FILES+=		opt-T.0
62FILES+=		opt-T.0.pro
63FILES+=		opt-T.0.stdout
64FILES+=		opt-U.0
65FILES+=		opt-U.0.list
66FILES+=		opt-U.0.pro
67FILES+=		opt-U.0.stdout
68FILES+=		opt-bacc.0
69FILES+=		opt-bacc.0.pro
70FILES+=		opt-bacc.0.stdout
71FILES+=		opt-bad.0
72FILES+=		opt-bad.0.pro
73FILES+=		opt-bad.0.stdout
74FILES+=		opt-badp.0
75FILES+=		opt-badp.0.pro
76FILES+=		opt-badp.0.stdout
77FILES+=		opt-bap+sob.0
78FILES+=		opt-bap+sob.0.pro
79FILES+=		opt-bap+sob.0.stdout
80FILES+=		opt-bap.0
81FILES+=		opt-bap.0.pro
82FILES+=		opt-bap.0.stdout
83FILES+=		opt-bbb.0
84FILES+=		opt-bbb.0.pro
85FILES+=		opt-bbb.0.stdout
86FILES+=		opt-bc.0
87FILES+=		opt-bc.0.pro
88FILES+=		opt-bc.0.stdout
89FILES+=		opt-bl.0
90FILES+=		opt-bl.0.pro
91FILES+=		opt-bl.0.stdout
92FILES+=		opt-br.0
93FILES+=		opt-br.0.pro
94FILES+=		opt-br.0.stdout
95FILES+=		opt-bs.0
96FILES+=		opt-bs.0.pro
97FILES+=		opt-bs.0.stdout
98FILES+=		opt-c.0
99FILES+=		opt-c.0.pro
100FILES+=		opt-c.0.stdout
101FILES+=		opt-cd.0
102FILES+=		opt-cd.0.pro
103FILES+=		opt-cd.0.stdout
104FILES+=		opt-cdb.0
105FILES+=		opt-cdb.0.pro
106FILES+=		opt-cdb.0.stdout
107FILES+=		opt-ce.0
108FILES+=		opt-ce.0.pro
109FILES+=		opt-ce.0.stdout
110FILES+=		opt-ci.0
111FILES+=		opt-ci.0.pro
112FILES+=		opt-ci.0.stdout
113FILES+=		opt-cli.0
114FILES+=		opt-cli.0.pro
115FILES+=		opt-cli.0.stdout
116FILES+=		opt-cs.0
117FILES+=		opt-cs.0.pro
118FILES+=		opt-cs.0.stdout
119FILES+=		opt-d.0
120FILES+=		opt-d.0.pro
121FILES+=		opt-d.0.stdout
122FILES+=		opt-di.0
123FILES+=		opt-di.0.pro
124FILES+=		opt-di.0.stdout
125FILES+=		opt-dj.0
126FILES+=		opt-dj.0.pro
127FILES+=		opt-dj.0.stdout
128FILES+=		opt-eei.0
129FILES+=		opt-eei.0.pro
130FILES+=		opt-eei.0.stdout
131FILES+=		opt-ei.0
132FILES+=		opt-ei.0.pro
133FILES+=		opt-ei.0.stdout
134FILES+=		opt-fbs.0
135FILES+=		opt-fbs.0.pro
136FILES+=		opt-fbs.0.stdout
137FILES+=		opt-fc1.0
138FILES+=		opt-fc1.0.pro
139FILES+=		opt-fc1.0.stdout
140FILES+=		opt-fcb.0
141FILES+=		opt-fcb.0.pro
142FILES+=		opt-fcb.0.stdout
143FILES+=		opt-i.0
144FILES+=		opt-i.0.pro
145FILES+=		opt-i.0.stdout
146FILES+=		opt-ip.0
147FILES+=		opt-ip.0.pro
148FILES+=		opt-ip.0.stdout
149FILES+=		opt-l.0
150FILES+=		opt-l.0.pro
151FILES+=		opt-l.0.stdout
152FILES+=		opt-lc.0
153FILES+=		opt-lc.0.pro
154FILES+=		opt-lc.0.stdout
155FILES+=		opt-ldi.0
156FILES+=		opt-ldi.0.pro
157FILES+=		opt-ldi.0.stdout
158FILES+=		opt-lp.0
159FILES+=		opt-lp.0.pro
160FILES+=		opt-lp.0.stdout
161FILES+=		opt-lpl.0
162FILES+=		opt-lpl.0.pro
163FILES+=		opt-lpl.0.stdout
164FILES+=		opt-nbacc.0
165FILES+=		opt-nbacc.0.pro
166FILES+=		opt-nbacc.0.stdout
167FILES+=		opt-nbad.0
168FILES+=		opt-nbad.0.pro
169FILES+=		opt-nbad.0.stdout
170FILES+=		opt-nbadp.0
171FILES+=		opt-nbadp.0.pro
172FILES+=		opt-nbadp.0.stdout
173FILES+=		opt-nbap.0
174FILES+=		opt-nbap.0.pro
175FILES+=		opt-nbap.0.stdout
176FILES+=		opt-nbbb.0
177FILES+=		opt-nbbb.0.pro
178FILES+=		opt-nbbb.0.stdout
179FILES+=		opt-nbc.0
180FILES+=		opt-nbc.0.pro
181FILES+=		opt-nbc.0.stdout
182FILES+=		opt-nbs.0
183FILES+=		opt-nbs.0.pro
184FILES+=		opt-nbs.0.stdout
185FILES+=		opt-ncdb.0
186FILES+=		opt-ncdb.0.pro
187FILES+=		opt-ncdb.0.stdout
188FILES+=		opt-nce.0
189FILES+=		opt-nce.0.pro
190FILES+=		opt-nce.0.stdout
191FILES+=		opt-ncs.0
192FILES+=		opt-ncs.0.pro
193FILES+=		opt-ncs.0.stdout
194FILES+=		opt-ndj.0
195FILES+=		opt-ndj.0.pro
196FILES+=		opt-ndj.0.stdout
197FILES+=		opt-neei.0
198FILES+=		opt-neei.0.pro
199FILES+=		opt-neei.0.stdout
200FILES+=		opt-nei.0
201FILES+=		opt-nei.0.pro
202FILES+=		opt-nei.0.stdout
203FILES+=		opt-nfbs.0
204FILES+=		opt-nfbs.0.pro
205FILES+=		opt-nfbs.0.stdout
206FILES+=		opt-nfc1.0
207FILES+=		opt-nfc1.0.pro
208FILES+=		opt-nfc1.0.stdout
209FILES+=		opt-nfcb.0
210FILES+=		opt-nfcb.0.pro
211FILES+=		opt-nfcb.0.stdout
212FILES+=		opt-nip.0
213FILES+=		opt-nip.0.pro
214FILES+=		opt-nip.0.stdout
215FILES+=		opt-nlp.0
216FILES+=		opt-nlp.0.pro
217FILES+=		opt-nlp.0.stdout
218FILES+=		opt-nlpl.0
219FILES+=		opt-nlpl.0.pro
220FILES+=		opt-nlpl.0.stdout
221FILES+=		opt-npcs.0
222FILES+=		opt-npcs.0.pro
223FILES+=		opt-npcs.0.stdout
224FILES+=		opt-npro.0
225FILES+=		opt-npro.0.pro
226FILES+=		opt-npro.0.stdout
227FILES+=		opt-npsl.0
228FILES+=		opt-npsl.0.pro
229FILES+=		opt-npsl.0.stdout
230FILES+=		opt-nsc.0
231FILES+=		opt-nsc.0.pro
232FILES+=		opt-nsc.0.stdout
233FILES+=		opt-nsob.0
234FILES+=		opt-nsob.0.pro
235FILES+=		opt-nsob.0.stdout
236FILES+=		opt-nut.0
237FILES+=		opt-nut.0.pro
238FILES+=		opt-nut.0.stdout
239FILES+=		opt-nv.0
240FILES+=		opt-nv.0.pro
241FILES+=		opt-nv.0.stdout
242FILES+=		opt-pcs.0
243FILES+=		opt-pcs.0.pro
244FILES+=		opt-pcs.0.stdout
245FILES+=		opt-psl.0
246FILES+=		opt-psl.0.pro
247FILES+=		opt-psl.0.stdout
248FILES+=		opt-sc.0
249FILES+=		opt-sc.0.pro
250FILES+=		opt-sc.0.stdout
251FILES+=		opt-sob.0
252FILES+=		opt-sob.0.pro
253FILES+=		opt-sob.0.stdout
254FILES+=		opt-ta.0
255FILES+=		opt-ta.0.pro
256FILES+=		opt-ta.0.stdout
257FILES+=		opt-ts.0
258FILES+=		opt-ts.0.pro
259FILES+=		opt-ts.0.stdout
260FILES+=		opt-ut.0
261FILES+=		opt-ut.0.pro
262FILES+=		opt-ut.0.stdout
263FILES+=		opt-v.0
264FILES+=		opt-v.0.pro
265FILES+=		opt-v.0.stdout
266FILES+=		opt.0
267FILES+=		opt.0.pro
268FILES+=		opt.0.stdout
269FILES+=		parens.0
270FILES+=		parens.0.stdout
271FILES+=		parens.0.pro
272FILES+=		pcs.0
273FILES+=		pcs.0.stdout
274FILES+=		pcs.0.pro
275FILES+=		ps_ind_level.0
276FILES+=		ps_ind_level.0.pro
277FILES+=		ps_ind_level.0.stdout
278FILES+=		cs.0
279FILES+=		cs.0.stdout
280FILES+=		cs.0.pro
281FILES+=		struct.0
282FILES+=		struct.0.stdout
283FILES+=		surplusbad.0
284FILES+=		surplusbad.0.stdout
285FILES+=		surplusbad.0.pro
286FILES+=		token-binary_op.0
287FILES+=		token-binary_op.0.pro
288FILES+=		token-binary_op.0.stdout
289FILES+=		token-case_label.0
290FILES+=		token-case_label.0.pro
291FILES+=		token-case_label.0.stdout
292FILES+=		token-colon.0
293FILES+=		token-colon.0.pro
294FILES+=		token-colon.0.stdout
295FILES+=		token-comma.0
296FILES+=		token-comma.0.pro
297FILES+=		token-comma.0.stdout
298FILES+=		token-comment.0
299FILES+=		token-comment.0.pro
300FILES+=		token-comment.0.stdout
301FILES+=		token-decl.0
302FILES+=		token-decl.0.pro
303FILES+=		token-decl.0.stdout
304FILES+=		token-do_stmt.0
305FILES+=		token-do_stmt.0.pro
306FILES+=		token-do_stmt.0.stdout
307FILES+=		token-end_of_file.0
308FILES+=		token-end_of_file.0.pro
309FILES+=		token-end_of_file.0.stdout
310FILES+=		token-for_exprs.0
311FILES+=		token-for_exprs.0.pro
312FILES+=		token-for_exprs.0.stdout
313FILES+=		token-form_feed.0
314FILES+=		token-form_feed.0.pro
315FILES+=		token-form_feed.0.stdout
316FILES+=		token-funcname.0
317FILES+=		token-funcname.0.pro
318FILES+=		token-funcname.0.stdout
319FILES+=		token-ident.0
320FILES+=		token-ident.0.pro
321FILES+=		token-ident.0.stdout
322FILES+=		token-if_expr.0
323FILES+=		token-if_expr.0.pro
324FILES+=		token-if_expr.0.stdout
325FILES+=		token-if_expr_stmt.0
326FILES+=		token-if_expr_stmt.0.pro
327FILES+=		token-if_expr_stmt.0.stdout
328FILES+=		token-if_expr_stmt_else.0
329FILES+=		token-if_expr_stmt_else.0.pro
330FILES+=		token-if_expr_stmt_else.0.stdout
331FILES+=		token-keyword_do.0
332FILES+=		token-keyword_do.0.pro
333FILES+=		token-keyword_do.0.stdout
334FILES+=		token-keyword_do_else.0
335FILES+=		token-keyword_do_else.0.pro
336FILES+=		token-keyword_do_else.0.stdout
337FILES+=		token-keyword_else.0
338FILES+=		token-keyword_else.0.pro
339FILES+=		token-keyword_else.0.stdout
340FILES+=		token-keyword_for_if_while.0
341FILES+=		token-keyword_for_if_while.0.pro
342FILES+=		token-keyword_for_if_while.0.stdout
343FILES+=		token-keyword_struct_union_enum.0
344FILES+=		token-keyword_struct_union_enum.0.pro
345FILES+=		token-keyword_struct_union_enum.0.stdout
346FILES+=		token-lbrace.0
347FILES+=		token-lbrace.0.pro
348FILES+=		token-lbrace.0.stdout
349FILES+=		token-lparen.0
350FILES+=		token-lparen.0.pro
351FILES+=		token-lparen.0.stdout
352FILES+=		token-newline.0
353FILES+=		token-newline.0.pro
354FILES+=		token-newline.0.stdout
355FILES+=		token-period.0
356FILES+=		token-period.0.pro
357FILES+=		token-period.0.stdout
358FILES+=		token-postfix_op.0
359FILES+=		token-postfix_op.0.pro
360FILES+=		token-postfix_op.0.stdout
361FILES+=		token-preprocessing.0
362FILES+=		token-preprocessing.0.pro
363FILES+=		token-preprocessing.0.stdout
364FILES+=		token-question.0
365FILES+=		token-question.0.pro
366FILES+=		token-question.0.stdout
367FILES+=		token-rbrace.0
368FILES+=		token-rbrace.0.pro
369FILES+=		token-rbrace.0.stdout
370FILES+=		token-rparen.0
371FILES+=		token-rparen.0.pro
372FILES+=		token-rparen.0.stdout
373FILES+=		token-semicolon.0
374FILES+=		token-semicolon.0.pro
375FILES+=		token-semicolon.0.stdout
376FILES+=		token-stmt.0
377FILES+=		token-stmt.0.pro
378FILES+=		token-stmt.0.stdout
379FILES+=		token-stmt_list.0
380FILES+=		token-stmt_list.0.pro
381FILES+=		token-stmt_list.0.stdout
382FILES+=		token-storage_class.0
383FILES+=		token-storage_class.0.pro
384FILES+=		token-storage_class.0.stdout
385FILES+=		token-string_prefix.0
386FILES+=		token-string_prefix.0.pro
387FILES+=		token-string_prefix.0.stdout
388FILES+=		token-switch_expr.0
389FILES+=		token-switch_expr.0.pro
390FILES+=		token-switch_expr.0.stdout
391FILES+=		token-type_def.0
392FILES+=		token-type_def.0.pro
393FILES+=		token-type_def.0.stdout
394FILES+=		token-unary_op.0
395FILES+=		token-unary_op.0.pro
396FILES+=		token-unary_op.0.stdout
397FILES+=		token-while_expr.0
398FILES+=		token-while_expr.0.pro
399FILES+=		token-while_expr.0.stdout
400FILES+=		types_from_file.0
401FILES+=		types_from_file.0.stdout
402FILES+=		types_from_file.0.list
403FILES+=		types_from_file.0.pro
404FILES+=		wchar.0
405FILES+=		wchar.0.stdout
406
407add-test: .PHONY
408	@set -eu; \
409	test=${NAME:Q}; \
410	[ "$$test" ] || { \
411		echo "usage: ${MAKE} add-test NAME=<name>"; \
412		exit; \
413	}; \
414	\
415	if [ -f "$$test" ]; then \
416		echo "error: test $$test already exists." 1>&2; \
417		exit 1; \
418	fi; \
419	\
420	echo "=> Adding test $$test"; \
421	printf '%s\n' \
422		'/* $$''NetBSD$$ */' \
423		'/* $$''FreeBSD$$ */' \
424		'' \
425		'/*' \
426		' * TODO: Explain the purpose of the test.' \
427		' */' \
428		'' \
429		'// TODO: Add some code that passes.' \
430	> "$$test"; \
431	printf '%s\n' \
432		'/* $$''NetBSD$$ */' \
433		'/* $$''FreeBSD$$ */' \
434		'' \
435		'/*' \
436		' * TODO: Explain the command line options of the test.' \
437		' */' \
438		'' \
439		'/* TODO: Add some command line options */' \
440	> "$$test.pro"; \
441	cat < "$$test" > "$$test.stdout"; \
442	cvs add "$$test" "$$test.pro" "$$test.stdout"; \
443	printf '%s\n' \
444		'/^FILES+=/i' \
445		"FILES+=		$$test" \
446		"FILES+=		$$test.pro" \
447		"FILES+=		$$test.stdout" \
448		'.' 'w' 'q' \
449	| ed Makefile; \
450	${MAKE} sync-mi
451
452# Note: only works for adding tests.
453# To remove a test, the $$mi file must be edited manually.
454sync-mi: .PHONY
455	@set -eu;							\
456	cd "${MAKEFILE:tA:H}/../../..";					\
457	mi="distrib/sets/lists/tests/mi";				\
458	cvs update "$$mi";						\
459	fmt="./usr/tests/usr.bin/indent/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
460	cat "$$mi" > "$$mi.tmp";					\
461	printf "$$fmt" ${FILES:M${NAME}*} >> "$$mi.tmp";		\
462	distrib/sets/fmt-list "$$mi.tmp";				\
463	mv "$$mi.tmp" "$$mi";						\
464	cvs diff "$$mi" || true
465
466.include <bsd.test.mk>
467