Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make/unit-tests make(1): add test for the obsolete v...



details:   https://anonhg.NetBSD.org/src/rev/79274cdf3d9a
branches:  trunk
changeset: 942530:79274cdf3d9a
user:      rillig <rillig%NetBSD.org@localhost>
date:      Tue Nov 10 00:19:19 2020 +0000

description:
make(1): add test for the obsolete variable VPATH

diffstat:

 usr.bin/make/unit-tests/Makefile          |   3 +-
 usr.bin/make/unit-tests/varname-vpath.exp |  11 ++++++++
 usr.bin/make/unit-tests/varname-vpath.mk  |  42 ++++++++++++++++++++++++++++--
 3 files changed, 51 insertions(+), 5 deletions(-)

diffs (83 lines):

diff -r f5c290de6f89 -r 79274cdf3d9a usr.bin/make/unit-tests/Makefile
--- a/usr.bin/make/unit-tests/Makefile  Tue Nov 10 00:02:11 2020 +0000
+++ b/usr.bin/make/unit-tests/Makefile  Tue Nov 10 00:19:19 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.195 2020/11/09 20:50:56 rillig Exp $
+# $NetBSD: Makefile,v 1.196 2020/11/10 00:19:19 rillig Exp $
 #
 # Unit tests for make(1)
 #
@@ -386,6 +386,7 @@
 ENV.varmisc+=          FROM_ENV_BEFORE=env
 ENV.varmisc+=          FROM_ENV_AFTER=env
 ENV.varmod-localtime+= TZ=Europe/Berlin
+ENV.varname-vpath+=    VPATH=varname-vpath.dir:varname-vpath.dir2
 
 # Override make flags for some of the tests; default is -k.
 # If possible, write ".MAKEFLAGS: -dv" in the test .mk file instead of
diff -r f5c290de6f89 -r 79274cdf3d9a usr.bin/make/unit-tests/varname-vpath.exp
--- a/usr.bin/make/unit-tests/varname-vpath.exp Tue Nov 10 00:02:11 2020 +0000
+++ b/usr.bin/make/unit-tests/varname-vpath.exp Tue Nov 10 00:19:19 2020 +0000
@@ -1,1 +1,12 @@
+CondParser_Eval: !defined(TEST_MAIN)
+CondParser_Eval: exists(file-in-subdirectory)
+exists(file-in-subdirectory) result is ""
+CondParser_Eval: exists(file2-in-subdirectory)
+exists(file2-in-subdirectory) result is ""
+CondParser_Eval: exists(file-in-subdirectory)
+exists(file-in-subdirectory) result is "varname-vpath.dir/file-in-subdirectory"
+: yes 1
+CondParser_Eval: exists(file2-in-subdirectory)
+exists(file2-in-subdirectory) result is "varname-vpath.dir2/file2-in-subdirectory"
+: yes 2
 exit status 0
diff -r f5c290de6f89 -r 79274cdf3d9a usr.bin/make/unit-tests/varname-vpath.mk
--- a/usr.bin/make/unit-tests/varname-vpath.mk  Tue Nov 10 00:02:11 2020 +0000
+++ b/usr.bin/make/unit-tests/varname-vpath.mk  Tue Nov 10 00:19:19 2020 +0000
@@ -1,8 +1,42 @@
-# $NetBSD: varname-vpath.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
+# $NetBSD: varname-vpath.mk,v 1.3 2020/11/10 00:19:19 rillig Exp $
+#
+# Tests for the special VPATH variable, which is an obsolete way of
+# specifying a colon-separated search path.  This search path is not active
+# when the makefiles are read, but only later when the shell commands are run.
 #
-# Tests for the special VPATH variable.
+# Instead of the VPATH, better use the -I option or the special target .PATH.
+
+.if !defined(TEST_MAIN)
+
+all: .SILENT
+       rm -rf varname-vpath.dir
+       mkdir varname-vpath.dir
+       touch varname-vpath.dir/file-in-subdirectory
+       rm -rf varname-vpath.dir2
+       mkdir varname-vpath.dir2
+       touch varname-vpath.dir2/file2-in-subdirectory
+
+       TEST_MAIN=yes VPATH=varname-vpath.dir:varname-vpath.dir2 \
+               ${MAKE} -f ${MAKEFILE} -dc
 
-# TODO: Implementation
+       rm -r varname-vpath.dir
+       rm -r varname-vpath.dir2
+
+.else
+
+# The VPATH variable does not take effect at parse time.
+# It is evaluated only once, between reading the makefiles and making the
+# targets.  Therefore it could also be an ordinary variable, it doesn't need
+# to be an environment variable or a command line variable.
+.  if exists(file-in-subdirectory)
+.    error
+.  endif
+.  if exists(file2-in-subdirectory)
+.    error
+.  endif
 
 all:
-       @:;
+       : ${exists(file-in-subdirectory):L:?yes 1:no 1}
+       : ${exists(file2-in-subdirectory):L:?yes 2:no 2}
+
+.endif



Home | Main Index | Thread Index | Old Index