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