Home | History | Annotate | Line # | Download | only in unit-tests
      1  1.8  rillig # $NetBSD: directive-export-literal.mk,v 1.8 2024/06/01 18:44:05 rillig Exp $
      2  1.1  rillig #
      3  1.5  rillig # Tests for the .export-literal directive, which exports a variable value
      4  1.5  rillig # without expanding it.
      5  1.1  rillig 
      6  1.5  rillig UT_VAR=		value with ${UNEXPANDED} expression
      7  1.5  rillig 
      8  1.5  rillig .export-literal UT_VAR
      9  1.1  rillig 
     10  1.6  rillig .export-literal			# oops: missing argument
     11  1.6  rillig 
     12  1.8  rillig # After a variable whose value does not contain a '$' is exported, a following
     13  1.8  rillig # .export-literal can be skipped, to avoid a setenv call, which may leak
     14  1.8  rillig # memory on some platforms.
     15  1.8  rillig UT_TWICE_LITERAL=	value literal
     16  1.8  rillig .export UT_TWICE_LITERAL
     17  1.8  rillig .export-literal UT_TWICE_LITERAL
     18  1.8  rillig 
     19  1.8  rillig # XXX: After an .export, an .export-literal has no effect, even when the
     20  1.8  rillig # variable value contains a '$'.
     21  1.8  rillig UT_TWICE_EXPR=		value ${indirect:L}
     22  1.8  rillig .export UT_TWICE_EXPR
     23  1.8  rillig .export-literal UT_TWICE_EXPR
     24  1.8  rillig 
     25  1.8  rillig # After an .export, an .unexport resets the variable's exported state,
     26  1.8  rillig # re-enabling a later .export-literal.
     27  1.8  rillig UT_TWICE_EXPR_UNEXPORT=	value ${indirect:L}
     28  1.8  rillig .export UT_TWICE_EXPR_UNEXPORT
     29  1.8  rillig .unexport UT_TWICE_EXPR_UNEXPORT
     30  1.8  rillig .export-literal UT_TWICE_EXPR_UNEXPORT
     31  1.8  rillig 
     32  1.1  rillig all:
     33  1.5  rillig 	@echo "$$UT_VAR"
     34  1.8  rillig 	@echo "$$UT_TWICE_LITERAL"
     35  1.8  rillig 	@echo "$$UT_TWICE_EXPR"
     36  1.8  rillig 	@echo "$$UT_TWICE_EXPR_UNEXPORT"
     37