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 the ::+= modif...



details:   https://anonhg.NetBSD.org/src/rev/585c229b03ba
branches:  trunk
changeset: 1015276:585c229b03ba
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sun Oct 18 21:37:24 2020 +0000

description:
make(1): add test for the ::+= modifier expanding its right-hand side

diffstat:

 usr.bin/make/unit-tests/varmod-assign.mk |  16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diffs (27 lines):

diff -r fde167db2c66 -r 585c229b03ba usr.bin/make/unit-tests/varmod-assign.mk
--- a/usr.bin/make/unit-tests/varmod-assign.mk  Sun Oct 18 21:36:22 2020 +0000
+++ b/usr.bin/make/unit-tests/varmod-assign.mk  Sun Oct 18 21:37:24 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-assign.mk,v 1.7 2020/10/18 21:36:22 rillig Exp $
+# $NetBSD: varmod-assign.mk,v 1.8 2020/10/18 21:37:24 rillig Exp $
 #
 # Tests for the obscure ::= variable modifiers, which perform variable
 # assignments during evaluation, just like the = operator in C.
@@ -91,3 +91,17 @@
        # FIXME: the error message says: "previous" returned non-zero status
        @${SH_ERR::=previous}
        @${SH_ERR::!= echo word; false } echo err=${SH_ERR}
+
+# XXX: The ::= modifier expands its right-hand side, exactly once.
+# This differs subtly from normal assignments such as '+=' or '=', which copy
+# their right-hand side literally.
+APPEND.prev=           previous
+APPEND.var=            ${APPEND.prev}
+APPEND.indirect=       indirect $${:Unot expanded}
+APPEND.dollar=         $${APPEND.indirect}
+.if ${APPEND.var::+=${APPEND.dollar}} != ""
+.  error
+.endif
+.if ${APPEND.var} != "previous indirect \${:Unot expanded}"
+.  error
+.endif



Home | Main Index | Thread Index | Old Index