Makefile revision 1.21
11.21Srillig#	$NetBSD: Makefile,v 1.21 2021/10/18 22:46:33 rillig Exp $
21.1Skamil
31.1Skamil.include <bsd.own.mk>
41.1Skamil
51.1SkamilTESTSDIR=	${TESTSBASE}/usr.bin/indent
61.14SrilligTESTS_SH=	t_errors
71.14SrilligTESTS_SH+=	t_indent
81.15SrilligTESTS_SH+=	t_misc
91.16SrilligTESTS_SH+=	t_options
101.1Skamil
111.1SkamilFILESDIR=	${TESTSDIR}
121.17SrilligFILES=		block.0
131.5SrilligFILES+=		block.0.stdout
141.1SkamilFILES+=		declarations.0
151.11SrilligFILES+=		declarations.0.stderr
161.1SkamilFILES+=		declarations.0.stdout
171.1SkamilFILES+=		elsecomment.0
181.1SkamilFILES+=		elsecomment.0.stdout
191.1SkamilFILES+=		elsecomment.0.pro
201.1SkamilFILES+=		f_decls.0
211.1SkamilFILES+=		f_decls.0.stdout
221.7SrilligFILES+=		indent_variables.0
231.7SrilligFILES+=		indent_variables.0.pro
241.7SrilligFILES+=		indent_variables.0.stdout
251.19SrilligFILES+=		label.c
261.10SrilligFILES+=		lex.0
271.10SrilligFILES+=		lex.0.pro
281.10SrilligFILES+=		lex.0.stdout
291.9SrilligFILES+=		lex_char.0
301.9SrilligFILES+=		lex_char.0.pro
311.9SrilligFILES+=		lex_char.0.stdout
321.9SrilligFILES+=		lex_string.0
331.9SrilligFILES+=		lex_string.0.pro
341.9SrilligFILES+=		lex_string.0.stdout
351.4SrilligFILES+=		lineno.0
361.4SrilligFILES+=		lineno.0.pro
371.4SrilligFILES+=		lineno.0.stdout
381.1SkamilFILES+=		list_head.0
391.1SkamilFILES+=		list_head.0.stdout
401.1SkamilFILES+=		ncs.0
411.1SkamilFILES+=		ncs.0.stdout
421.1SkamilFILES+=		ncs.0.pro
431.1SkamilFILES+=		offsetof.0
441.1SkamilFILES+=		offsetof.0.stdout
451.3SrilligFILES+=		opt--version.0
461.3SrilligFILES+=		opt--version.0.pro
471.3SrilligFILES+=		opt--version.0.stdout
481.3SrilligFILES+=		opt-P.0
491.3SrilligFILES+=		opt-P.0.pro
501.3SrilligFILES+=		opt-P.0.stdout
511.3SrilligFILES+=		opt-T.0
521.3SrilligFILES+=		opt-T.0.pro
531.3SrilligFILES+=		opt-T.0.stdout
541.3SrilligFILES+=		opt-U.0
551.3SrilligFILES+=		opt-U.0.list
561.3SrilligFILES+=		opt-U.0.pro
571.3SrilligFILES+=		opt-U.0.stdout
581.6SrilligFILES+=		opt-bap+sob.0
591.6SrilligFILES+=		opt-bap+sob.0.pro
601.6SrilligFILES+=		opt-bap+sob.0.stdout
611.3SrilligFILES+=		opt-bl.0
621.3SrilligFILES+=		opt-bl.0.pro
631.3SrilligFILES+=		opt-bl.0.stdout
641.3SrilligFILES+=		opt-br.0
651.3SrilligFILES+=		opt-br.0.pro
661.3SrilligFILES+=		opt-br.0.stdout
671.3SrilligFILES+=		opt-c.0
681.3SrilligFILES+=		opt-c.0.pro
691.3SrilligFILES+=		opt-c.0.stdout
701.3SrilligFILES+=		opt-cd.0
711.3SrilligFILES+=		opt-cd.0.pro
721.3SrilligFILES+=		opt-cd.0.stdout
731.3SrilligFILES+=		opt-ci.0
741.3SrilligFILES+=		opt-ci.0.pro
751.3SrilligFILES+=		opt-ci.0.stdout
761.3SrilligFILES+=		opt-cli.0
771.3SrilligFILES+=		opt-cli.0.pro
781.3SrilligFILES+=		opt-cli.0.stdout
791.3SrilligFILES+=		opt-d.0
801.3SrilligFILES+=		opt-d.0.pro
811.3SrilligFILES+=		opt-d.0.stdout
821.3SrilligFILES+=		opt-di.0
831.3SrilligFILES+=		opt-di.0.pro
841.3SrilligFILES+=		opt-di.0.stdout
851.3SrilligFILES+=		opt-i.0
861.3SrilligFILES+=		opt-i.0.pro
871.3SrilligFILES+=		opt-i.0.stdout
881.3SrilligFILES+=		opt-l.0
891.3SrilligFILES+=		opt-l.0.pro
901.3SrilligFILES+=		opt-l.0.stdout
911.3SrilligFILES+=		opt-lc.0
921.3SrilligFILES+=		opt-lc.0.pro
931.3SrilligFILES+=		opt-lc.0.stdout
941.3SrilligFILES+=		opt-ldi.0
951.3SrilligFILES+=		opt-ldi.0.pro
961.3SrilligFILES+=		opt-ldi.0.stdout
971.3SrilligFILES+=		opt-npro.0
981.3SrilligFILES+=		opt-npro.0.pro
991.3SrilligFILES+=		opt-npro.0.stdout
1001.3SrilligFILES+=		opt-ta.0
1011.3SrilligFILES+=		opt-ta.0.pro
1021.3SrilligFILES+=		opt-ta.0.stdout
1031.3SrilligFILES+=		opt-ts.0
1041.3SrilligFILES+=		opt-ts.0.pro
1051.3SrilligFILES+=		opt-ts.0.stdout
1061.13SrilligFILES+=		opt.0
1071.13SrilligFILES+=		opt.0.pro
1081.13SrilligFILES+=		opt.0.stdout
1091.16SrilligFILES+=		opt_bacc.c
1101.16SrilligFILES+=		opt_bad.c
1111.16SrilligFILES+=		opt_badp.c
1121.16SrilligFILES+=		opt_bap.c
1131.16SrilligFILES+=		opt_bbb.c
1141.16SrilligFILES+=		opt_bc.c
1151.16SrilligFILES+=		opt_bs.c
1161.16SrilligFILES+=		opt_cdb.c
1171.16SrilligFILES+=		opt_ce.c
1181.16SrilligFILES+=		opt_cs.c
1191.16SrilligFILES+=		opt_dj.c
1201.16SrilligFILES+=		opt_eei.c
1211.16SrilligFILES+=		opt_ei.c
1221.16SrilligFILES+=		opt_fbs.c
1231.16SrilligFILES+=		opt_fc1.c
1241.16SrilligFILES+=		opt_fcb.c
1251.16SrilligFILES+=		opt_ip.c
1261.16SrilligFILES+=		opt_lp.c
1271.16SrilligFILES+=		opt_lpl.c
1281.16SrilligFILES+=		opt_pcs.c
1291.16SrilligFILES+=		opt_psl.c
1301.16SrilligFILES+=		opt_sc.c
1311.16SrilligFILES+=		opt_sob.c
1321.16SrilligFILES+=		opt_ut.c
1331.16SrilligFILES+=		opt_v.c
1341.1SkamilFILES+=		parens.0
1351.1SkamilFILES+=		parens.0.stdout
1361.1SkamilFILES+=		parens.0.pro
1371.1SkamilFILES+=		pcs.0
1381.1SkamilFILES+=		pcs.0.stdout
1391.1SkamilFILES+=		pcs.0.pro
1401.21SrilligFILES+=		ps_ind_level.c
1411.1SkamilFILES+=		struct.0
1421.1SkamilFILES+=		struct.0.stdout
1431.1SkamilFILES+=		surplusbad.0
1441.1SkamilFILES+=		surplusbad.0.stdout
1451.1SkamilFILES+=		surplusbad.0.pro
1461.19SrilligFILES+=		t_options.awk
1471.20SrilligFILES+=		token_binary_op.c
1481.20SrilligFILES+=		token_case_label.c
1491.20SrilligFILES+=		token_colon.c
1501.20SrilligFILES+=		token_comma.c
1511.18SrilligFILES+=		token_comment.c
1521.20SrilligFILES+=		token_decl.c
1531.20SrilligFILES+=		token_do_stmt.c
1541.20SrilligFILES+=		token_end_of_file.c
1551.20SrilligFILES+=		token_for_exprs.c
1561.20SrilligFILES+=		token_form_feed.c
1571.20SrilligFILES+=		token_funcname.c
1581.17SrilligFILES+=		token_ident.c
1591.20SrilligFILES+=		token_if_expr.c
1601.20SrilligFILES+=		token_if_expr_stmt.c
1611.20SrilligFILES+=		token_if_expr_stmt_else.c
1621.20SrilligFILES+=		token_keyword_do.c
1631.20SrilligFILES+=		token_keyword_do_else.c
1641.20SrilligFILES+=		token_keyword_else.c
1651.20SrilligFILES+=		token_keyword_for_if_while.c
1661.20SrilligFILES+=		token_keyword_struct_union_enum.c
1671.20SrilligFILES+=		token_lbrace.c
1681.20SrilligFILES+=		token_lparen.c
1691.20SrilligFILES+=		token_newline.c
1701.20SrilligFILES+=		token_period.c
1711.20SrilligFILES+=		token_postfix_op.c
1721.20SrilligFILES+=		token_preprocessing.c
1731.20SrilligFILES+=		token_question.c
1741.20SrilligFILES+=		token_rbrace.c
1751.20SrilligFILES+=		token_rparen.c
1761.20SrilligFILES+=		token_semicolon.c
1771.20SrilligFILES+=		token_stmt.c
1781.20SrilligFILES+=		token_stmt_list.c
1791.20SrilligFILES+=		token_storage_class.c
1801.20SrilligFILES+=		token_string_prefix.c
1811.20SrilligFILES+=		token_switch_expr.c
1821.20SrilligFILES+=		token_type_def.c
1831.20SrilligFILES+=		token_unary_op.c
1841.20SrilligFILES+=		token_while_expr.c
1851.1SkamilFILES+=		types_from_file.0
1861.1SkamilFILES+=		types_from_file.0.stdout
1871.1SkamilFILES+=		types_from_file.0.list
1881.1SkamilFILES+=		types_from_file.0.pro
1891.1SkamilFILES+=		wchar.0
1901.1SkamilFILES+=		wchar.0.stdout
1911.1Skamil
1921.7Srilligadd-test: .PHONY
1931.7Srillig	@set -eu; \
1941.7Srillig	test=${NAME:Q}; \
1951.7Srillig	[ "$$test" ] || { \
1961.7Srillig		echo "usage: ${MAKE} add-test NAME=<name>"; \
1971.7Srillig		exit; \
1981.7Srillig	}; \
1991.7Srillig	\
2001.7Srillig	if [ -f "$$test" ]; then \
2011.7Srillig		echo "error: test $$test already exists." 1>&2; \
2021.7Srillig		exit 1; \
2031.7Srillig	fi; \
2041.7Srillig	\
2051.7Srillig	echo "=> Adding test $$test"; \
2061.7Srillig	printf '%s\n' \
2071.7Srillig		'/* $$''NetBSD$$ */' \
2081.7Srillig		'/* $$''FreeBSD$$ */' \
2091.7Srillig		'' \
2101.7Srillig		'/*' \
2111.7Srillig		' * TODO: Explain the purpose of the test.' \
2121.9Srillig		' */' \
2131.7Srillig		'' \
2141.7Srillig		'// TODO: Add some code that passes.' \
2151.7Srillig	> "$$test"; \
2161.7Srillig	printf '%s\n' \
2171.7Srillig		'/* $$''NetBSD$$ */' \
2181.7Srillig		'/* $$''FreeBSD$$ */' \
2191.7Srillig		'' \
2201.7Srillig		'/*' \
2211.7Srillig		' * TODO: Explain the command line options of the test.' \
2221.7Srillig		' */' \
2231.7Srillig		'' \
2241.7Srillig		'/* TODO: Add some command line options */' \
2251.7Srillig	> "$$test.pro"; \
2261.7Srillig	cat < "$$test" > "$$test.stdout"; \
2271.7Srillig	cvs add "$$test" "$$test.pro" "$$test.stdout"; \
2281.7Srillig	printf '%s\n' \
2291.7Srillig		'/^FILES+=/i' \
2301.7Srillig		"FILES+=		$$test" \
2311.7Srillig		"FILES+=		$$test.pro" \
2321.7Srillig		"FILES+=		$$test.stdout" \
2331.7Srillig		'.' 'w' 'q' \
2341.7Srillig	| ed Makefile; \
2351.7Srillig	${MAKE} sync-mi
2361.7Srillig
2371.7Srillig# Note: only works for adding tests.
2381.7Srillig# To remove a test, the $$mi file must be edited manually.
2391.7Srilligsync-mi: .PHONY
2401.7Srillig	@set -eu;							\
2411.7Srillig	cd "${MAKEFILE:tA:H}/../../..";					\
2421.7Srillig	mi="distrib/sets/lists/tests/mi";				\
2431.7Srillig	cvs update "$$mi";						\
2441.7Srillig	fmt="./usr/tests/usr.bin/indent/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
2451.7Srillig	cat "$$mi" > "$$mi.tmp";					\
2461.7Srillig	printf "$$fmt" ${FILES:M${NAME}*} >> "$$mi.tmp";		\
2471.7Srillig	distrib/sets/fmt-list "$$mi.tmp";				\
2481.7Srillig	mv "$$mi.tmp" "$$mi";						\
2491.7Srillig	cvs diff "$$mi" || true
2501.7Srillig
2511.1Skamil.include <bsd.test.mk>
252