Makefile revision 1.16
11.16Srillig#	$NetBSD: Makefile,v 1.16 2021/10/16 03:20:12 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.1SkamilFILES=		binary.0
131.1SkamilFILES+=		binary.0.stdout
141.5SrilligFILES+=		block.0
151.5SrilligFILES+=		block.0.stdout
161.2SrilligFILES+=		comment-line-end.0
171.2SrilligFILES+=		comment-line-end.0.stdout
181.1SkamilFILES+=		comments.0
191.1SkamilFILES+=		comments.0.pro
201.1SkamilFILES+=		comments.0.stdout
211.1SkamilFILES+=		declarations.0
221.11SrilligFILES+=		declarations.0.stderr
231.1SkamilFILES+=		declarations.0.stdout
241.1SkamilFILES+=		elsecomment.0
251.1SkamilFILES+=		elsecomment.0.stdout
261.1SkamilFILES+=		elsecomment.0.pro
271.1SkamilFILES+=		f_decls.0
281.1SkamilFILES+=		f_decls.0.stdout
291.1SkamilFILES+=		float.0
301.1SkamilFILES+=		float.0.stdout
311.7SrilligFILES+=		indent_variables.0
321.7SrilligFILES+=		indent_variables.0.pro
331.7SrilligFILES+=		indent_variables.0.stdout
341.1SkamilFILES+=		label.0
351.1SkamilFILES+=		label.0.stdout
361.1SkamilFILES+=		label.0.pro
371.10SrilligFILES+=		lex.0
381.10SrilligFILES+=		lex.0.pro
391.10SrilligFILES+=		lex.0.stdout
401.9SrilligFILES+=		lex_char.0
411.9SrilligFILES+=		lex_char.0.pro
421.9SrilligFILES+=		lex_char.0.stdout
431.9SrilligFILES+=		lex_string.0
441.9SrilligFILES+=		lex_string.0.pro
451.9SrilligFILES+=		lex_string.0.stdout
461.4SrilligFILES+=		lineno.0
471.4SrilligFILES+=		lineno.0.pro
481.4SrilligFILES+=		lineno.0.stdout
491.1SkamilFILES+=		list_head.0
501.1SkamilFILES+=		list_head.0.stdout
511.1SkamilFILES+=		ncs.0
521.1SkamilFILES+=		ncs.0.stdout
531.1SkamilFILES+=		ncs.0.pro
541.1SkamilFILES+=		offsetof.0
551.1SkamilFILES+=		offsetof.0.stdout
561.3SrilligFILES+=		opt--version.0
571.3SrilligFILES+=		opt--version.0.pro
581.3SrilligFILES+=		opt--version.0.stdout
591.3SrilligFILES+=		opt-P.0
601.3SrilligFILES+=		opt-P.0.pro
611.3SrilligFILES+=		opt-P.0.stdout
621.3SrilligFILES+=		opt-T.0
631.3SrilligFILES+=		opt-T.0.pro
641.3SrilligFILES+=		opt-T.0.stdout
651.3SrilligFILES+=		opt-U.0
661.3SrilligFILES+=		opt-U.0.list
671.3SrilligFILES+=		opt-U.0.pro
681.3SrilligFILES+=		opt-U.0.stdout
691.6SrilligFILES+=		opt-bap+sob.0
701.6SrilligFILES+=		opt-bap+sob.0.pro
711.6SrilligFILES+=		opt-bap+sob.0.stdout
721.3SrilligFILES+=		opt-bl.0
731.3SrilligFILES+=		opt-bl.0.pro
741.3SrilligFILES+=		opt-bl.0.stdout
751.3SrilligFILES+=		opt-br.0
761.3SrilligFILES+=		opt-br.0.pro
771.3SrilligFILES+=		opt-br.0.stdout
781.3SrilligFILES+=		opt-c.0
791.3SrilligFILES+=		opt-c.0.pro
801.3SrilligFILES+=		opt-c.0.stdout
811.3SrilligFILES+=		opt-cd.0
821.3SrilligFILES+=		opt-cd.0.pro
831.3SrilligFILES+=		opt-cd.0.stdout
841.3SrilligFILES+=		opt-ci.0
851.3SrilligFILES+=		opt-ci.0.pro
861.3SrilligFILES+=		opt-ci.0.stdout
871.3SrilligFILES+=		opt-cli.0
881.3SrilligFILES+=		opt-cli.0.pro
891.3SrilligFILES+=		opt-cli.0.stdout
901.3SrilligFILES+=		opt-d.0
911.3SrilligFILES+=		opt-d.0.pro
921.3SrilligFILES+=		opt-d.0.stdout
931.3SrilligFILES+=		opt-di.0
941.3SrilligFILES+=		opt-di.0.pro
951.3SrilligFILES+=		opt-di.0.stdout
961.3SrilligFILES+=		opt-i.0
971.3SrilligFILES+=		opt-i.0.pro
981.3SrilligFILES+=		opt-i.0.stdout
991.3SrilligFILES+=		opt-l.0
1001.3SrilligFILES+=		opt-l.0.pro
1011.3SrilligFILES+=		opt-l.0.stdout
1021.3SrilligFILES+=		opt-lc.0
1031.3SrilligFILES+=		opt-lc.0.pro
1041.3SrilligFILES+=		opt-lc.0.stdout
1051.3SrilligFILES+=		opt-ldi.0
1061.3SrilligFILES+=		opt-ldi.0.pro
1071.3SrilligFILES+=		opt-ldi.0.stdout
1081.3SrilligFILES+=		opt-npro.0
1091.3SrilligFILES+=		opt-npro.0.pro
1101.3SrilligFILES+=		opt-npro.0.stdout
1111.3SrilligFILES+=		opt-ta.0
1121.3SrilligFILES+=		opt-ta.0.pro
1131.3SrilligFILES+=		opt-ta.0.stdout
1141.3SrilligFILES+=		opt-ts.0
1151.3SrilligFILES+=		opt-ts.0.pro
1161.3SrilligFILES+=		opt-ts.0.stdout
1171.13SrilligFILES+=		opt.0
1181.13SrilligFILES+=		opt.0.pro
1191.13SrilligFILES+=		opt.0.stdout
1201.16SrilligFILES+=		opt_bacc.c
1211.16SrilligFILES+=		opt_bad.c
1221.16SrilligFILES+=		opt_badp.c
1231.16SrilligFILES+=		opt_bap.c
1241.16SrilligFILES+=		opt_bbb.c
1251.16SrilligFILES+=		opt_bc.c
1261.16SrilligFILES+=		opt_bs.c
1271.16SrilligFILES+=		opt_cdb.c
1281.16SrilligFILES+=		opt_ce.c
1291.16SrilligFILES+=		opt_cs.c
1301.16SrilligFILES+=		opt_dj.c
1311.16SrilligFILES+=		opt_eei.c
1321.16SrilligFILES+=		opt_ei.c
1331.16SrilligFILES+=		opt_fbs.c
1341.16SrilligFILES+=		opt_fc1.c
1351.16SrilligFILES+=		opt_fcb.c
1361.16SrilligFILES+=		opt_ip.c
1371.16SrilligFILES+=		opt_lp.c
1381.16SrilligFILES+=		opt_lpl.c
1391.16SrilligFILES+=		opt_pcs.c
1401.16SrilligFILES+=		opt_psl.c
1411.16SrilligFILES+=		opt_sc.c
1421.16SrilligFILES+=		opt_sob.c
1431.16SrilligFILES+=		opt_ut.c
1441.16SrilligFILES+=		opt_v.c
1451.1SkamilFILES+=		parens.0
1461.1SkamilFILES+=		parens.0.stdout
1471.1SkamilFILES+=		parens.0.pro
1481.1SkamilFILES+=		pcs.0
1491.1SkamilFILES+=		pcs.0.stdout
1501.1SkamilFILES+=		pcs.0.pro
1511.12SrilligFILES+=		ps_ind_level.0
1521.12SrilligFILES+=		ps_ind_level.0.pro
1531.12SrilligFILES+=		ps_ind_level.0.stdout
1541.1SkamilFILES+=		cs.0
1551.1SkamilFILES+=		cs.0.stdout
1561.1SkamilFILES+=		cs.0.pro
1571.1SkamilFILES+=		struct.0
1581.1SkamilFILES+=		struct.0.stdout
1591.1SkamilFILES+=		surplusbad.0
1601.1SkamilFILES+=		surplusbad.0.stdout
1611.1SkamilFILES+=		surplusbad.0.pro
1621.8SrilligFILES+=		token-binary_op.0
1631.8SrilligFILES+=		token-binary_op.0.pro
1641.8SrilligFILES+=		token-binary_op.0.stdout
1651.8SrilligFILES+=		token-case_label.0
1661.8SrilligFILES+=		token-case_label.0.pro
1671.8SrilligFILES+=		token-case_label.0.stdout
1681.8SrilligFILES+=		token-colon.0
1691.8SrilligFILES+=		token-colon.0.pro
1701.8SrilligFILES+=		token-colon.0.stdout
1711.8SrilligFILES+=		token-comma.0
1721.8SrilligFILES+=		token-comma.0.pro
1731.8SrilligFILES+=		token-comma.0.stdout
1741.8SrilligFILES+=		token-comment.0
1751.8SrilligFILES+=		token-comment.0.pro
1761.8SrilligFILES+=		token-comment.0.stdout
1771.8SrilligFILES+=		token-decl.0
1781.8SrilligFILES+=		token-decl.0.pro
1791.8SrilligFILES+=		token-decl.0.stdout
1801.8SrilligFILES+=		token-do_stmt.0
1811.8SrilligFILES+=		token-do_stmt.0.pro
1821.8SrilligFILES+=		token-do_stmt.0.stdout
1831.8SrilligFILES+=		token-end_of_file.0
1841.8SrilligFILES+=		token-end_of_file.0.pro
1851.8SrilligFILES+=		token-end_of_file.0.stdout
1861.8SrilligFILES+=		token-for_exprs.0
1871.8SrilligFILES+=		token-for_exprs.0.pro
1881.8SrilligFILES+=		token-for_exprs.0.stdout
1891.8SrilligFILES+=		token-form_feed.0
1901.8SrilligFILES+=		token-form_feed.0.pro
1911.8SrilligFILES+=		token-form_feed.0.stdout
1921.8SrilligFILES+=		token-funcname.0
1931.8SrilligFILES+=		token-funcname.0.pro
1941.8SrilligFILES+=		token-funcname.0.stdout
1951.8SrilligFILES+=		token-ident.0
1961.8SrilligFILES+=		token-ident.0.pro
1971.8SrilligFILES+=		token-ident.0.stdout
1981.8SrilligFILES+=		token-if_expr.0
1991.8SrilligFILES+=		token-if_expr.0.pro
2001.8SrilligFILES+=		token-if_expr.0.stdout
2011.8SrilligFILES+=		token-if_expr_stmt.0
2021.8SrilligFILES+=		token-if_expr_stmt.0.pro
2031.8SrilligFILES+=		token-if_expr_stmt.0.stdout
2041.8SrilligFILES+=		token-if_expr_stmt_else.0
2051.8SrilligFILES+=		token-if_expr_stmt_else.0.pro
2061.8SrilligFILES+=		token-if_expr_stmt_else.0.stdout
2071.8SrilligFILES+=		token-keyword_do.0
2081.8SrilligFILES+=		token-keyword_do.0.pro
2091.8SrilligFILES+=		token-keyword_do.0.stdout
2101.8SrilligFILES+=		token-keyword_do_else.0
2111.8SrilligFILES+=		token-keyword_do_else.0.pro
2121.8SrilligFILES+=		token-keyword_do_else.0.stdout
2131.8SrilligFILES+=		token-keyword_else.0
2141.8SrilligFILES+=		token-keyword_else.0.pro
2151.8SrilligFILES+=		token-keyword_else.0.stdout
2161.8SrilligFILES+=		token-keyword_for_if_while.0
2171.8SrilligFILES+=		token-keyword_for_if_while.0.pro
2181.8SrilligFILES+=		token-keyword_for_if_while.0.stdout
2191.8SrilligFILES+=		token-keyword_struct_union_enum.0
2201.8SrilligFILES+=		token-keyword_struct_union_enum.0.pro
2211.8SrilligFILES+=		token-keyword_struct_union_enum.0.stdout
2221.8SrilligFILES+=		token-lbrace.0
2231.8SrilligFILES+=		token-lbrace.0.pro
2241.8SrilligFILES+=		token-lbrace.0.stdout
2251.8SrilligFILES+=		token-lparen.0
2261.8SrilligFILES+=		token-lparen.0.pro
2271.8SrilligFILES+=		token-lparen.0.stdout
2281.8SrilligFILES+=		token-newline.0
2291.8SrilligFILES+=		token-newline.0.pro
2301.8SrilligFILES+=		token-newline.0.stdout
2311.8SrilligFILES+=		token-period.0
2321.8SrilligFILES+=		token-period.0.pro
2331.8SrilligFILES+=		token-period.0.stdout
2341.8SrilligFILES+=		token-postfix_op.0
2351.8SrilligFILES+=		token-postfix_op.0.pro
2361.8SrilligFILES+=		token-postfix_op.0.stdout
2371.8SrilligFILES+=		token-preprocessing.0
2381.8SrilligFILES+=		token-preprocessing.0.pro
2391.8SrilligFILES+=		token-preprocessing.0.stdout
2401.8SrilligFILES+=		token-question.0
2411.8SrilligFILES+=		token-question.0.pro
2421.8SrilligFILES+=		token-question.0.stdout
2431.8SrilligFILES+=		token-rbrace.0
2441.8SrilligFILES+=		token-rbrace.0.pro
2451.8SrilligFILES+=		token-rbrace.0.stdout
2461.8SrilligFILES+=		token-rparen.0
2471.8SrilligFILES+=		token-rparen.0.pro
2481.8SrilligFILES+=		token-rparen.0.stdout
2491.8SrilligFILES+=		token-semicolon.0
2501.8SrilligFILES+=		token-semicolon.0.pro
2511.8SrilligFILES+=		token-semicolon.0.stdout
2521.8SrilligFILES+=		token-stmt.0
2531.8SrilligFILES+=		token-stmt.0.pro
2541.8SrilligFILES+=		token-stmt.0.stdout
2551.8SrilligFILES+=		token-stmt_list.0
2561.8SrilligFILES+=		token-stmt_list.0.pro
2571.8SrilligFILES+=		token-stmt_list.0.stdout
2581.8SrilligFILES+=		token-storage_class.0
2591.8SrilligFILES+=		token-storage_class.0.pro
2601.8SrilligFILES+=		token-storage_class.0.stdout
2611.8SrilligFILES+=		token-string_prefix.0
2621.8SrilligFILES+=		token-string_prefix.0.pro
2631.8SrilligFILES+=		token-string_prefix.0.stdout
2641.8SrilligFILES+=		token-switch_expr.0
2651.8SrilligFILES+=		token-switch_expr.0.pro
2661.8SrilligFILES+=		token-switch_expr.0.stdout
2671.8SrilligFILES+=		token-type_def.0
2681.8SrilligFILES+=		token-type_def.0.pro
2691.8SrilligFILES+=		token-type_def.0.stdout
2701.8SrilligFILES+=		token-unary_op.0
2711.8SrilligFILES+=		token-unary_op.0.pro
2721.8SrilligFILES+=		token-unary_op.0.stdout
2731.8SrilligFILES+=		token-while_expr.0
2741.8SrilligFILES+=		token-while_expr.0.pro
2751.8SrilligFILES+=		token-while_expr.0.stdout
2761.1SkamilFILES+=		types_from_file.0
2771.1SkamilFILES+=		types_from_file.0.stdout
2781.1SkamilFILES+=		types_from_file.0.list
2791.1SkamilFILES+=		types_from_file.0.pro
2801.1SkamilFILES+=		wchar.0
2811.1SkamilFILES+=		wchar.0.stdout
2821.1Skamil
2831.7Srilligadd-test: .PHONY
2841.7Srillig	@set -eu; \
2851.7Srillig	test=${NAME:Q}; \
2861.7Srillig	[ "$$test" ] || { \
2871.7Srillig		echo "usage: ${MAKE} add-test NAME=<name>"; \
2881.7Srillig		exit; \
2891.7Srillig	}; \
2901.7Srillig	\
2911.7Srillig	if [ -f "$$test" ]; then \
2921.7Srillig		echo "error: test $$test already exists." 1>&2; \
2931.7Srillig		exit 1; \
2941.7Srillig	fi; \
2951.7Srillig	\
2961.7Srillig	echo "=> Adding test $$test"; \
2971.7Srillig	printf '%s\n' \
2981.7Srillig		'/* $$''NetBSD$$ */' \
2991.7Srillig		'/* $$''FreeBSD$$ */' \
3001.7Srillig		'' \
3011.7Srillig		'/*' \
3021.7Srillig		' * TODO: Explain the purpose of the test.' \
3031.9Srillig		' */' \
3041.7Srillig		'' \
3051.7Srillig		'// TODO: Add some code that passes.' \
3061.7Srillig	> "$$test"; \
3071.7Srillig	printf '%s\n' \
3081.7Srillig		'/* $$''NetBSD$$ */' \
3091.7Srillig		'/* $$''FreeBSD$$ */' \
3101.7Srillig		'' \
3111.7Srillig		'/*' \
3121.7Srillig		' * TODO: Explain the command line options of the test.' \
3131.7Srillig		' */' \
3141.7Srillig		'' \
3151.7Srillig		'/* TODO: Add some command line options */' \
3161.7Srillig	> "$$test.pro"; \
3171.7Srillig	cat < "$$test" > "$$test.stdout"; \
3181.7Srillig	cvs add "$$test" "$$test.pro" "$$test.stdout"; \
3191.7Srillig	printf '%s\n' \
3201.7Srillig		'/^FILES+=/i' \
3211.7Srillig		"FILES+=		$$test" \
3221.7Srillig		"FILES+=		$$test.pro" \
3231.7Srillig		"FILES+=		$$test.stdout" \
3241.7Srillig		'.' 'w' 'q' \
3251.7Srillig	| ed Makefile; \
3261.7Srillig	${MAKE} sync-mi
3271.7Srillig
3281.7Srillig# Note: only works for adding tests.
3291.7Srillig# To remove a test, the $$mi file must be edited manually.
3301.7Srilligsync-mi: .PHONY
3311.7Srillig	@set -eu;							\
3321.7Srillig	cd "${MAKEFILE:tA:H}/../../..";					\
3331.7Srillig	mi="distrib/sets/lists/tests/mi";				\
3341.7Srillig	cvs update "$$mi";						\
3351.7Srillig	fmt="./usr/tests/usr.bin/indent/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
3361.7Srillig	cat "$$mi" > "$$mi.tmp";					\
3371.7Srillig	printf "$$fmt" ${FILES:M${NAME}*} >> "$$mi.tmp";		\
3381.7Srillig	distrib/sets/fmt-list "$$mi.tmp";				\
3391.7Srillig	mv "$$mi.tmp" "$$mi";						\
3401.7Srillig	cvs diff "$$mi" || true
3411.7Srillig
3421.1Skamil.include <bsd.test.mk>
343