Home | History | Annotate | Line # | Download | only in unit-tests
directive-undef.mk revision 1.7
      1  1.7  rillig # $NetBSD: directive-undef.mk,v 1.7 2020/12/19 20:35:39 rillig Exp $
      2  1.1  rillig #
      3  1.2  rillig # Tests for the .undef directive.
      4  1.6  rillig #
      5  1.6  rillig # See also:
      6  1.6  rillig #	directive-misspellings.mk
      7  1.1  rillig 
      8  1.3  rillig # As of 2020-07-28, .undef only undefines the first variable.
      9  1.3  rillig # All further variable names are silently ignored.
     10  1.3  rillig # See parse.c, string literal "undef".
     11  1.3  rillig 1=		1
     12  1.3  rillig 2=		2
     13  1.3  rillig 3=		3
     14  1.3  rillig .undef 1 2 3
     15  1.3  rillig .if ${1:U_}${2:U_}${3:U_} != _23
     16  1.4  rillig .  warning $1$2$3
     17  1.3  rillig .endif
     18  1.1  rillig 
     19  1.7  rillig # Without any arguments, .undef tries to delete the variable with the empty
     20  1.7  rillig # name, which never exists; see varname-empty.mk.
     21  1.5  rillig .undef				# oops: missing argument
     22  1.5  rillig 
     23  1.7  rillig 
     24  1.7  rillig # It must be possible to undefine variables whose name includes spaces.
     25  1.7  rillig SPACE=		${:U }
     26  1.7  rillig ${SPACE}=	space
     27  1.7  rillig .if !defined(${SPACE})
     28  1.7  rillig .  error
     29  1.7  rillig .endif
     30  1.7  rillig .undef ${SPACE}
     31  1.7  rillig .if defined(${SPACE})
     32  1.7  rillig .  error
     33  1.7  rillig .endif
     34  1.7  rillig 
     35  1.7  rillig 
     36  1.7  rillig # It must be possible to undefine variables whose name includes dollars.
     37  1.7  rillig DOLLAR=		$$
     38  1.7  rillig ${DOLLAR}=	dollar
     39  1.7  rillig .if !defined(${DOLLAR})
     40  1.7  rillig .  error
     41  1.7  rillig .endif
     42  1.7  rillig .undef ${DOLLAR}
     43  1.7  rillig .if defined(${DOLLAR})
     44  1.7  rillig .  error
     45  1.7  rillig .endif
     46  1.7  rillig 
     47  1.7  rillig 
     48  1.1  rillig all:
     49  1.1  rillig 	@:;
     50