Module Name:    src
Committed By:   rillig
Date:           Mon Oct 18 07:11:31 UTC 2021

Modified Files:
        src/tests/usr.bin/indent: opt_bacc.c opt_bad.c opt_badp.c opt_bap.c
            opt_cdb.c opt_dj.c opt_eei.c opt_ei.c opt_fc1.c opt_fcb.c opt_ip.c
            opt_lpl.c opt_psl.c opt_sc.c t_options.sh

Log Message:
tests/indent: merge duplicate input/output and output/output

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/indent/opt_bacc.c \
    src/tests/usr.bin/indent/opt_bad.c src/tests/usr.bin/indent/opt_bap.c \
    src/tests/usr.bin/indent/opt_dj.c
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/indent/opt_badp.c \
    src/tests/usr.bin/indent/opt_cdb.c src/tests/usr.bin/indent/opt_eei.c \
    src/tests/usr.bin/indent/opt_ei.c src/tests/usr.bin/indent/opt_fc1.c \
    src/tests/usr.bin/indent/opt_fcb.c src/tests/usr.bin/indent/opt_ip.c \
    src/tests/usr.bin/indent/opt_lpl.c src/tests/usr.bin/indent/opt_psl.c \
    src/tests/usr.bin/indent/opt_sc.c
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/indent/t_options.sh

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/opt_bacc.c
diff -u src/tests/usr.bin/indent/opt_bacc.c:1.2 src/tests/usr.bin/indent/opt_bacc.c:1.3
--- src/tests/usr.bin/indent/opt_bacc.c:1.2	Sat Oct 16 06:02:18 2021
+++ src/tests/usr.bin/indent/opt_bacc.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_bacc.c,v 1.2 2021/10/16 06:02:18 rillig Exp $ */
+/* $NetBSD: opt_bacc.c,v 1.3 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -39,13 +39,7 @@ int		c;
  * With '-nbacc' the code is unchanged since there are no blank lines to
  * remove.
  */
-#indent run -nbacc
-int		a;
-#if 0
-int		b;
-#endif
-int		c;
-#indent end
+#indent run-equals-input -nbacc
 
 
 /* Example code containing blank lines. */
@@ -74,17 +68,7 @@ int		space_c;
 #indent end
 
 /* The option '-nbacc' does not remove anything. */
-#indent run -nbacc
-int		space_a;
-
-#if 0
-
-int		space_b;
-
-#endif
-
-int		space_c;
-#indent end
+#indent run-equals-input -nbacc
 
 /*
  * Preprocessing directives can also occur in function bodies.
Index: src/tests/usr.bin/indent/opt_bad.c
diff -u src/tests/usr.bin/indent/opt_bad.c:1.2 src/tests/usr.bin/indent/opt_bad.c:1.3
--- src/tests/usr.bin/indent/opt_bad.c:1.2	Sat Oct 16 09:39:21 2021
+++ src/tests/usr.bin/indent/opt_bad.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_bad.c,v 1.2 2021/10/16 09:39:21 rillig Exp $ */
+/* $NetBSD: opt_bad.c,v 1.3 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -28,13 +28,7 @@ void		function_declaration(void);
 /* comment */
 #indent end
 
-#indent run -nbad
-int		global_variable;
-void		function_declaration(void);
-#if 0
-#endif
-/* comment */
-#indent end
+#indent run-equals-prev-output -nbad
 
 /* Test local declarations. */
 #indent input
Index: src/tests/usr.bin/indent/opt_bap.c
diff -u src/tests/usr.bin/indent/opt_bap.c:1.2 src/tests/usr.bin/indent/opt_bap.c:1.3
--- src/tests/usr.bin/indent/opt_bap.c:1.2	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_bap.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_bap.c,v 1.2 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_bap.c,v 1.3 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -65,33 +65,4 @@ has_several_blank_lines_below(void)
 int		the_end;
 #indent end
 
