Home | History | Annotate | Line # | Download | only in indent
Makefile revision 1.44
      1 #	$NetBSD: Makefile,v 1.44 2022/04/24 09:04:12 rillig Exp $
      2 
      3 .include <bsd.own.mk>
      4 
      5 TESTSDIR=	${TESTSBASE}/usr.bin/indent
      6 TESTS_SH=	t_errors
      7 TESTS_SH+=	t_misc
      8 TESTS_SH+=	t_options
      9 
     10 FILESDIR=	${TESTSDIR}
     11 FILES+=		fmt_block.c
     12 FILES+=		fmt_decl.c
     13 FILES+=		fmt_else_comment.c
     14 FILES+=		fmt_expr.c
     15 FILES+=		indent_off_on.c
     16 FILES+=		label.c
     17 FILES+=		lex_char.c
     18 FILES+=		lex_ident.c
     19 FILES+=		lex_string.c
     20 FILES+=		lsym_binary_op.c
     21 FILES+=		lsym_case_label.c
     22 FILES+=		lsym_colon.c
     23 FILES+=		lsym_comma.c
     24 FILES+=		lsym_comment.c
     25 FILES+=		lsym_do.c
     26 FILES+=		lsym_else.c
     27 FILES+=		lsym_eof.c
     28 FILES+=		lsym_for.c
     29 FILES+=		lsym_form_feed.c
     30 FILES+=		lsym_funcname.c
     31 FILES+=		lsym_if.c
     32 FILES+=		lsym_lbrace.c
     33 FILES+=		lsym_lparen_or_lbracket.c
     34 FILES+=		lsym_newline.c
     35 FILES+=		lsym_offsetof.c
     36 FILES+=		lsym_period.c
     37 FILES+=		lsym_postfix_op.c
     38 FILES+=		lsym_preprocessing.c
     39 FILES+=		lsym_question.c
     40 FILES+=		lsym_rbrace.c
     41 FILES+=		lsym_return.c
     42 FILES+=		lsym_rparen_or_rbracket.c
     43 FILES+=		lsym_semicolon.c
     44 FILES+=		lsym_sizeof.c
     45 FILES+=		lsym_storage_class.c
     46 FILES+=		lsym_switch.c
     47 FILES+=		lsym_tag.c
     48 FILES+=		lsym_type_in_parentheses.c
     49 FILES+=		lsym_type_outside_parentheses.c
     50 FILES+=		lsym_typedef.c
     51 FILES+=		lsym_unary_op.c
     52 FILES+=		lsym_while.c
     53 FILES+=		lsym_word.c
     54 FILES+=		opt_P.c
     55 FILES+=		opt_T.c
     56 FILES+=		opt_bacc.c
     57 FILES+=		opt_bad.c
     58 FILES+=		opt_badp.c
     59 FILES+=		opt_bap.c
     60 FILES+=		opt_bap_sob.c
     61 FILES+=		opt_bbb.c
     62 FILES+=		opt_bc.c
     63 FILES+=		opt_bl_br.c
     64 FILES+=		opt_bs.c
     65 FILES+=		opt_c.c
     66 FILES+=		opt_cd.c
     67 FILES+=		opt_cdb.c
     68 FILES+=		opt_ce.c
     69 FILES+=		opt_ci.c
     70 FILES+=		opt_cli.c
     71 FILES+=		opt_cs.c
     72 FILES+=		opt_d.c
     73 FILES+=		opt_di.c
     74 FILES+=		opt_dj.c
     75 FILES+=		opt_eei.c
     76 FILES+=		opt_ei.c
     77 FILES+=		opt_fbs.c
     78 FILES+=		opt_fc1.c
     79 FILES+=		opt_fcb.c
     80 FILES+=		opt_i.c
     81 FILES+=		opt_ip.c
     82 FILES+=		opt_l.c
     83 FILES+=		opt_lc.c
     84 FILES+=		opt_ldi.c
     85 FILES+=		opt_lp.c
     86 FILES+=		opt_lpl.c
     87 FILES+=		opt_pcs.c
     88 FILES+=		opt_psl.c
     89 FILES+=		opt_sc.c
     90 FILES+=		opt_sob.c
     91 FILES+=		opt_ta.c
     92 FILES+=		opt_ts.c
     93 FILES+=		opt_ut.c
     94 FILES+=		opt_v.c
     95 FILES+=		opt_version.c
     96 FILES+=		ps_ind_level.c
     97 FILES+=		psym_decl.c
     98 FILES+=		psym_do.c
     99 FILES+=		psym_do_stmt.c
    100 FILES+=		psym_else.c
    101 FILES+=		psym_for_exprs.c
    102 FILES+=		psym_if_expr.c
    103 FILES+=		psym_if_expr_stmt.c
    104 FILES+=		psym_if_expr_stmt_else.c
    105 FILES+=		psym_lbrace.c
    106 FILES+=		psym_rbrace.c
    107 FILES+=		psym_semicolon.c
    108 FILES+=		psym_stmt.c
    109 FILES+=		psym_stmt_list.c
    110 FILES+=		psym_switch_expr.c
    111 FILES+=		psym_while_expr.c
    112 FILES+=		t_options.awk
    113 FILES+=		token_binary_op.c
    114 FILES+=		token_comment.c
    115 FILES+=		token_decl.c
    116 FILES+=		token_do_stmt.c
    117 FILES+=		token_end_of_file.c
    118 FILES+=		token_for_exprs.c
    119 FILES+=		token_form_feed.c
    120 FILES+=		token_funcname.c
    121 FILES+=		token_ident.c
    122 FILES+=		token_keyword_do.c
    123 FILES+=		token_keyword_do_else.c
    124 FILES+=		token_keyword_else.c
    125 FILES+=		token_keyword_for_if_while.c
    126 FILES+=		token_keyword_struct_union_enum.c
    127 FILES+=		token_newline.c
    128 FILES+=		token_postfix_op.c
    129 FILES+=		token_preprocessing.c
    130 FILES+=		token_rparen.c
    131 FILES+=		token_semicolon.c
    132 FILES+=		token_stmt.c
    133 FILES+=		token_stmt_list.c
    134 FILES+=		token_storage_class.c
    135 FILES+=		token_string_prefix.c
    136 FILES+=		token_switch_expr.c
    137 FILES+=		token_type_def.c
    138 FILES+=		token_unary_op.c
    139 FILES+=		token_while_expr.c
    140 
    141 add-test: .PHONY
    142 	@set -eu; \
    143 	test=${NAME:Q}.c; \
    144 	if [ "$$test" = ".c" ]; then \
    145 		echo "usage: ${MAKE} add-test NAME=<name>"; \
    146 		exit; \
    147 	fi; \
    148 	\
    149 	if [ -f "$$test" ]; then \
    150 		echo "error: test $$test already exists." 1>&2; \
    151 		exit 1; \
    152 	fi; \
    153 	\
    154 	echo "=> Adding test $$test"; \
    155 	printf '%s\n' \
    156 		'/* $$''NetBSD$$ */' \
    157 		'' \
    158 		'/*' \
    159 		' * TODO: Explain the purpose of the test.' \
    160 		' */' \
    161 		'' \
    162 		'//indent input' \
    163 		'// TODO: add input' \
    164 		'//indent end' \
    165 		'' \
    166 		'//indent run [-options]' \
    167 		'// TODO: add expected output' \
    168 		'//indent end' \
    169 	> "$$test"; \
    170 	cvs add "$$test"; \
    171 	printf '%s\n' \
    172 		'/^FILES+=/i' \
    173 		"FILES+=		$$test" \
    174 		'.' 'w' 'q' \
    175 	| ed Makefile; \
    176 	${MAKE} sync-mi
    177 
    178 # Note: only works for adding tests.
    179 # To remove a test, the $$mi file must be edited manually.
    180 sync-mi: .PHONY
    181 	@set -eu;							\
    182 	cd "${MAKEFILE:tA:H}/../../..";					\
    183 	mi="distrib/sets/lists/tests/mi";				\
    184 	cvs update "$$mi";						\
    185 	fmt="./usr/tests/usr.bin/indent/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
    186 	cat "$$mi" > "$$mi.tmp";					\
    187 	printf "$$fmt" ${FILES:M${NAME}*} >> "$$mi.tmp";		\
    188 	distrib/sets/fmt-list "$$mi.tmp";				\
    189 	mv "$$mi.tmp" "$$mi";						\
    190 	cvs diff "$$mi" || true
    191 
    192 .include <bsd.test.mk>
    193