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