Module Name: src Committed By: rillig Date: Sun Jul 10 21:11:49 UTC 2022
Modified Files: src/usr.bin/make/unit-tests: varmod-head.exp varmod-head.mk Log Message: tests/make: extend tests for modifier ':H' To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/usr.bin/make/unit-tests/varmod-head.exp cvs rdiff -u -r1.4 -r1.5 src/usr.bin/make/unit-tests/varmod-head.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/varmod-head.exp diff -u src/usr.bin/make/unit-tests/varmod-head.exp:1.3 src/usr.bin/make/unit-tests/varmod-head.exp:1.4 --- src/usr.bin/make/unit-tests/varmod-head.exp:1.3 Sun Dec 20 22:57:40 2020 +++ src/usr.bin/make/unit-tests/varmod-head.exp Sun Jul 10 21:11:49 2022 @@ -1,11 +1 @@ -head (dirname) of 'a/b/c' is 'a/b' -head (dirname) of 'def' is '.' -head (dirname) of 'a.b.c' is '.' -head (dirname) of 'a.b/c' is 'a.b' -head (dirname) of 'a' is '.' -head (dirname) of 'a.a' is '.' -head (dirname) of '.gitignore' is '.' -head (dirname) of 'a' is '.' -head (dirname) of 'a.a' is '.' -head (dirname) of 'trailing/' is 'trailing' exit status 0 Index: src/usr.bin/make/unit-tests/varmod-head.mk diff -u src/usr.bin/make/unit-tests/varmod-head.mk:1.4 src/usr.bin/make/unit-tests/varmod-head.mk:1.5 --- src/usr.bin/make/unit-tests/varmod-head.mk:1.4 Sun Dec 20 22:57:40 2020 +++ src/usr.bin/make/unit-tests/varmod-head.mk Sun Jul 10 21:11:49 2022 @@ -1,9 +1,64 @@ -# $NetBSD: varmod-head.mk,v 1.4 2020/12/20 22:57:40 rillig Exp $ +# $NetBSD: varmod-head.mk,v 1.5 2022/07/10 21:11:49 rillig Exp $ # # Tests for the :H variable modifier, which returns the dirname of # each of the words in the variable value. -all: -.for path in a/b/c def a.b.c a.b/c a a.a .gitignore a a.a trailing/ - @echo "head (dirname) of '"${path:Q}"' is '"${path:H:Q}"'" -.endfor +.if ${:U a/b/c :H} != "a/b" +. error +.endif + +.if ${:U def :H} != "." +. error +.endif + +.if ${:U a.b.c :H} != "." +. error +.endif + +.if ${:U a.b/c :H} != "a.b" +. error +.endif + +.if ${:U a :H} != "." +. error +.endif + +.if ${:U a.a :H} != "." +. error +.endif + +.if ${:U .gitignore :H} != "." +. error +.endif + +.if ${:U trailing/ :H} != "trailing" +. error +.endif + +.if ${:U /abs/dir/file :H} != "/abs/dir" +. error +.endif + +.if ${:U rel/dir/file :H} != "rel/dir" +. error +.endif + +# The head of "/" was an empty string before 2020.07.20.14.50.41, leading to +# the output "before after", with two spaces. Since 2020.07.20.14.50.41, the +# output is "before after", discarding the empty word. +.if ${:U before/ / after/ :H} == "before after" +# OK +.elif ${:U before/ / after/ :H} == "before after" +# No '.info' to keep the file compatible with old make versions. +_!= echo "The modifier ':H' generates an empty word." 1>&2; echo +.else +. error +.endif + +# An empty list is split into a single empty word. +# The dirname of this empty word is ".". +.if ${:U :H} != "." +. error +.endif + +all: .PHONY