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