Module Name: src
Committed By: rillig
Date: Fri Oct 22 19:27:53 UTC 2021
Modified Files:
src/distrib/sets/lists/tests: mi
src/tests/usr.bin/indent: Makefile opt_v.c t_misc.sh
Added Files:
src/tests/usr.bin/indent: fmt_block.c fmt_decl.c fmt_else_comment.c
lex_ident.c
Removed Files:
src/tests/usr.bin/indent: block.0 block.0.stdout declarations.0
declarations.0.stderr declarations.0.stdout elsecomment.0
elsecomment.0.pro elsecomment.0.stdout indent_variables.0
indent_variables.0.pro indent_variables.0.stdout lex.0 lex.0.pro
lex.0.stdout lineno.0 lineno.0.pro lineno.0.stdout
Log Message:
tests/indent: migrate a few more tests to t_options
To generate a diff of this commit:
cvs rdiff -u -r1.1148 -r1.1149 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.24 -r1.25 src/tests/usr.bin/indent/Makefile
cvs rdiff -u -r1.1 -r0 src/tests/usr.bin/indent/block.0 \
src/tests/usr.bin/indent/block.0.stdout \
src/tests/usr.bin/indent/declarations.0.stderr \
src/tests/usr.bin/indent/elsecomment.0 \
src/tests/usr.bin/indent/elsecomment.0.pro \
src/tests/usr.bin/indent/indent_variables.0 \
src/tests/usr.bin/indent/indent_variables.0.pro \
src/tests/usr.bin/indent/indent_variables.0.stdout \
src/tests/usr.bin/indent/lex.0 src/tests/usr.bin/indent/lex.0.pro \
src/tests/usr.bin/indent/lex.0.stdout src/tests/usr.bin/indent/lineno.0 \
src/tests/usr.bin/indent/lineno.0.pro \
src/tests/usr.bin/indent/lineno.0.stdout
cvs rdiff -u -r1.4 -r0 src/tests/usr.bin/indent/declarations.0
cvs rdiff -u -r1.5 -r0 src/tests/usr.bin/indent/declarations.0.stdout
cvs rdiff -u -r1.2 -r0 src/tests/usr.bin/indent/elsecomment.0.stdout
cvs rdiff -u -r0 -r1.1 src/tests/usr.bin/indent/fmt_block.c \
src/tests/usr.bin/indent/fmt_decl.c \
src/tests/usr.bin/indent/fmt_else_comment.c \
src/tests/usr.bin/indent/lex_ident.c
cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/indent/opt_v.c \
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.1148 src/distrib/sets/lists/tests/mi:1.1149
--- src/distrib/sets/lists/tests/mi:1.1148 Tue Oct 19 20:20:24 2021
+++ src/distrib/sets/lists/tests/mi Fri Oct 22 19:27:53 2021
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1148 2021/10/19 20:20:24 rillig Exp $
+# $NetBSD: mi,v 1.1149 2021/10/22 19:27:53 rillig Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -4732,8 +4732,8 @@
./usr/tests/usr.bin/indent/Kyuafile tests-usr.bin-tests compattestfile,atf,kyua
./usr/tests/usr.bin/indent/binary.0 tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/binary.0.stdout tests-obsolete obsolete,atf
-./usr/tests/usr.bin/indent/block.0 tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/block.0.stdout tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/indent/block.0 tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/block.0.stdout tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/comment-line-end.0 tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/comment-line-end.0.stdout tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/comments.0 tests-obsolete obsolete,atf
@@ -4742,36 +4742,41 @@
./usr/tests/usr.bin/indent/cs.0 tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/cs.0.pro tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/cs.0.stdout tests-obsolete obsolete,atf
-./usr/tests/usr.bin/indent/declarations.0 tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/declarations.0.stderr tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/declarations.0.stdout tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/elsecomment.0 tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/elsecomment.0.pro tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/elsecomment.0.stdout tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/indent/declarations.0 tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/declarations.0.stderr tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/declarations.0.stdout tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/elsecomment.0 tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/elsecomment.0.pro tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/elsecomment.0.stdout tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/f_decls.0 tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/f_decls.0.stdout tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/float.0 tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/float.0.stdout tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/fmt_block.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/indent/fmt_decl.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/indent/fmt_else_comment.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/indent_off_on.c tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/indent_variables.0 tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/indent_variables.0.pro tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/indent_variables.0.stdout tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/indent/indent_variables.0 tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/indent_variables.0.pro tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/indent_variables.0.stdout tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/label.0 tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/label.0.pro tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/label.0.stdout tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/label.c tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/lex.0 tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/lex.0.pro tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/lex.0.stdout tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/indent/lex.0 tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/lex.0.pro tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/lex.0.stdout tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/lex.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/lex_char.0 tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/lex_char.0.pro tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/lex_char.0.stdout tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/indent/lex_ident.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/lex_string.0 tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/lex_string.0.pro tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/lex_string.0.stdout tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/lineno.0 tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/lineno.0.pro tests-usr.bin-tests compattestfile,atf
-./usr/tests/usr.bin/indent/lineno.0.stdout tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/indent/lineno.0 tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/lineno.0.pro tests-obsolete obsolete,atf
+./usr/tests/usr.bin/indent/lineno.0.stdout tests-obsolete obsolete,atf
./usr/tests/usr.bin/indent/list_head.0 tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/list_head.0.stdout tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/ncs.0 tests-obsolete obsolete,atf
Index: src/tests/usr.bin/indent/Makefile
diff -u src/tests/usr.bin/indent/Makefile:1.24 src/tests/usr.bin/indent/Makefile:1.25
--- src/tests/usr.bin/indent/Makefile:1.24 Tue Oct 19 20:20:24 2021
+++ src/tests/usr.bin/indent/Makefile Fri Oct 22 19:27:53 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.24 2021/10/19 20:20:24 rillig Exp $
+# $NetBSD: Makefile,v 1.25 2021/10/22 19:27:53 rillig Exp $
.include <bsd.own.mk>
@@ -9,33 +9,20 @@ TESTS_SH+= t_misc
TESTS_SH+= t_options
FILESDIR= ${TESTSDIR}
-FILES= block.0
-FILES+= block.0.stdout
-FILES+= declarations.0
-FILES+= declarations.0.stderr
-FILES+= declarations.0.stdout
-FILES+= elsecomment.0
-FILES+= elsecomment.0.stdout
-FILES+= elsecomment.0.pro
+FILES= fmt_block.c
+FILES+= fmt_decl.c
+FILES+= fmt_else_comment.c
FILES+= f_decls.0
FILES+= f_decls.0.stdout
FILES+= indent_off_on.c
-FILES+= indent_variables.0
-FILES+= indent_variables.0.pro
-FILES+= indent_variables.0.stdout
FILES+= label.c
-FILES+= lex.0
-FILES+= lex.0.pro
-FILES+= lex.0.stdout
+FILES+= lex_ident.c
FILES+= lex_char.0
FILES+= lex_char.0.pro
FILES+= lex_char.0.stdout
FILES+= lex_string.0
FILES+= lex_string.0.pro
FILES+= lex_string.0.stdout
-FILES+= lineno.0
-FILES+= lineno.0.pro
-FILES+= lineno.0.stdout
FILES+= list_head.0
FILES+= list_head.0.stdout
FILES+= offsetof.0
Index: src/tests/usr.bin/indent/opt_v.c
diff -u src/tests/usr.bin/indent/opt_v.c:1.2 src/tests/usr.bin/indent/opt_v.c:1.3
--- src/tests/usr.bin/indent/opt_v.c:1.2 Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_v.c Fri Oct 22 19:27:53 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_v.c,v 1.2 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_v.c,v 1.3 2021/10/22 19:27:53 rillig Exp $ */
/* $FreeBSD$ */
/*
@@ -65,3 +65,28 @@ example(void)
int sum2 = (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21);
}
#indent end
+
+
+#indent input
+/* Demonstrates line number counting in verbose mode. */
+
+int *function(void)
+{}
+#indent end
+
+#indent run -v
+/* Demonstrates line number counting in verbose mode. */
+
+int *
+function(void)
+{
+}
+There were 5 output lines and 1 comments
+(Lines with comments)/(Lines with code): 0.250
+#indent end
+/* In the above output, the '5' means 5 non-empty lines. */
+
+/*
+ * XXX: It's rather strange that -v writes to stdout, even in filter mode.
+ * This output belongs on stderr instead.
+ */
Index: src/tests/usr.bin/indent/t_misc.sh
diff -u src/tests/usr.bin/indent/t_misc.sh:1.2 src/tests/usr.bin/indent/t_misc.sh:1.3
--- src/tests/usr.bin/indent/t_misc.sh:1.2 Thu Oct 14 18:55:41 2021
+++ src/tests/usr.bin/indent/t_misc.sh Fri Oct 22 19:27:53 2021
@@ -1,5 +1,5 @@
#! /bin/sh
-# $NetBSD: t_misc.sh,v 1.2 2021/10/14 18:55:41 rillig Exp $
+# $NetBSD: t_misc.sh,v 1.3 2021/10/22 19:27:53 rillig Exp $
#
# Copyright (c) 2021 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -91,8 +91,90 @@ verbose_profile_body()
cat after.c
}
+atf_test_case 'nested_struct_declarations'
+nested_struct_declarations_body()
+{
+ # Trigger the warning about nested struct declarations.
+
+ cat <<-\EOF > code.c
+ struct s01 { struct s02 { struct s03 { struct s04 {
+ struct s05 { struct s06 { struct s07 { struct s08 {
+ struct s09 { struct s10 { struct s11 { struct s12 {
+ struct s13 { struct s14 { struct s15 { struct s16 {
+ struct s17 { struct s18 { struct s19 { struct s20 {
+ struct s21 { struct s22 { struct s23 { struct s24 {
+ };};};};
+ };};};};
+ };};};};
+ };};};};
+ };};};};
+ };};};};
+ EOF
+ cat <<-\EOF > expected.out
+ struct s01 {
+ struct s02 {
+ struct s03 {
+ struct s04 {
+ struct s05 {
+ struct s06 {
+ struct s07 {
+ struct s08 {
+ struct s09 {
+ struct s10 {
+ struct s11 {
+ struct s12 {
+ struct s13 {
+ struct s14 {
+ struct s15 {
+ struct s16 {
+ struct s17 {
+ struct s18 {
+ struct s19 {
+ struct s20 {
+ struct s21 {
+ struct s22 {
+ struct s23 {
+ struct s24 {
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ EOF
+ cat <<-\EOF > expected.err
+ /**INDENT** Warning@5: Reached internal limit of 20 struct levels */
+ /**INDENT** Warning@6: Reached internal limit of 20 struct levels */
+ /**INDENT** Warning@6: Reached internal limit of 20 struct levels */
+ /**INDENT** Warning@6: Reached internal limit of 20 struct levels */
+ /**INDENT** Warning@6: Reached internal limit of 20 struct levels */
+ EOF
+
+ atf_check -o 'file:expected.out' -e 'file:expected.err' \
+ "$indent" -i1 -nut < 'code.c'
+}
+
atf_init_test_cases()
{
atf_add_test_case 'in_place'
atf_add_test_case 'verbose_profile'
+ atf_add_test_case 'nested_struct_declarations'
}
Added files:
Index: src/tests/usr.bin/indent/fmt_block.c
diff -u /dev/null src/tests/usr.bin/indent/fmt_block.c:1.1
--- /dev/null Fri Oct 22 19:27:53 2021
+++ src/tests/usr.bin/indent/fmt_block.c Fri Oct 22 19:27:53 2021
@@ -0,0 +1,31 @@
+/* $NetBSD: fmt_block.c,v 1.1 2021/10/22 19:27:53 rillig Exp $ */
+/* $FreeBSD$ */
+
+#indent input
+void
+function(void)
+{
+ if (true) {
+
+ }
+
+ {
+ print("block");
+ }
+}
+#indent end
+
+#indent run
+void
+function(void)
+{
+ if (true) {
+
+/* $ FIXME: indent must not merge these braces. */
+ } {
+/* $ FIXME: the following empty line was not in the input. */
+
+ print("block");
+ }
+}
+#indent end
Index: src/tests/usr.bin/indent/fmt_decl.c
diff -u /dev/null src/tests/usr.bin/indent/fmt_decl.c:1.1
--- /dev/null Fri Oct 22 19:27:53 2021
+++ src/tests/usr.bin/indent/fmt_decl.c Fri Oct 22 19:27:53 2021
@@ -0,0 +1,262 @@
+/* $NetBSD: fmt_decl.c,v 1.1 2021/10/22 19:27:53 rillig Exp $ */
+/* $FreeBSD: head/usr.bin/indent/tests/declarations.0 334478 2018-06-01 09:41:15Z pstef $ */
+
+/* See FreeBSD r303570 */
+
+#indent input
+typedef void (*voidptr) (int *);
+#indent end
+
+#indent run
+typedef void (*voidptr)(int *);
+#indent end
+
+
+#indent input
+static const struct
+{
+ double x;
+ double y, z;
+} n[m + 1] =
+{
+ {
+ .0,
+ .9,
+ 5
+ }
+};
+#indent end
+
+#indent run
+static const struct {
+ double x;
+ double y, z;
+} n[m + 1] =
+{
+ {
+ .0,
+ .9,
+ 5
+ }
+};
+#indent end
+
+
+#indent input
+typedef struct Complex
+{
+ double x;
+ double y;
+} Complex;
+#indent end
+
+#indent run
+typedef struct Complex {
+ double x;
+ double y;
+} Complex;
+#indent end
+
+
+#indent input
+void
+t1 (char *a, int b,
+ void (*fn)(void))
+{}
+#indent end
+
+#indent run
+void
+t1(char *a, int b,
+ void (*fn)(void))
+{
+}
+#indent end
+
+
+#indent input
+void t2 (char *x, int y)
+{
+ int a,
+ b,
+ c;
+ int
+ *d,
+ *e,
+ *f;
+ int (*g)(),
+ (*h)(),
+ (*i)();
+ int j,
+ k,
+ l;
+ int m
+ ,n
+ ,o
+ ;
+ int chars[ /* push the comma beyond column 74 .... */ ], x;
+}
+#indent end
+
+#indent run
+void
+t2(char *x, int y)
+{
+ int a, b, c;
+ int
+ *d, *e, *f;
+ int (*g)(), (*h)(), (*i)();
+ int j, k, l;
+ int m
+ ,n
+ ,o
+ ;
+ int chars[ /* push the comma beyond column 74 .... */ ],
+ x;
+}
+#indent end
+
+
+#indent input
+const int int_minimum_size =
+MAXALIGN(offsetof(int, test)) + MAXIMUM_ALIGNOF;
+#indent end
+
+#indent run-equals-input
+
+
+#indent input
+int *int_create(void)
+{
+
+}
+#indent end
+
+#indent run
+int *
+int_create(void)
+{
+
+}
+#indent end
+
+
+#indent input
+static
+_attribute_printf(1, 2)
+void
+print_error(const char *fmt,...)
+{
+
+}
+#indent end
+
+#indent run
+static
+_attribute_printf(1, 2)
+void
+print_error(const char *fmt, ...)
+{
+
+}
+#indent end
+
+
+#indent input
+static LIST_HEAD(, alq) ald_active;
+static int ald_shutingdown = 0;
+struct thread *ald_thread;
+#indent end
+
+#indent run
+static LIST_HEAD(, alq) ald_active;
+static int ald_shutingdown = 0;
+struct thread *ald_thread;
+#indent end
+
+
+#indent input
+static int
+do_execve(td, args, mac_p)
+ struct thread *td;
+ struct image_args *args;
+ struct mac *mac_p;
+{
+
+}
+#indent end
+
+#indent run
+static int
+do_execve(td, args, mac_p)
+ struct thread *td;
+ struct image_args *args;
+ struct mac *mac_p;
+{
+
+}
+#indent end
+
+
+#indent input
+int
+my_printf(const char *fmt, ...)
+{
+}
+#indent end
+
+#indent run-equals-input
+
+
+/*
+ * Demonstrate how variable declarations are broken into several lines when
+ * the line length limit is set quite low.
+ */
+#indent input
+struct s0 a,b;
+struct s01 a,b;
+struct s012 a,b;
+struct s0123 a,b;
+struct s01234 a,b;
+struct s012345 a,b;
+struct s0123456 a,b;
+struct s01234567 a,b;
+struct s012345678 a,b;
+struct s0123456789 a,b;
+struct s01234567890 a,b;
+struct s012345678901 a,b;
+struct s0123456789012 a,b;
+struct s01234567890123 a,b;
+#indent end
+
+#indent run -l20 -di0
+/* $ XXX: Why is this declaration broken? There's plenty of space left. */
+struct s0 a,
+ b;
+struct s01 a,
+ b;
+struct s012 a,
+ b;
+struct s0123 a,
+ b;
+struct s01234 a,
+ b;
+struct s012345 a,
+ b;
+struct s0123456 a,
+ b;
+struct s01234567 a,
+ b;
+struct s012345678 a,
+ b;
+struct s0123456789 a,
+ b;
+struct s01234567890 a,
+ b;
+struct s012345678901 a,
+ b;
+struct s0123456789012 a,
+ b;
+struct s01234567890123 a,
+ b;
+#indent end
Index: src/tests/usr.bin/indent/fmt_else_comment.c
diff -u /dev/null src/tests/usr.bin/indent/fmt_else_comment.c:1.1
--- /dev/null Fri Oct 22 19:27:53 2021
+++ src/tests/usr.bin/indent/fmt_else_comment.c Fri Oct 22 19:27:53 2021
@@ -0,0 +1,97 @@
+/* $NetBSD: fmt_else_comment.c,v 1.1 2021/10/22 19:27:53 rillig Exp $ */
+/* $FreeBSD: head/usr.bin/indent/tests/elsecomment.0.pro 314613 2017-03-03 20:15:22Z ngie $ */
+
+/* See r303484 and r309342 */
+
+#indent input
+void t(void) {
+ /* The two if statements below excercise two different code paths. */
+
+ if (1) /* a */ int a; else /* b */ int b;
+
+ if (1) /* a */
+ int a;
+ else /* b */
+ int b;
+
+ if (1) {
+
+ }
+
+
+
+ /* Old indent would remove the 3 blank lines above, awaiting "else". */
+
+ if (1) {
+ int a;
+ }
+
+
+ else if (0) {
+ int b;
+ }
+ /* test */
+ else
+ ;
+
+ if (1)
+ ;
+ else /* Old indent would get very confused here */
+ /* We also mustn't assume that there's only one comment */
+ /* before the left brace. */
+ {
+
+
+ }
+}
+#indent end
+
+#indent run -bl
+void
+t(void)
+{
+ /* The two if statements below excercise two different code paths. */
+
+ if (1) /* a */
+ int a;
+ else /* b */
+ int b;
+
+ if (1) /* a */
+ int a;
+ else /* b */
+ int b;
+
+ if (1)
+ {
+
+ }
+
+
+
+ /*
+ * Old indent would remove the 3 blank lines above, awaiting "else".
+ */
+
+ if (1)
+ {
+ int a;
+ } else if (0)
+ {
+ int b;
+ }
+ /* test */
+ else
+ ;
+
+ if (1)
+ ;
+ else /* Old indent would get very confused here */
+ /* We also mustn't assume that there's only one comment */
+ /* before the left brace. */
+ {
+
+
+ }
+}
+#indent end
Index: src/tests/usr.bin/indent/lex_ident.c
diff -u /dev/null src/tests/usr.bin/indent/lex_ident.c:1.1
--- /dev/null Fri Oct 22 19:27:53 2021
+++ src/tests/usr.bin/indent/lex_ident.c Fri Oct 22 19:27:53 2021
@@ -0,0 +1,66 @@
+/* $NetBSD: lex_ident.c,v 1.1 2021/10/22 19:27:53 rillig Exp $ */
+/* $FreeBSD$ */
+
+/*
+ * Test lexing of tokens, such as keywords, identifiers, operators.
+ */
+
+/*
+ * Conceptually, backslash-newline is replaced with nothing, in a very early
+ * stage of the translation, see C11 5.1.1.2p1, item 2. Indent does not
+ * preserve these; in most cases, they are simply removed.
+ */
+#indent input
+in\
+t \
+var\
+iable;
+
+int
+ no_backslash;
+
+/* $ See check_size_token. */
+/* $ The default buffer size is 200, the limit is 195. */
+struct long_tag_name_to_overflow_the_token_buffer_4567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890;
+
+/* $ See check_size_token. */
+/* $ The difference between limit and start got incremented to 595. */
+struct long_tag_name_to_overflow_the_token_buffer_4567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890\
+12345678901234567890123456789012345678901234567890;
+#indent end
+
+#indent run
+/* $ XXX: The indentation of the backslash is one short of a tab. */
+int \
+ variable;
+
+int
+ no_backslash;
+
+struct long_tag_name_to_overflow_the_token_buffer_4567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890;
+
+struct long_tag_name_to_overflow_the_token_buffer_45678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890;
+#indent end
+
+
+/* This is a syntax error; see lex_word. */
+#indent input
+int identifier\n;
+#indent end
+
+#indent run
+int identifier \n;
+#indent end