Module Name:    src
Committed By:   rillig
Date:           Sat Aug  1 17:20:42 UTC 2020

Modified Files:
        src/usr.bin/make/unit-tests: modmisc.exp modmisc.mk

Log Message:
make(1): add tests for indirect modifiers


To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/usr.bin/make/unit-tests/modmisc.exp
cvs rdiff -u -r1.30 -r1.31 src/usr.bin/make/unit-tests/modmisc.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/modmisc.exp
diff -u src/usr.bin/make/unit-tests/modmisc.exp:1.33 src/usr.bin/make/unit-tests/modmisc.exp:1.34
--- src/usr.bin/make/unit-tests/modmisc.exp:1.33	Fri Jul 31 14:36:58 2020
+++ src/usr.bin/make/unit-tests/modmisc.exp	Sat Aug  1 17:20:42 2020
@@ -1,3 +1,4 @@
+make: Unknown modifier '$'
 path=':/bin:/tmp::/:.:/no/such/dir:.'
 path='/bin:/tmp:/:/no/such/dir'
 path='/bin:/tmp:/:/no/such/dir'

Index: src/usr.bin/make/unit-tests/modmisc.mk
diff -u src/usr.bin/make/unit-tests/modmisc.mk:1.30 src/usr.bin/make/unit-tests/modmisc.mk:1.31
--- src/usr.bin/make/unit-tests/modmisc.mk:1.30	Fri Jul 31 14:36:58 2020
+++ src/usr.bin/make/unit-tests/modmisc.mk	Sat Aug  1 17:20:42 2020
@@ -1,4 +1,4 @@
-# $Id: modmisc.mk,v 1.30 2020/07/31 14:36:58 rillig Exp $
+# $Id: modmisc.mk,v 1.31 2020/08/01 17:20:42 rillig Exp $
 #
 # miscellaneous modifier tests
 
@@ -296,3 +296,20 @@ mod-range:
 	@echo ${a b c:L:range}			# ok
 	@echo ${a b c:L:rango}			# misspelled
 	@echo ${a b c:L:ranger}			# modifier name too long
+
+# To apply a modifier indirectly via another variable, the whole
+# modifier must be put into a single variable.
+.if ${value:L:${:US}${:U,value,replacement,}} != "S,value,replacement,}"
+.warning unexpected
+.endif
+
+# Adding another level of indirection (the 2 nested :U expressions) helps.
+.if ${value:L:${:U${:US}${:U,value,replacement,}}} != "replacement"
+.warning unexpected
+.endif
+
+# Multiple indirect modifiers can be applied one after another as long as
+# they are separated with colons.
+.if ${value:L:${:US,a,A,}:${:US,e,E,}} != "vAluE"
+.warning unexpected
+.endif

Reply via email to