Home | History | Annotate | Line # | Download | only in unit-tests
cond-eof.mk revision 1.3
      1  1.3  rillig # $NetBSD: cond-eof.mk,v 1.3 2021/12/10 23:12:44 rillig Exp $
      2  1.1  rillig #
      3  1.1  rillig # Tests for parsing conditions, especially the end of such conditions, which
      4  1.1  rillig # are represented as the token TOK_EOF.
      5  1.1  rillig 
      6  1.1  rillig SIDE_EFFECT=	${:!echo 'side effect' 1>&2!}
      7  1.2  rillig SIDE_EFFECT2=	${:!echo 'side effect 2' 1>&2!}
      8  1.1  rillig 
      9  1.1  rillig # In the following conditions, ${SIDE_EFFECT} is the position of the first
     10  1.3  rillig # parse error.  Before cond.c 1.286 from 2021-12-10, it was always fully
     11  1.3  rillig # evaluated, even if it was not necessary to expand the variable expression.
     12  1.3  rillig # These syntax errors are an edge case that does not occur during normal
     13  1.3  rillig # operation.  Still, it is easy to avoid evaluating these expressions, just in
     14  1.3  rillig # case they have side effects.
     15  1.2  rillig .if 0 ${SIDE_EFFECT} ${SIDE_EFFECT2}
     16  1.1  rillig .endif
     17  1.2  rillig .if 1 ${SIDE_EFFECT} ${SIDE_EFFECT2}
     18  1.1  rillig .endif
     19  1.2  rillig .if (0) ${SIDE_EFFECT} ${SIDE_EFFECT2}
     20  1.1  rillig .endif
     21