-#indent run -nbap
-static void
-one_liner(void)
-{
-}
-static void
-several_lines(void)
-{
-	action();
-}
-int
-main(void)
-{
-}
-int		global_variable;
-
-void
-already_has_blank_line_below(void)
-{
-}
-
-void
-has_several_blank_lines_below(void)
-{
-}
-
-
-
-int		the_end;
-#indent end
+#indent run-equals-prev-output -nbap
Index: src/tests/usr.bin/indent/opt_dj.c
diff -u src/tests/usr.bin/indent/opt_dj.c:1.2 src/tests/usr.bin/indent/opt_dj.c:1.3
--- src/tests/usr.bin/indent/opt_dj.c:1.2	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_dj.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_dj.c,v 1.2 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_dj.c,v 1.3 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -28,14 +28,7 @@ const void ******vpppppp;
 const void ********vpppppppp;
 #indent end
 
-#indent run -ndj
-int		i;
-int	       *ip;
-const char     *ccp;
-const void *****vppppp;
-const void ******vpppppp;
-const void ********vpppppppp;
-#indent end
+#indent run-equals-prev-output -ndj
 
 #indent input
 void example(void) {

Index: src/tests/usr.bin/indent/opt_badp.c
diff -u src/tests/usr.bin/indent/opt_badp.c:1.3 src/tests/usr.bin/indent/opt_badp.c:1.4
--- src/tests/usr.bin/indent/opt_badp.c:1.3	Sun Oct 17 17:20:47 2021
+++ src/tests/usr.bin/indent/opt_badp.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_badp.c,v 1.3 2021/10/17 17:20:47 rillig Exp $ */
+/* $NetBSD: opt_badp.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -76,4 +76,4 @@ declaration_with_several_blank_lines(voi
 }
 #indent end
 
-#indent run-identity -nbadp -ldi0
+#indent run-equals-input -nbadp -ldi0
Index: src/tests/usr.bin/indent/opt_cdb.c
diff -u src/tests/usr.bin/indent/opt_cdb.c:1.3 src/tests/usr.bin/indent/opt_cdb.c:1.4
--- src/tests/usr.bin/indent/opt_cdb.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_cdb.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_cdb.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_cdb.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -72,13 +72,7 @@ int		gb;		/* A multi-line comment. */
 int		gc;		/* A multi-line comment. */
 #indent end
 
-#indent run -ncdb
-int		ga;		/* A single-line comment. */
-
-int		gb;		/* A multi-line comment. */
-
-int		gc;		/* A multi-line comment. */
-#indent end
+#indent run-equals-prev-output -ncdb
 
 /*
  * Block comments that are inside a function.
Index: src/tests/usr.bin/indent/opt_eei.c
diff -u src/tests/usr.bin/indent/opt_eei.c:1.3 src/tests/usr.bin/indent/opt_eei.c:1.4
--- src/tests/usr.bin/indent/opt_eei.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_eei.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_eei.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_eei.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -40,19 +40,7 @@ less(int a, int b)
 }
 #indent end
 
-#indent run -neei
-bool
-less(int a, int b)
-{
-	if (a <
-	    b)
-		return true;
-	if (a
-	    <
-	    b)
-		return true;
-}
-#indent end
+#indent run-equals-input -neei
 
 /*
  * When the indentation level is the same as the continuation indentation, the
Index: src/tests/usr.bin/indent/opt_ei.c
diff -u src/tests/usr.bin/indent/opt_ei.c:1.3 src/tests/usr.bin/indent/opt_ei.c:1.4
--- src/tests/usr.bin/indent/opt_ei.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_ei.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_ei.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_ei.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -27,21 +27,7 @@ example(int n)
 }
 #indent end
 
-#indent run -ei
-void
-example(int n)
-{
-	if (n > 99) {
-		print("large");
-	} else if (n > 9) {
-		print("double-digit");
-	} else if (n > 0)
-		print("positive");
-	else {
-		print("negative");
-	}
-}
-#indent end
+#indent run-equals-input -ei
 
 #indent run -nei
 void
Index: src/tests/usr.bin/indent/opt_fc1.c
diff -u src/tests/usr.bin/indent/opt_fc1.c:1.3 src/tests/usr.bin/indent/opt_fc1.c:1.4
--- src/tests/usr.bin/indent/opt_fc1.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_fc1.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_fc1.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_fc1.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -28,15 +28,7 @@
  */
 #indent end
 
-#indent run -nfc1
-/*
- * A comment
- * in column 1.
- *
- *
- *
- */
-#indent end
+#indent run-equals-input -nfc1
 
 
 #indent input
@@ -146,9 +138,4 @@
 				 * second comment */
 #indent end
 
-#indent run -nfc1
- /* comment */ int decl2;	/* comment */
- /* looooooooooooooooooooooooooooooooooooooooong first comment */ int decl2;	/* second comment */
- /* first comment */ int decl2;	/* looooooooooooooooooooooooooooooooooooooooong
-				 * second comment */
-#indent end
+#indent run-equals-prev-output -nfc1
Index: src/tests/usr.bin/indent/opt_fcb.c
diff -u src/tests/usr.bin/indent/opt_fcb.c:1.3 src/tests/usr.bin/indent/opt_fcb.c:1.4
--- src/tests/usr.bin/indent/opt_fcb.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_fcb.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_fcb.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_fcb.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -40,19 +40,7 @@
  */
 #indent end
 
-#indent run -nfcb
-/*
- * Not
- *
- * so carefully formatted comment
- */
-
-/*-
- * car         mat         men
- *    efu   for   ted   com   t
- *       lly         box       .
- */
-#indent end
+#indent run-equals-prev-output -nfcb
 
 
 #indent input
@@ -91,20 +79,4 @@ example(void)
 }
 #indent end
 
