Module Name:    src
Committed By:   rillig
Date:           Fri Jun  9 09:45:55 UTC 2023

Modified Files:
        src/tests/usr.bin/indent: fmt_decl.c fmt_expr.c psym_stmt.c

Log Message:
tests/indent: add real-life test cases from make(1) and lint(1)


To generate a diff of this commit:
cvs rdiff -u -r1.50 -r1.51 src/tests/usr.bin/indent/fmt_decl.c
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/indent/fmt_expr.c \
    src/tests/usr.bin/indent/psym_stmt.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/usr.bin/indent/fmt_decl.c
diff -u src/tests/usr.bin/indent/fmt_decl.c:1.50 src/tests/usr.bin/indent/fmt_decl.c:1.51
--- src/tests/usr.bin/indent/fmt_decl.c:1.50	Thu Jun  8 21:18:54 2023
+++ src/tests/usr.bin/indent/fmt_decl.c	Fri Jun  9 09:45:55 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: fmt_decl.c,v 1.50 2023/06/08 21:18:54 rillig Exp $	*/
+/*	$NetBSD: fmt_decl.c,v 1.51 2023/06/09 09:45:55 rillig Exp $	*/
 
 /*
  * Tests for declarations of global variables, external functions, and local
@@ -153,6 +153,7 @@ t2(char *x, int y)
 
 //indent input
 const int	int_minimum_size =
+// $ FIXME: Missing indentation.
 MAXALIGN(offsetof(int, test)) + MAXIMUM_ALIGNOF;
 //indent end
 
@@ -1002,3 +1003,49 @@ struct a {
 //indent end
 
 //indent run-equals-input -di0
+
+
+//indent input
+static FILE *ArchFindMember(const char *, const char *,
+			    struct ar_hdr *, const char *);
+
+bool
+Job_CheckCommands(GNode *gn, void (*abortProc)(const char *, ...))
+{
+}
+
+static void MAKE_ATTR_PRINTFLIKE(5, 0)
+ParseVErrorInternal(FILE *f, bool useVars, const GNode *gn,
+		    ParseErrorLevel level, const char *fmt, va_list ap)
+{
+}
+
+typedef struct {
+	const char *m_name;
+} mod_t;
+//indent end
+
+//indent run -fbs -di0 -psl
+// $ FIXME: Must be detected as a function declaration, not a definition.
+static FILE *
+ArchFindMember(const char *, const char *,
+	       struct ar_hdr *, const char *);
+
+bool
+Job_CheckCommands(GNode *gn, void (*abortProc)(const char *, ...))
+{
+}
+
+static void
+MAKE_ATTR_PRINTFLIKE(5, 0)
+ParseVErrorInternal(FILE *f, bool useVars, const GNode *gn,
+		    ParseErrorLevel level, const char *fmt, va_list ap)
+{
+}
+
+typedef struct {
+	const char *m_name;
+}
+// $ FIXME: Remove this line break.
+mod_t;
+//indent end

Index: src/tests/usr.bin/indent/fmt_expr.c
diff -u src/tests/usr.bin/indent/fmt_expr.c:1.4 src/tests/usr.bin/indent/fmt_expr.c:1.5
--- src/tests/usr.bin/indent/fmt_expr.c:1.4	Sun Apr 24 09:04:12 2022
+++ src/tests/usr.bin/indent/fmt_expr.c	Fri Jun  9 09:45:55 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: fmt_expr.c,v 1.4 2022/04/24 09:04:12 rillig Exp $ */
+/* $NetBSD: fmt_expr.c,v 1.5 2023/06/09 09:45:55 rillig Exp $ */
 
 /*
  * Tests for all kinds of expressions that are not directly related to unary
@@ -23,3 +23,14 @@ t(void)
 	int		n = malloc(offsetof(struct s, f) + 1);
 }
 //indent end
+
+
+//indent input
+{
+	for (ln = gnodes->first; ln != NULL; ln = ln->next)
+// $ FIXME: No space after the cast.
+		*(GNode **) Vector_Push(&vec) = ln->datum;
+}
+//indent end
+
+//indent run-equals-input
Index: src/tests/usr.bin/indent/psym_stmt.c
diff -u src/tests/usr.bin/indent/psym_stmt.c:1.4 src/tests/usr.bin/indent/psym_stmt.c:1.5
--- src/tests/usr.bin/indent/psym_stmt.c:1.4	Sun Apr 24 10:36:37 2022
+++ src/tests/usr.bin/indent/psym_stmt.c	Fri Jun  9 09:45:55 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: psym_stmt.c,v 1.4 2022/04/24 10:36:37 rillig Exp $ */
+/* $NetBSD: psym_stmt.c,v 1.5 2023/06/09 09:45:55 rillig Exp $ */
 
 /*
  * Tests for the parser symbol psym_stmt, which represents a statement on the
@@ -26,3 +26,18 @@ function(void)
  * syntactic macro, especially not when its definition is in a header file.
  */
 //indent run-equals-input
+
+
+//indent input
+{
+	TAILQ_FOREACH(a, b, c) {
+		a =
+// $ FIXME: The 'b' must be indented as a continuation.
+// $ The '{' in line 2 sets ps.block_init though, even though it does not
+// $ follow a '='.
+		b;
+	}
+}
+//indent end
+
+//indent run-equals-input -di0 -nlp -ci4

Reply via email to