Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/make make(1): add tests for the variable modifiers :...
details: https://anonhg.NetBSD.org/src/rev/7c47538e1b3a
branches: trunk
changeset: 941896:7c47538e1b3a
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Nov 01 13:55:31 2020 +0000
description:
make(1): add tests for the variable modifiers :[words] and :range
diffstat:
usr.bin/make/unit-tests/modword.exp | 2 ++
usr.bin/make/unit-tests/modword.mk | 12 ++++++++++--
usr.bin/make/unit-tests/varmod-range.exp | 10 +++++-----
usr.bin/make/unit-tests/varmod-range.mk | 5 ++++-
usr.bin/make/var.c | 6 +++---
5 files changed, 24 insertions(+), 11 deletions(-)
diffs (123 lines):
diff -r 28902ae01c57 -r 7c47538e1b3a usr.bin/make/unit-tests/modword.exp
--- a/usr.bin/make/unit-tests/modword.exp Sun Nov 01 13:28:50 2020 +0000
+++ b/usr.bin/make/unit-tests/modword.exp Sun Nov 01 13:55:31 2020 +0000
@@ -66,6 +66,7 @@
LIST:[*]:C/ /,/:[2]=""
LIST:[*]:C/ /,/:[*]:[2]=""
LIST:[*]:C/ /,/:[@]:[2]="three"
+LONGLIST:[012..0x12]="10 11 12 13 14 15 16 17 18"
make: Bad modifier `:[1.]' for LIST
LIST:[1.]="" is an error
make: Bad modifier `:[1..]' for LIST
@@ -99,6 +100,7 @@
LIST:[${LONGLIST:[21]:S/2//}]="one"
LIST:[${LIST:[#]}]="six"
LIST:[${LIST:[${HASH}]}]="six"
+LIST:[ -1.. +3]="six five four three"
LIST:S/ /,/="one two three four five six"
LIST:S/ /,/W="one,two three four five six"
LIST:S/ /,/gW="one,two,three,four,five,six"
diff -r 28902ae01c57 -r 7c47538e1b3a usr.bin/make/unit-tests/modword.mk
--- a/usr.bin/make/unit-tests/modword.mk Sun Nov 01 13:28:50 2020 +0000
+++ b/usr.bin/make/unit-tests/modword.mk Sun Nov 01 13:55:31 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: modword.mk,v 1.3 2020/10/24 08:50:17 rillig Exp $
+# $NetBSD: modword.mk,v 1.4 2020/11/01 13:55:31 rillig Exp $
#
# Test behaviour of new :[] modifier
@@ -22,7 +22,8 @@
mod-squarebrackets-hash \
mod-squarebrackets-n \
mod-squarebrackets-start-end \
- mod-squarebrackets-nested
+ mod-squarebrackets-nested \
+ mod-squarebrackets-space
mod-squarebrackets-0-star-at:
@echo 'LIST:[]="${LIST:[]}" is an error'
@@ -92,6 +93,7 @@
@echo 'LIST:[*]:C/ /,/:[2]="${LIST:[*]:C/ /,/:[2]}"'
@echo 'LIST:[*]:C/ /,/:[*]:[2]="${LIST:[*]:C/ /,/:[*]:[2]}"'
@echo 'LIST:[*]:C/ /,/:[@]:[2]="${LIST:[*]:C/ /,/:[@]:[2]}"'
+ @echo 'LONGLIST:[012..0x12]="${LONGLIST:[012..0x12]}"'
mod-squarebrackets-start-end:
@echo 'LIST:[1.]="${LIST:[1.]}" is an error'
@@ -124,6 +126,12 @@
@echo 'LIST:[$${LIST:[#]}]="${LIST:[${LIST:[#]}]}"'
@echo 'LIST:[$${LIST:[$${HASH}]}]="${LIST:[${LIST:[${HASH}]}]}"'
+mod-squarebrackets-space:
+ # As of 2020-11-01, it is possible to have spaces before the numbers
+ # but not after them. This is an unintended side-effect of using
+ # strtol for parsing the numbers.
+ @echo 'LIST:[ -1.. +3]="${LIST:[ -1.. +3]}"'
+
mod-C-W:
@echo 'LIST:C/ /,/="${LIST:C/ /,/}"'
@echo 'LIST:C/ /,/W="${LIST:C/ /,/W}"'
diff -r 28902ae01c57 -r 7c47538e1b3a usr.bin/make/unit-tests/varmod-range.exp
--- a/usr.bin/make/unit-tests/varmod-range.exp Sun Nov 01 13:28:50 2020 +0000
+++ b/usr.bin/make/unit-tests/varmod-range.exp Sun Nov 01 13:55:31 2020 +0000
@@ -1,13 +1,13 @@
make: Unknown modifier 'x'
-make: "varmod-range.mk" line 46: Malformed conditional ("${:U:range=x}Rest" != "Rest")
+make: "varmod-range.mk" line 49: Malformed conditional ("${:U:range=x}Rest" != "Rest")
make: Unknown modifier 'x'
-make: "varmod-range.mk" line 55: Malformed conditional ("${:U:range=0x0}Rest" != "Rest")
+make: "varmod-range.mk" line 58: Malformed conditional ("${:U:range=0x0}Rest" != "Rest")
make: Unknown modifier 'r'
-make: "varmod-range.mk" line 71: Malformed conditional ("${a b c:L:rang}Rest" != "Rest")
+make: "varmod-range.mk" line 74: Malformed conditional ("${a b c:L:rang}Rest" != "Rest")
make: Unknown modifier 'r'
-make: "varmod-range.mk" line 78: Malformed conditional ("${a b c:L:rango}Rest" != "Rest")
+make: "varmod-range.mk" line 81: Malformed conditional ("${a b c:L:rango}Rest" != "Rest")
make: Unknown modifier 'r'
-make: "varmod-range.mk" line 85: Malformed conditional ("${a b c:L:ranger}Rest" != "Rest")
+make: "varmod-range.mk" line 88: Malformed conditional ("${a b c:L:ranger}Rest" != "Rest")
make: Fatal errors encountered -- cannot continue
make: stopped in unit-tests
exit status 1
diff -r 28902ae01c57 -r 7c47538e1b3a usr.bin/make/unit-tests/varmod-range.mk
--- a/usr.bin/make/unit-tests/varmod-range.mk Sun Nov 01 13:28:50 2020 +0000
+++ b/usr.bin/make/unit-tests/varmod-range.mk Sun Nov 01 13:55:31 2020 +0000
@@ -1,7 +1,10 @@
-# $NetBSD: varmod-range.mk,v 1.5 2020/11/01 13:10:22 rillig Exp $
+# $NetBSD: varmod-range.mk,v 1.6 2020/11/01 13:55:31 rillig Exp $
#
# Tests for the :range variable modifier, which generates sequences
# of integers from the given range.
+#
+# See also:
+# modword.mk
# The :range modifier generates a sequence of integers, one number per
# word of the variable expression's value.
diff -r 28902ae01c57 -r 7c47538e1b3a usr.bin/make/var.c
--- a/usr.bin/make/var.c Sun Nov 01 13:28:50 2020 +0000
+++ b/usr.bin/make/var.c Sun Nov 01 13:55:31 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.633 2020/11/01 12:34:45 rillig Exp $ */
+/* $NetBSD: var.c,v 1.634 2020/11/01 13:55:31 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -130,7 +130,7 @@
#include "metachar.h"
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.633 2020/11/01 12:34:45 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.634 2020/11/01 13:55:31 rillig Exp $");
#define VAR_DEBUG1(fmt, arg1) DEBUG1(VAR, fmt, arg1)
#define VAR_DEBUG2(fmt, arg1, arg2) DEBUG2(VAR, fmt, arg1, arg2)
@@ -2648,7 +2648,7 @@
return AMR_BAD;
}
-/* :[#], :[1], etc. */
+/* :[#], :[1], :[-1..1], etc. */
static ApplyModifierResult
ApplyModifier_Words(const char **pp, ApplyModifiersState *st)
{
Home |
Main Index |
Thread Index |
Old Index