]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/unit-tests/varparse-errors.mk
less: upgrade to v581.
[FreeBSD/FreeBSD.git] / contrib / bmake / unit-tests / varparse-errors.mk
1 # $NetBSD: varparse-errors.mk,v 1.3 2020/12/20 19:47:34 rillig Exp $
2
3 # Tests for parsing and evaluating all kinds of variable expressions.
4 #
5 # This is the basis for redesigning the error handling in Var_Parse and
6 # Var_Subst, collecting typical and not so typical use cases.
7 #
8 # See also:
9 #       VarParseResult
10 #       Var_Parse
11 #       Var_Subst
12
13 PLAIN=          plain value
14
15 LITERAL_DOLLAR= To get a dollar, double $$ it.
16
17 INDIRECT=       An ${:Uindirect} value.
18
19 REF_UNDEF=      A reference to an ${UNDEF}undefined variable.
20
21 ERR_UNCLOSED=   An ${UNCLOSED variable expression.
22
23 ERR_BAD_MOD=    An ${:Uindirect:Z} expression with an unknown modifier.
24
25 ERR_EVAL=       An evaluation error ${:Uvalue:C,.,\3,}.
26
27 # In a conditional, a variable expression that is not enclosed in quotes is
28 # expanded using the flags VARE_UNDEFERR and VARE_WANTRES.
29 # The variable itself must be defined.
30 # It may refer to undefined variables though.
31 .if ${REF_UNDEF} != "A reference to an undefined variable."
32 .  error
33 .endif
34
35 # As of 2020-12-01, errors in the variable name are silently ignored.
36 # Since var.c 1.754 from 2020-12-20, unknown modifiers at parse time result
37 # in an error message and a non-zero exit status.
38 VAR.${:U:Z}=    unknown modifier in the variable name
39 .if ${VAR.} != "unknown modifier in the variable name"
40 .  error
41 .endif
42
43 # As of 2020-12-01, errors in the variable name are silently ignored.
44 # Since var.c 1.754 from 2020-12-20, unknown modifiers at parse time result
45 # in an error message and a non-zero exit status.
46 VAR.${:U:Z}post=        unknown modifier with text in the variable name
47 .if ${VAR.post} != "unknown modifier with text in the variable name"
48 .  error
49 .endif
50
51 all: