Module Name: src Committed By: rillig Date: Sat Oct 23 21:45:14 UTC 2021
Modified Files: src/distrib/sets/lists/tests: mi src/tests/usr.bin/indent: Makefile t_misc.sh Removed Files: src/tests/usr.bin/indent: opt-U.0 opt-U.0.list opt-U.0.pro opt-U.0.stdout opt-npro.0 opt-npro.0.pro opt-npro.0.stdout opt.0 opt.0.pro opt.0.stdout t_indent.sh types_from_file.0 types_from_file.0.list types_from_file.0.pro types_from_file.0.stdout Log Message: tests/indent: migrate remaining tests from t_indent to t_options The test types_from_file was a subset of opt_U and thus has been removed. To generate a diff of this commit: cvs rdiff -u -r1.1160 -r1.1161 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.32 -r1.33 src/tests/usr.bin/indent/Makefile cvs rdiff -u -r1.2 -r0 src/tests/usr.bin/indent/opt-U.0 \ src/tests/usr.bin/indent/opt-U.0.stdout \ src/tests/usr.bin/indent/opt-npro.0 \ src/tests/usr.bin/indent/opt-npro.0.stdout cvs rdiff -u -r1.1 -r0 src/tests/usr.bin/indent/opt-U.0.list \ src/tests/usr.bin/indent/opt-U.0.pro \ src/tests/usr.bin/indent/opt-npro.0.pro src/tests/usr.bin/indent/opt.0 \ src/tests/usr.bin/indent/opt.0.stdout \ src/tests/usr.bin/indent/types_from_file.0 \ src/tests/usr.bin/indent/types_from_file.0.list \ src/tests/usr.bin/indent/types_from_file.0.pro \ src/tests/usr.bin/indent/types_from_file.0.stdout cvs rdiff -u -r1.3 -r0 src/tests/usr.bin/indent/opt.0.pro cvs rdiff -u -r1.7 -r0 src/tests/usr.bin/indent/t_indent.sh cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/indent/t_misc.sh Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.1160 src/distrib/sets/lists/tests/mi:1.1161 --- src/distrib/sets/lists/tests/mi:1.1160 Sat Oct 23 20:30:23 2021 +++ src/distrib/sets/lists/tests/mi Sat Oct 23 21:45:14 2021 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1160 2021/10/23 20:30:23 rillig Exp $ +# $NetBSD: mi,v 1.1161 2021/10/23 21:45:14 rillig Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -4798,10 +4798,10 @@ ./usr/tests/usr.bin/indent/opt-T.0 tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-T.0.pro tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-T.0.stdout tests-obsolete obsolete,atf -./usr/tests/usr.bin/indent/opt-U.0 tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/opt-U.0.list tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/opt-U.0.pro tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/opt-U.0.stdout tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/indent/opt-U.0 tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/opt-U.0.list tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/opt-U.0.pro tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/opt-U.0.stdout tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-bacc.0 tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-bacc.0.pro tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-bacc.0.stdout tests-obsolete obsolete,atf @@ -4958,9 +4958,9 @@ ./usr/tests/usr.bin/indent/opt-npcs.0 tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-npcs.0.pro tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-npcs.0.stdout tests-obsolete obsolete,atf -./usr/tests/usr.bin/indent/opt-npro.0 tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/opt-npro.0.pro tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/opt-npro.0.stdout tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/indent/opt-npro.0 tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/opt-npro.0.pro tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/opt-npro.0.stdout tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-npsl.0 tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-npsl.0.pro tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-npsl.0.stdout tests-obsolete obsolete,atf @@ -5000,9 +5000,9 @@ ./usr/tests/usr.bin/indent/opt-v.0 tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-v.0.pro tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt-v.0.stdout tests-obsolete obsolete,atf -./usr/tests/usr.bin/indent/opt.0 tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/opt.0.pro tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/opt.0.stdout tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/indent/opt.0 tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/opt.0.pro tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/opt.0.stdout tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/opt_P.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/opt_T.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/opt_bacc.c tests-usr.bin-tests compattestfile,atf @@ -5061,7 +5061,7 @@ ./usr/tests/usr.bin/indent/surplusbad.0.pro tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/surplusbad.0.stdout tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/t_errors tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/t_indent tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/indent/t_indent tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/t_misc tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/t_options tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/t_options.awk tests-usr.bin-tests compattestfile,atf @@ -5217,10 +5217,10 @@ ./usr/tests/usr.bin/indent/token_type_def.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/token_unary_op.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/indent/token_while_expr.c tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/types_from_file.0 tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/types_from_file.0.list tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/types_from_file.0.pro tests-usr.bin-tests compattestfile,atf -./usr/tests/usr.bin/indent/types_from_file.0.stdout tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/indent/types_from_file.0 tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/types_from_file.0.list tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/types_from_file.0.pro tests-obsolete obsolete,atf +./usr/tests/usr.bin/indent/types_from_file.0.stdout tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/wchar.0 tests-obsolete obsolete,atf ./usr/tests/usr.bin/indent/wchar.0.stdout tests-obsolete obsolete,atf ./usr/tests/usr.bin/infocmp tests-usr.bin-tests compattestfile,atf Index: src/tests/usr.bin/indent/Makefile diff -u src/tests/usr.bin/indent/Makefile:1.32 src/tests/usr.bin/indent/Makefile:1.33 --- src/tests/usr.bin/indent/Makefile:1.32 Sat Oct 23 20:30:23 2021 +++ src/tests/usr.bin/indent/Makefile Sat Oct 23 21:45:14 2021 @@ -1,10 +1,9 @@ -# $NetBSD: Makefile,v 1.32 2021/10/23 20:30:23 rillig Exp $ +# $NetBSD: Makefile,v 1.33 2021/10/23 21:45:14 rillig Exp $ .include <bsd.own.mk> TESTSDIR= ${TESTSBASE}/usr.bin/indent TESTS_SH= t_errors -TESTS_SH+= t_indent TESTS_SH+= t_misc TESTS_SH+= t_options @@ -18,16 +17,6 @@ FILES+= label.c FILES+= lex_ident.c FILES+= lex_char.c FILES+= lex_string.c -FILES+= opt-U.0 -FILES+= opt-U.0.list -FILES+= opt-U.0.pro -FILES+= opt-U.0.stdout -FILES+= opt-npro.0 -FILES+= opt-npro.0.pro -FILES+= opt-npro.0.stdout -FILES+= opt.0 -FILES+= opt.0.pro -FILES+= opt.0.stdout FILES+= opt_P.c FILES+= opt_T.c FILES+= opt_bacc.c @@ -110,10 +99,6 @@ FILES+= token_switch_expr.c FILES+= token_type_def.c FILES+= token_unary_op.c FILES+= token_while_expr.c -FILES+= types_from_file.0 -FILES+= types_from_file.0.stdout -FILES+= types_from_file.0.list -FILES+= types_from_file.0.pro add-test: .PHONY @set -eu; \ Index: src/tests/usr.bin/indent/t_misc.sh diff -u src/tests/usr.bin/indent/t_misc.sh:1.4 src/tests/usr.bin/indent/t_misc.sh:1.5 --- src/tests/usr.bin/indent/t_misc.sh:1.4 Fri Oct 22 20:54:36 2021 +++ src/tests/usr.bin/indent/t_misc.sh Sat Oct 23 21:45:14 2021 @@ -1,5 +1,5 @@ #! /bin/sh -# $NetBSD: t_misc.sh,v 1.4 2021/10/22 20:54:36 rillig Exp $ +# $NetBSD: t_misc.sh,v 1.5 2021/10/23 21:45:14 rillig Exp $ # # Copyright (c) 2021 The NetBSD Foundation, Inc. # All rights reserved. @@ -190,10 +190,129 @@ option_P_in_profile_file_body() "$indent" < code.c } +atf_test_case 'opt' +opt_body() +{ + # Test parsing of command line options from a profile file. + + cat <<-\EOF > code.c + int global_var; + + int function(int expr) { + switch (expr) { case 1: return 1; default: return 0; } + } + EOF + + cat << \EOF > .indent.pro +/* The latter of the two options wins. */ +-di5 +-di12 + +/* + * It is possible to embed comments in the middle of an option, but nobody + * does that. + */ +-/* comment */bacc +-T/* define +a type */custom_type + +/* For int options, trailing garbage would lead to an error message. */ +-i3 + +/* + * For float options, trailing garbage is ignored. + * + * See atof. + */ +-cli3.5garbage + +-b/*/acc /* The comment is '/' '*' '/', making the option '-bacc'. */ +EOF + + sed '/[$]/d' << \EOF > code.exp +/* $ The variable name is indented by 12 characters due to -di12. */ +int global_var; + +int +function(int expr) +{ + switch (expr) { +/* $ The indentation is 3 + (int)(3.5 * 3), so 3 + 10.5, so 13. */ +/* $ See parse.c, function parse, 'case switch_expr'. */ + case 1: +/* $ The indentation is 3 + (int)3.5 * 3 + 3, so 3 + 9 + 3, so 15. */ +/* $ See parse.c, function parse, 'case switch_expr'. */ + return 1; + default: + return 0; + } +} +EOF + + atf_check -o 'file:code.exp' \ + "$indent" code.c -st +} + +atf_test_case 'opt_npro' +opt_npro_body() +{ + # Mentioning the option -npro in a .pro file has no effect since at + # that point, indent has already decided to load the .pro file, and + # it only decides once. + + echo ' -npro -di8' > .indent.pro + echo 'int var;' > code.c + printf 'int\tvar;\n' > code.exp + + atf_check -o 'file:code.exp' \ + "$indent" code.c -st +} + +atf_test_case 'opt_U' +opt_U_body() +{ + # From each line of this file, the first word is taken to be a type + # name. + # + # Since neither '/*' nor '' are syntactically valid type names, this + # means that all kinds of comments are effectively ignored. When a + # type name is indented by whitespace, it is ignored as well. + # + # Since only the first word of each line is relevant, any remaining + # words can be used for comments. + cat <<-\EOF > code.types + /* Comments are effectively ignored since they never match. */ + # This comment is ignored as well. + ; So is this comment. + # The following line is empty and adds a type whose name is empty. + + size_t from stddef.h + off_t for file offsets + ignored_t is ignored since it is indented + EOF + + cat <<-\EOF > code.c + int known_1 = (size_t) * arg; + int known_2 = (off_t) * arg; + int ignored = (ignored_t) * arg; + EOF + cat <<-\EOF > code.exp + int known_1 = (size_t)*arg; + int known_2 = (off_t)*arg; + int ignored = (ignored_t) * arg; + EOF + + atf_check -o 'file:code.exp' \ + "$indent" -Ucode.types code.c -di0 -st +} + atf_init_test_cases() { atf_add_test_case 'in_place' atf_add_test_case 'verbose_profile' atf_add_test_case 'nested_struct_declarations' atf_add_test_case 'option_P_in_profile_file' + atf_add_test_case 'opt' + atf_add_test_case 'opt_npro' + atf_add_test_case 'opt_U' }