-#indent run -nfcb
-void
-example(void)
-{
-	/*
-	 * Not
-	 *
-	 * so carefully formatted comment
-	 */
-
-	/*-
-	 * car         mat         men
-	 *    efu   for   ted   com   t
-	 *       lly         box       .
-	 */
-}
-#indent end
+#indent run-equals-prev-output -nfcb
Index: src/tests/usr.bin/indent/opt_ip.c
diff -u src/tests/usr.bin/indent/opt_ip.c:1.3 src/tests/usr.bin/indent/opt_ip.c:1.4
--- src/tests/usr.bin/indent/opt_ip.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_ip.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_ip.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_ip.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -49,21 +49,4 @@ several_parameters_3(
 		     const char *cp);
 #indent end
 
-#indent run -nip
-int
-several_parameters_1(int a,
-		     int b,
-		     const char *cp);
-
-int
-several_parameters_2(
-		     int a,
-		     int b,
-		     const char *cp);
-
-int
-several_parameters_3(
-		     int a1, int a2,
-		     int b1, int b2,
-		     const char *cp);
-#indent end
+#indent run-equals-prev-output -nip
Index: src/tests/usr.bin/indent/opt_lpl.c
diff -u src/tests/usr.bin/indent/opt_lpl.c:1.3 src/tests/usr.bin/indent/opt_lpl.c:1.4
--- src/tests/usr.bin/indent/opt_lpl.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_lpl.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_lpl.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_lpl.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -66,28 +66,4 @@ example(void)
 }
 #indent end
 
-#indent run -nlpl
-void
-example(void)
-{
-	int		sum1 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21;
-	int		sum2 = (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21);
-
-/* $ XXX: There should be at least _some_ indentation for the */
-/* $ continuation lines. */
-	int		sum3 = 1 + 2 + 3 + 4 + 5 +
-	6 + 7 + 8 + 9 + 10 +
-	11 + 12 + 13 + 14 + 15 +
-	16 + 17 + 18 + 19 + 20 +
-	21;
-	int		sum4 = (1 + 2 + 3 + 4 + 5 +
-				6 + 7 + 8 + 9 + 10 +
-				11 + 12 + 13 + 14 + 15 +
-				16 + 17 + 18 + 19 + 20 +
-				21);
-
-	call_function(call_function(call_function(call_function(call_function(call_function())))));
-
-	call_function((call_function(call_function(call_function(call_function(call_function()))))));
-}
-#indent end
+#indent run-equals-prev-output -nlpl
Index: src/tests/usr.bin/indent/opt_psl.c
diff -u src/tests/usr.bin/indent/opt_psl.c:1.3 src/tests/usr.bin/indent/opt_psl.c:1.4
--- src/tests/usr.bin/indent/opt_psl.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_psl.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_psl.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_psl.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -20,9 +20,7 @@ void function_declaration(void);
 void		function_declaration(void);
 #indent end
 
