Module Name: src
Committed By: rillig
Date: Wed Aug 19 05:40:07 UTC 2020
Modified Files:
src/usr.bin/make/unit-tests: varname-dollar.exp varname-dollar.mk
Log Message:
make(1): add test for the $$ expression
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/varname-dollar.exp
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/varname-dollar.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/varname-dollar.exp
diff -u src/usr.bin/make/unit-tests/varname-dollar.exp:1.1 src/usr.bin/make/unit-tests/varname-dollar.exp:1.2
--- src/usr.bin/make/unit-tests/varname-dollar.exp:1.1 Sun Aug 16 12:07:51 2020
+++ src/usr.bin/make/unit-tests/varname-dollar.exp Wed Aug 19 05:40:06 2020
@@ -1 +1,5 @@
+make: "varname-dollar.mk" line 16: dollar is $.
+make: "varname-dollar.mk" line 17: dollar in braces is .
+make: "varname-dollar.mk" line 25: dollar is $.
+make: "varname-dollar.mk" line 26: dollar in braces is dollar.
exit status 0
Index: src/usr.bin/make/unit-tests/varname-dollar.mk
diff -u src/usr.bin/make/unit-tests/varname-dollar.mk:1.2 src/usr.bin/make/unit-tests/varname-dollar.mk:1.3
--- src/usr.bin/make/unit-tests/varname-dollar.mk:1.2 Sun Aug 16 14:25:16 2020
+++ src/usr.bin/make/unit-tests/varname-dollar.mk Wed Aug 19 05:40:06 2020
@@ -1,9 +1,29 @@
-# $NetBSD: varname-dollar.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
+# $NetBSD: varname-dollar.mk,v 1.3 2020/08/19 05:40:06 rillig Exp $
#
# Tests for the expression "$$", which looks as if it referred to a variable,
# but simply expands to a single '$' sign.
+#
+# If there really were a special variable named '$', the expressions ${${DOLLAR}}
+# and $$ would always expand to the same value.
+
+# Using the dollar sign in variable names is tricky and not recommended.
+# To see that using this variable indeed affects the variable '$', run the
+# test individually with the -dv option.
+DOLLAR= $$
+
+# At this point, the variable '$' is not defined. Therefore the second line
+# returns an empty string.
+.info dollar is $$.
+.info dollar in braces is ${${DOLLAR}}.
+
+# Now overwrite the '$' variable to see whether '$$' really expands to that
+# variable, or whether '$$' is handled by the parser.
+${DOLLAR}= dollar
-# TODO: Implementation
+# At this point, the variable '$' is defined, therefore its value is printed
+# in the second .info directive.
+.info dollar is $$.
+.info dollar in braces is ${${DOLLAR}}.
all:
@:;