Module Name:    src
Committed By:   rillig
Date:           Tue Sep 27 19:18:45 UTC 2022

Modified Files:
        src/usr.bin/make/unit-tests: var-scope-local-legacy.exp
            var-scope-local-legacy.mk varmod-order-numeric.mk

Log Message:
tests/make: add tests for legacy local variables and sorting


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
    src/usr.bin/make/unit-tests/var-scope-local-legacy.exp \
    src/usr.bin/make/unit-tests/var-scope-local-legacy.mk
cvs rdiff -u -r1.7 -r1.8 src/usr.bin/make/unit-tests/varmod-order-numeric.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/var-scope-local-legacy.exp
diff -u src/usr.bin/make/unit-tests/var-scope-local-legacy.exp:1.1 src/usr.bin/make/unit-tests/var-scope-local-legacy.exp:1.2
--- src/usr.bin/make/unit-tests/var-scope-local-legacy.exp:1.1	Sun Jan 23 16:25:54 2022
+++ src/usr.bin/make/unit-tests/var-scope-local-legacy.exp	Tue Sep 27 19:18:45 2022
@@ -1 +1,6 @@
+: LEN4=undef_
+: XY=undef_
+: AF=undef_
+: %D=undef_ %F=undef_
+: @D=._ @F=all_
 exit status 0
Index: src/usr.bin/make/unit-tests/var-scope-local-legacy.mk
diff -u src/usr.bin/make/unit-tests/var-scope-local-legacy.mk:1.1 src/usr.bin/make/unit-tests/var-scope-local-legacy.mk:1.2
--- src/usr.bin/make/unit-tests/var-scope-local-legacy.mk:1.1	Sun Jan 23 16:25:54 2022
+++ src/usr.bin/make/unit-tests/var-scope-local-legacy.mk	Tue Sep 27 19:18:45 2022
@@ -1,8 +1,17 @@
-# $NetBSD: var-scope-local-legacy.mk,v 1.1 2022/01/23 16:25:54 rillig Exp $
+# $NetBSD: var-scope-local-legacy.mk,v 1.2 2022/09/27 19:18:45 rillig Exp $
 #
 # Tests for legacy target-local variables, such as ${<F} or ${@D}.
 
-# TODO: Implementation
-
-all:
-	@:;
+all: .PHONY
+	# Only variables of length 2 can be legacy, this one cannot.
+	: LEN4=${LEN4:Uundef}_
+	# The second character of the name must be 'D' or 'F'.
+	: XY=${XY:Uundef}_
+	# The first character must name one of the 7 predefined local
+	# variables, 'A' is not such a character.
+	: AF=${AF:Uundef}_
+	# The variable '.MEMBER' is undefined, therefore '%D' and '%F' are
+	# undefined as well.
+	: %D=${%D:Uundef}_ %F=${%F:Uundef}_
+	# The directory name of the target is '.', its basename is 'all'.
+	: @D=${@D:Uundef}_ @F=${@F:Uundef}_

Index: src/usr.bin/make/unit-tests/varmod-order-numeric.mk
diff -u src/usr.bin/make/unit-tests/varmod-order-numeric.mk:1.7 src/usr.bin/make/unit-tests/varmod-order-numeric.mk:1.8
--- src/usr.bin/make/unit-tests/varmod-order-numeric.mk:1.7	Wed Feb  9 21:09:24 2022
+++ src/usr.bin/make/unit-tests/varmod-order-numeric.mk	Tue Sep 27 19:18:45 2022
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-order-numeric.mk,v 1.7 2022/02/09 21:09:24 rillig Exp $
+# $NetBSD: varmod-order-numeric.mk,v 1.8 2022/09/27 19:18:45 rillig Exp $
 #
 # Tests for the variable modifiers ':On', which returns the words, sorted in
 # ascending numeric order, and for ':Orn' and ':Onr', which additionally
@@ -50,4 +50,10 @@ MIXED_BASE=	0 010 0x7 9
 .  error ${MIXED_BASE:On}
 .endif
 
+# The measurement units for suffixes are k, M, G, but not T.
+# The string '3T' evaluates to 3, the string 'x' evaluates as '0'.
+.if ${4 3T 2M x:L:On} != "x 3T 4 2M"
+.  error
+.endif
+
 all:

Reply via email to