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