Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/indent tests/indent: test parsing of command line op...
details: https://anonhg.NetBSD.org/src/rev/d7d1ae0f313c
branches: trunk
changeset: 988610:d7d1ae0f313c
user: rillig <rillig%NetBSD.org@localhost>
date: Thu Oct 07 18:07:25 2021 +0000
description:
tests/indent: test parsing of command line options in profile file
diffstat:
distrib/sets/lists/tests/mi | 5 ++++-
tests/usr.bin/indent/Makefile | 5 ++++-
tests/usr.bin/indent/opt.0 | 12 ++++++++++++
tests/usr.bin/indent/opt.0.pro | 27 +++++++++++++++++++++++++++
tests/usr.bin/indent/opt.0.stdout | 24 ++++++++++++++++++++++++
usr.bin/indent/args.c | 9 +++++----
6 files changed, 76 insertions(+), 6 deletions(-)
diffs (144 lines):
diff -r 0b6cdca8ebed -r d7d1ae0f313c distrib/sets/lists/tests/mi
--- a/distrib/sets/lists/tests/mi Thu Oct 07 17:38:21 2021 +0000
+++ b/distrib/sets/lists/tests/mi Thu Oct 07 18:07:25 2021 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1132 2021/10/05 17:09:45 rillig Exp $
+# $NetBSD: mi,v 1.1133 2021/10/07 18:07:25 rillig Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -4985,6 +4985,9 @@
./usr/tests/usr.bin/indent/opt-v.0 tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/opt-v.0.pro tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/opt-v.0.stdout tests-usr.bin-tests compattestfile,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/parens.0 tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/parens.0.pro tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/indent/parens.0.stdout tests-usr.bin-tests compattestfile,atf
diff -r 0b6cdca8ebed -r d7d1ae0f313c tests/usr.bin/indent/Makefile
--- a/tests/usr.bin/indent/Makefile Thu Oct 07 17:38:21 2021 +0000
+++ b/tests/usr.bin/indent/Makefile Thu Oct 07 18:07:25 2021 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.12 2021/10/05 17:09:45 rillig Exp $
+# $NetBSD: Makefile,v 1.13 2021/10/07 18:07:25 rillig Exp $
.include <bsd.own.mk>
@@ -261,6 +261,9 @@
FILES+= opt-v.0
FILES+= opt-v.0.pro
FILES+= opt-v.0.stdout
+FILES+= opt.0
+FILES+= opt.0.pro
+FILES+= opt.0.stdout
FILES+= parens.0
FILES+= parens.0.stdout
FILES+= parens.0.pro
diff -r 0b6cdca8ebed -r d7d1ae0f313c tests/usr.bin/indent/opt.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/usr.bin/indent/opt.0 Thu Oct 07 18:07:25 2021 +0000
@@ -0,0 +1,12 @@
+/* $NetBSD: opt.0,v 1.1 2021/10/07 18:07:25 rillig Exp $ */
+/* $FreeBSD$ */
+
+/*
+ * Test parsing of command line options from a profile file.
+ */
+
+int global_var;
+
+int function(int expr) {
+switch (expr) { case 1: return 1; default: return 0; }
+}
diff -r 0b6cdca8ebed -r d7d1ae0f313c tests/usr.bin/indent/opt.0.pro
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/usr.bin/indent/opt.0.pro Thu Oct 07 18:07:25 2021 +0000
@@ -0,0 +1,27 @@
+/* $NetBSD: opt.0.pro,v 1.1 2021/10/07 18:07:25 rillig Exp $ */
+/* $FreeBSD$ */
+
+/* The latter of the two options wins. */
+-di5
+-di12
+
+/* It is possible to embed comments in the options, but nobody does that. */
+-/* comment */bacc
+-T/* define a type */custom_type
+
+/*
+ * For int or float options, trailing garbage is ignored.
+ *
+ * See atoi, atof.
+ */
+-i3garbage
+-cli3.5garbage
+
+-b/*/acc /* The comment is '/' '*' '/', making the option '-bacc'. */
+
+/*
+ * For boolean options, trailing garbage is ignored.
+ *
+ * See strncmp
+ */
+-bacchus /* Is interpreted as '-bacc'. */
diff -r 0b6cdca8ebed -r d7d1ae0f313c tests/usr.bin/indent/opt.0.stdout
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/usr.bin/indent/opt.0.stdout Thu Oct 07 18:07:25 2021 +0000
@@ -0,0 +1,24 @@
+/* $NetBSD: opt.0.stdout,v 1.1 2021/10/07 18:07:25 rillig Exp $ */
+/* $FreeBSD$ */
+
+/*
+ * Test parsing of command line options from a profile file.
+ */
+
+/* $ 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;
+ }
+}
diff -r 0b6cdca8ebed -r d7d1ae0f313c usr.bin/indent/args.c
--- a/usr.bin/indent/args.c Thu Oct 07 17:38:21 2021 +0000
+++ b/usr.bin/indent/args.c Thu Oct 07 18:07:25 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: args.c,v 1.46 2021/10/07 17:38:21 rillig Exp $ */
+/* $NetBSD: args.c,v 1.47 2021/10/07 18:07:25 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@
#include <sys/cdefs.h>
#if defined(__NetBSD__)
-__RCSID("$NetBSD: args.c,v 1.46 2021/10/07 17:38:21 rillig Exp $");
+__RCSID("$NetBSD: args.c,v 1.47 2021/10/07 18:07:25 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/args.c 336318 2018-07-15 21:04:21Z pstef $");
#endif
@@ -282,9 +282,10 @@
errx(1, "%s: unknown parameter \"%s\"", option_source, arg - 1);
found:
- if (p->p_is_bool)
+ if (p->p_is_bool) {
+ /* XXX: Trailing garbage in param_start is silently ignored. */
*(bool *)p->p_var = p->p_may_negate ? arg[0] != 'n' : p->p_bool_value;
- else {
+ } else {
if (!isdigit((unsigned char)*param_start))
errx(1, "%s: ``%s'' requires a parameter",
option_source, p->p_name);
Home |
Main Index |
Thread Index |
Old Index