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 tests for functions in ...
details: https://anonhg.NetBSD.org/src/rev/2a05ac413af8
branches: trunk
changeset: 942996:2a05ac413af8
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Aug 23 14:07:20 2020 +0000
description:
make(1): add tests for functions in .if conditions
diffstat:
usr.bin/make/unit-tests/cond-func-commands.mk | 32 ++++++++++++++++++++++-
usr.bin/make/unit-tests/cond-func-exists.mk | 36 +++++++++++++++++++++++++-
usr.bin/make/unit-tests/cond-func-target.mk | 34 ++++++++++++++++++++++++-
3 files changed, 96 insertions(+), 6 deletions(-)
diffs (132 lines):
diff -r 3704f79b5f00 -r 2a05ac413af8 usr.bin/make/unit-tests/cond-func-commands.mk
--- a/usr.bin/make/unit-tests/cond-func-commands.mk Sun Aug 23 13:50:17 2020 +0000
+++ b/usr.bin/make/unit-tests/cond-func-commands.mk Sun Aug 23 14:07:20 2020 +0000
@@ -1,8 +1,36 @@
-# $NetBSD: cond-func-commands.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
+# $NetBSD: cond-func-commands.mk,v 1.3 2020/08/23 14:07:20 rillig Exp $
#
# Tests for the commands() function in .if conditions.
-# TODO: Implementation
+.MAIN: all
+
+# The target "target" does not exist yet, therefore it cannot have commands.
+.if commands(target)
+.error
+.endif
+
+target:
+
+# Now the target exists, but it still has no commands.
+.if commands(target)
+.error
+.endif
+
+target:
+ # not a command
+
+# Even after the comment, the target still has no commands.
+.if commands(target)
+.error
+.endif
+
+target:
+ @:;
+
+# Finally the target has commands.
+.if !commands(target)
+.error
+.endif
all:
@:;
diff -r 3704f79b5f00 -r 2a05ac413af8 usr.bin/make/unit-tests/cond-func-exists.mk
--- a/usr.bin/make/unit-tests/cond-func-exists.mk Sun Aug 23 13:50:17 2020 +0000
+++ b/usr.bin/make/unit-tests/cond-func-exists.mk Sun Aug 23 14:07:20 2020 +0000
@@ -1,8 +1,40 @@
-# $NetBSD: cond-func-exists.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
+# $NetBSD: cond-func-exists.mk,v 1.3 2020/08/23 14:07:20 rillig Exp $
#
# Tests for the exists() function in .if conditions.
-# TODO: Implementation
+.if exists(.)
+.else
+.error
+.endif
+
+# The argument to the function must not be enclosed in quotes.
+# Neither double quotes nor single quotes are allowed.
+.if exists(".")
+.error
+.endif
+
+.if exists('.')
+.error
+.endif
+
+# The only way to escape characters that would otherwise influence the parser
+# is to enclose them in a variable expression. For function arguments,
+# neither the backslash nor the dollar sign act as escape character.
+.if exists(\.)
+.error
+.endif
+
+.if exists(${:U.})
+.else
+.error
+.endif
+
+# The argument to the function can have several variable expressions.
+# See cond-func.mk for the characters that cannot be used directly.
+.if exists(${.PARSEDIR}/${.PARSEFILE})
+.else
+.error
+.endif
all:
@:;
diff -r 3704f79b5f00 -r 2a05ac413af8 usr.bin/make/unit-tests/cond-func-target.mk
--- a/usr.bin/make/unit-tests/cond-func-target.mk Sun Aug 23 13:50:17 2020 +0000
+++ b/usr.bin/make/unit-tests/cond-func-target.mk Sun Aug 23 14:07:20 2020 +0000
@@ -1,8 +1,38 @@
-# $NetBSD: cond-func-target.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
+# $NetBSD: cond-func-target.mk,v 1.3 2020/08/23 14:07:20 rillig Exp $
#
# Tests for the target() function in .if conditions.
-# TODO: Implementation
+.MAIN: all
+
+# The target "target" does not exist yet.
+.if target(target)
+.error
+.endif
+
+target:
+
+# The target exists, even though it does not have any commands.
+.if !target(target)
+.error
+.endif
+
+target:
+ # not a command
+
+# Adding a comment to an existing target does not change whether the target
+# is defined or not.
+.if !target(target)
+.error
+.endif
+
+target:
+ @:;
+
+# Adding a command to an existing target does not change whether the target
+# is defined or not.
+.if !target(target)
+.error
+.endif
all:
@:;
Home |
Main Index |
Thread Index |
Old Index