-#indent run -npsl
-void		function_declaration(void);
-#indent end
+#indent run-equals-prev-output -npsl
 
 /*
  * Multi-line function declarations are affected by these options since indent
Index: src/tests/usr.bin/indent/opt_sc.c
diff -u src/tests/usr.bin/indent/opt_sc.c:1.3 src/tests/usr.bin/indent/opt_sc.c:1.4
--- src/tests/usr.bin/indent/opt_sc.c:1.3	Sat Oct 16 21:32:10 2021
+++ src/tests/usr.bin/indent/opt_sc.c	Mon Oct 18 07:11:31 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: opt_sc.c,v 1.3 2021/10/16 21:32:10 rillig Exp $ */
+/* $NetBSD: opt_sc.c,v 1.4 2021/10/18 07:11:31 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -59,14 +59,6 @@ comment without asterisks
  */
 #indent end
 
-#indent run -sc
-/**
- * Javadoc, adopted by several other programming languages.
- */
-#indent end
+#indent run-equals-input -sc
 
-#indent run -nsc
-/**
- * Javadoc, adopted by several other programming languages.
- */
-#indent end
+#indent run-equals-input -nsc

Index: src/tests/usr.bin/indent/t_options.sh
diff -u src/tests/usr.bin/indent/t_options.sh:1.4 src/tests/usr.bin/indent/t_options.sh:1.5
--- src/tests/usr.bin/indent/t_options.sh:1.4	Sun Oct 17 17:23:59 2021
+++ src/tests/usr.bin/indent/t_options.sh	Mon Oct 18 07:11:31 2021
@@ -1,5 +1,5 @@
 #! /bin/sh
-# $NetBSD: t_options.sh,v 1.4 2021/10/17 17:23:59 rillig Exp $
+# $NetBSD: t_options.sh,v 1.5 2021/10/18 07:11:31 rillig Exp $
 #
 # Copyright (c) 2021 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -40,10 +40,13 @@
 #		Runs indent on the input, using the given options.
 #	#indent end [description]
 #		Finishes an '#indent input' or '#indent run' section.
-#	#indent run-identity [options]
+#	#indent run-equals-input [options]
 #		Runs indent on the input, expecting unmodified output.
+#	#indent run-equals-prev-output [options]
+#		Runs indent on the input, expecting the same output as from
+#		the previous run.
 #
-# All text between these directives is not passed to indent.
+# All text outside these directives is not passed to indent.
 
 srcdir=$(atf_get_srcdir)
 indent=$(atf_config_get usr.bin.indent.test_indent /usr/bin/indent)
