Home | History | Annotate | Line # | Download | only in unit-tests
varparse-errors.mk revision 1.3
      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:
     52