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 tests/make: demonstrate handling of ...
details: https://anonhg.NetBSD.org/src/rev/7a5e0d4c0dbb
branches: trunk
changeset: 983840:7a5e0d4c0dbb
user: rillig <rillig%NetBSD.org@localhost>
date: Fri Jun 11 13:01:28 2021 +0000
description:
tests/make: demonstrate handling of '+' and '*' in modifier ':?'
It doesn't make sense that these two characters are handled differently,
but that's what the current code has been doing for years.
diffstat:
usr.bin/make/unit-tests/varmod-ifelse.exp | 4 ++++
usr.bin/make/unit-tests/varmod-ifelse.mk | 13 ++++++++++++-
2 files changed, 16 insertions(+), 1 deletions(-)
diffs (38 lines):
diff -r 42de8610a188 -r 7a5e0d4c0dbb usr.bin/make/unit-tests/varmod-ifelse.exp
--- a/usr.bin/make/unit-tests/varmod-ifelse.exp Fri Jun 11 12:54:22 2021 +0000
+++ b/usr.bin/make/unit-tests/varmod-ifelse.exp Fri Jun 11 13:01:28 2021 +0000
@@ -23,6 +23,10 @@
make: "varmod-ifelse.mk" line 159: .
make: Bad conditional expression 'string == "literal" || >= 10' in 'string == "literal" || >= 10?yes:no'
make: "varmod-ifelse.mk" line 160: .
+make: "varmod-ifelse.mk" line 167: true
+make: "varmod-ifelse.mk" line 169: false
+make: Bad conditional expression ' ' in ' ?true:false'
+make: "varmod-ifelse.mk" line 171:
make: Fatal errors encountered -- cannot continue
make: stopped in unit-tests
exit status 1
diff -r 42de8610a188 -r 7a5e0d4c0dbb usr.bin/make/unit-tests/varmod-ifelse.mk
--- a/usr.bin/make/unit-tests/varmod-ifelse.mk Fri Jun 11 12:54:22 2021 +0000
+++ b/usr.bin/make/unit-tests/varmod-ifelse.mk Fri Jun 11 13:01:28 2021 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-ifelse.mk,v 1.16 2021/04/19 23:51:42 rillig Exp $
+# $NetBSD: varmod-ifelse.mk,v 1.17 2021/06/11 13:01:28 rillig Exp $
#
# Tests for the ${cond:?then:else} variable modifier, which evaluates either
# the then-expression or the else-expression, depending on the condition.
@@ -158,3 +158,14 @@
NUMBER= # empty, not really a number either
.info ${${STRING} == "literal" && ${NUMBER} >= 10:?yes:no}.
.info ${${STRING} == "literal" || ${NUMBER} >= 10:?yes:no}.
+
+# CondParser_LeafToken handles [0-9-+] specially, treating them as a number.
+PLUS= +
+ASTERISK= *
+EMPTY= # empty
+# "true" since "+" is not the empty string.
+.info ${${PLUS} :?true:false}
+# "false" since the variable named "*" is not defined.
+.info ${${ASTERISK} :?true:false}
+# syntax error since the condition is completely blank.
+.info ${${EMPTY} :?true:false}
Home |
Main Index |
Thread Index |
Old Index