@@ -53,82 +56,122 @@ indent=$(atf_config_get usr.bin.indent.t
 #
 # shellcheck disable=SC2016
 check_awk='
-function die(msg)
+function die(lineno, msg)
 {
 	if (!died) {
 		died = 1
-		print msg > "/dev/stderr"
+		print FILENAME ":" lineno ": error: " msg > "/dev/stderr"
 		exit(1)
 	}
 }
 
-# Skip comments starting with dollar; they are used for marking bugs and
-# adding other remarks directly in the input or output sections.
+BEGIN {
+	section = ""		# "", "input" or "run"
+	section_excl_comm = ""	# without dollar comments
+	section_incl_comm = ""	# with dollar comments
+
+	input_excl_comm = ""	# stdin for indent
+	input_incl_comm = ""	# used for duplicate checks
+	unused_input_lineno = 0
+
+	output_excl_comm = ""	# expected output
+	output_incl_comm = ""	# used for duplicate checks
+	output_lineno = 0
+}
+
+# Hide comments starting with dollar from indent; they are used for marking
+# bugs and adding other remarks directly in the input or output sections.
 /^[[:space:]]*\/[*][[:space:]]*[$].*[*]\/$/ ||
     /^[[:space:]]*\/\/[[:space:]]*[$]/ {
+	if (section != "")
+		section_incl_comm = section_incl_comm $0 "\n"
 	next
 }
 
+function check_unused_input()
+{
+	if (unused_input_lineno != 0)
+		die(unused_input_lineno, "input is not used")
+}
+
+function run_indent(inp,   i, cmd)
+{
+	cmd = ENVIRON["INDENT"]
+	for (i = 3; i <= NF; i++)
+		cmd = cmd " " $i
+	printf("%s", inp) | cmd
+	close(cmd)
+}
+
 /^#/ && $1 == "#indent" {
 	print $0
 	print $0 > "expected.out"
 
 	if ($2 == "input") {
-		if (unused != 0)
-			die(FILENAME ":" unused ": input is not used")
-		mode = "input"
-		in_lines_len = 0
-		prev_input_all = input_all
-		input_all = ""
-		unused = NR
+		section = "input"
+		section_excl_comm = ""
+		section_incl_comm = ""
+		unused_input_lineno = NR
 
 	} else if ($2 == "run") {
-		mode = "run"
-		cmd = ENVIRON["INDENT"]
-		for (i = 3; i <= NF; i++)
-			cmd = cmd " " $i
-		for (i = 0; i < in_lines_len; i++)
-			print in_lines[i] | cmd
-		close(cmd)
-		unused = 0
-
-	} else if ($2 == "run-identity") {
-		cmd = ENVIRON["INDENT"]
-		for (i = 3; i <= NF; i++)
-			cmd = cmd " " $i
-		for (i = 0; i < in_lines_len; i++) {
-			print in_lines[i] | cmd
-			print in_lines[i] > "expected.out"
-		}
-		close(cmd)
-		unused = 0
+		section = "run"
+		output_lineno = NR
+		section_excl_comm = ""
+		section_incl_comm = ""
+
+		run_indent(input_excl_comm)
+		unused_input_lineno = 0
+
+	} else if ($2 == "run-equals-input") {
+		run_indent(input_excl_comm)
+		printf("%s", input_excl_comm) > "expected.out"
+		unused_input_lineno = 0
+
+	} else if ($2 == "run-equals-prev-output") {
+		run_indent(input_excl_comm)
+		printf("%s", output_excl_comm) > "expected.out"
+		unused_input_lineno = 0
 
 	} else if ($2 == "end") {
-		if (mode == "input" && input_all == prev_input_all)
-			die(FILENAME ":" NR ": error: duplicate input")
-		mode = ""
+		if (section == "input" && section_incl_comm == input_incl_comm)
+			die(NR, "duplicate input; remove this section")
+		if (section == "run" && section_incl_comm == input_incl_comm)
+			die(output_lineno,
+			    "output == input; use run-equals-input")
+		if (section == "run" && section_incl_comm == output_incl_comm)
+			die(output_lineno,
+			    "duplicate output; use run-equals-prev-output")
+
+		if (section == "input") {
+			input_excl_comm = section_excl_comm
+			input_incl_comm = section_incl_comm
+		}
+		if (section == "run") {
+			output_excl_comm = section_excl_comm
+			output_incl_comm = section_incl_comm
+		}
+		section = ""
 
 	} else {
-		die(FILENAME ":" NR ": error: invalid line \"" $0 "\"")
+		die(NR, "invalid line \"" $0 "\"")
 	}
 
 	next
 }
 
-mode == "input" {
-	in_lines[in_lines_len++] = $0
-	input_all = input_all $0 "\n"
+section == "input" || section == "run" {
+	section_excl_comm = section_excl_comm $0 "\n"
+	section_incl_comm = section_incl_comm $0 "\n"
 }
 
-mode == "run" {
+section == "run" {
 	print $0 > "expected.out"
 }
 
 END {
-	if (mode != "")
-		die(FILENAME ":" NR ": still in mode \"" mode "\"")
-	if (unused != 0)
-		die(FILENAME ":" unused ": input is not used")
+	if (section != "")
+		die(NR, "still in section \"" section "\"")
+	check_unused_input()
 }
 '
 

Reply via email to