Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make/unit-tests make(1): add test for function argum...



details:   https://anonhg.NetBSD.org/src/rev/f65d3c5a5901
branches:  trunk
changeset: 1016129:f65d3c5a5901
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sun Nov 08 21:40:13 2020 +0000

description:
make(1): add test for function argument with unbalanced braces

diffstat:

 usr.bin/make/unit-tests/cond-func.exp |  12 ++++++------
 usr.bin/make/unit-tests/cond-func.mk  |  15 +++++++++++++--
 2 files changed, 19 insertions(+), 8 deletions(-)

diffs (55 lines):

diff -r c4a16fa1fdf3 -r f65d3c5a5901 usr.bin/make/unit-tests/cond-func.exp
--- a/usr.bin/make/unit-tests/cond-func.exp     Sun Nov 08 21:33:05 2020 +0000
+++ b/usr.bin/make/unit-tests/cond-func.exp     Sun Nov 08 21:40:13 2020 +0000
@@ -1,9 +1,9 @@
-make: "cond-func.mk" line 29: warning: Missing closing parenthesis for defined()
-make: "cond-func.mk" line 29: Malformed conditional (!defined(A B))
-make: "cond-func.mk" line 44: warning: Missing closing parenthesis for defined()
-make: "cond-func.mk" line 44: Malformed conditional (!defined(A&B))
-make: "cond-func.mk" line 47: warning: Missing closing parenthesis for defined()
-make: "cond-func.mk" line 47: Malformed conditional (!defined(A|B))
+make: "cond-func.mk" line 34: warning: Missing closing parenthesis for defined()
+make: "cond-func.mk" line 34: Malformed conditional (!defined(A B))
+make: "cond-func.mk" line 49: warning: Missing closing parenthesis for defined()
+make: "cond-func.mk" line 49: Malformed conditional (!defined(A&B))
+make: "cond-func.mk" line 52: warning: Missing closing parenthesis for defined()
+make: "cond-func.mk" line 52: Malformed conditional (!defined(A|B))
 make: Fatal errors encountered -- cannot continue
 make: stopped in unit-tests
 exit status 1
diff -r c4a16fa1fdf3 -r f65d3c5a5901 usr.bin/make/unit-tests/cond-func.mk
--- a/usr.bin/make/unit-tests/cond-func.mk      Sun Nov 08 21:33:05 2020 +0000
+++ b/usr.bin/make/unit-tests/cond-func.mk      Sun Nov 08 21:40:13 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: cond-func.mk,v 1.5 2020/11/08 21:33:05 rillig Exp $
+# $NetBSD: cond-func.mk,v 1.6 2020/11/08 21:40:13 rillig Exp $
 #
 # Tests for those parts of the functions in .if conditions that are common
 # among several functions.
@@ -9,7 +9,12 @@
 DEF=                   defined
 ${:UA B}=              variable name with spaces
 ${:UVAR(value)}=       variable name with parentheses
-${:UVAR{value}}=       variable name with braces
+${:UVAR{value}}=       variable name with balanced braces
+
+# Really strange variable names must be given indirectly via another variable,
+# so that no unbalanced braces appear in the top-level expression.
+VARNAME_UNBALANCED_BRACES=     VAR{{{value
+${VARNAME_UNBALANCED_BRACES}=  variable name with unbalanced braces
 
 .if !defined(DEF)
 .  error
@@ -59,6 +64,12 @@
 .  error
 .endif
 
+# Braces do not have any special meaning when parsing arguments.
+# They don't need to be balanced.
+.if !defined(VAR{{{value)
+.  error
+.endif
+
 # There may be spaces around the operators and parentheses, and even
 # inside the parentheses.  The spaces inside the parentheses are not
 # allowed for the empty() function (see cond-func-empty.mk), therefore



Home | Main Index | Thread Index | Old Index