Module Name:    src
Committed By:   rillig
Date:           Thu Dec 31 14:26:37 UTC 2020

Modified Files:
        src/usr.bin/make/unit-tests: directive-for-escape.exp
            directive-for-escape.mk

Log Message:
make(1): add test for common and edge cases in .for loop expansion


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/directive-for-escape.exp \
    src/usr.bin/make/unit-tests/directive-for-escape.mk

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

Modified files:

Index: src/usr.bin/make/unit-tests/directive-for-escape.exp
diff -u src/usr.bin/make/unit-tests/directive-for-escape.exp:1.2 src/usr.bin/make/unit-tests/directive-for-escape.exp:1.3
--- src/usr.bin/make/unit-tests/directive-for-escape.exp:1.2	Thu Dec 31 13:23:43 2020
+++ src/usr.bin/make/unit-tests/directive-for-escape.exp	Thu Dec 31 14:26:37 2020
@@ -46,6 +46,28 @@ For: end for 1
 For: loop body:
 .  info ${:Ureplaced}
 make: "directive-for-escape.mk" line 78: replaced
+For: end for 1
+For: loop body:
+.  info .        $$i: ${:Uinner}
+.  info .      $${i}: ${:Uinner}
+.  info .   $${i:M*}: ${:Uinner:M*}
+.  info .      $$(i): $(:Uinner)
+.  info .   $$(i:M*): $(:Uinner:M*)
+.  info . $${i$${:U}}: ${i${:U}}
+.  info .    $${i\}}: ${:Uinner\}}	# XXX: unclear why SubstVarLong needs this
+.  info .     $${i2}: ${i2}
+.  info .     $${i,}: ${i,}
+.  info .  adjacent: ${:Uinner}${:Uinner}${:Uinner:M*}${:Uinner}
+make: "directive-for-escape.mk" line 86: .        $i: inner
+make: "directive-for-escape.mk" line 87: .      ${i}: inner
+make: "directive-for-escape.mk" line 88: .   ${i:M*}: inner
+make: "directive-for-escape.mk" line 89: .      $(i): inner
+make: "directive-for-escape.mk" line 90: .   $(i:M*): inner
+make: "directive-for-escape.mk" line 91: . ${i${:U}}: outer
+make: "directive-for-escape.mk" line 92: .    ${i\}}: inner}
+make: "directive-for-escape.mk" line 93: .     ${i2}: two
+make: "directive-for-escape.mk" line 94: .     ${i,}: comma
+make: "directive-for-escape.mk" line 95: .  adjacent: innerinnerinnerinner
 make: no target to make.
 
 make: stopped in unit-tests
Index: src/usr.bin/make/unit-tests/directive-for-escape.mk
diff -u src/usr.bin/make/unit-tests/directive-for-escape.mk:1.2 src/usr.bin/make/unit-tests/directive-for-escape.mk:1.3
--- src/usr.bin/make/unit-tests/directive-for-escape.mk:1.2	Thu Dec 31 13:23:43 2020
+++ src/usr.bin/make/unit-tests/directive-for-escape.mk	Thu Dec 31 14:26:37 2020
@@ -1,4 +1,4 @@
-# $NetBSD: directive-for-escape.mk,v 1.2 2020/12/31 13:23:43 rillig Exp $
+# $NetBSD: directive-for-escape.mk,v 1.3 2020/12/31 14:26:37 rillig Exp $
 #
 # Test escaping of special characters in the iteration values of a .for loop.
 # These values get expanded later using the :U variable modifier, and this
@@ -77,3 +77,20 @@ EXT=		.c
 .for BASENAME}${EXT in replaced
 .  info ${BASENAME}${EXT}
 .endfor
+
+# Demonstrate the various ways to refer to the iteration variable.
+i=		outer
+i2=		two
+i,=		comma
+.for i in inner
+.  info .        $$i: $i
+.  info .      $${i}: ${i}
+.  info .   $${i:M*}: ${i:M*}
+.  info .      $$(i): $(i)
+.  info .   $$(i:M*): $(i:M*)
+.  info . $${i$${:U}}: ${i${:U}}
+.  info .    $${i\}}: ${i\}}	# XXX: unclear why SubstVarLong needs this
+.  info .     $${i2}: ${i2}
+.  info .     $${i,}: ${i,}
+.  info .  adjacent: $i${i}${i:M*}$i
+.endfor

Reply via email to