]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/unit-tests/forloop.mk
Update to bmake-20200902
[FreeBSD/FreeBSD.git] / contrib / bmake / unit-tests / forloop.mk
1 # $Id: forloop.mk,v 1.1.1.3 2020/09/02 18:35:14 sjg Exp $
2
3 all: for-loop
4
5 LIST = one "two and three" four "five"
6
7 .if make(for-fail)
8 for-fail:
9
10 XTRA_LIST = xtra
11 .else
12
13 .for x in ${LIST}
14 X!= echo 'x=$x' >&2; echo
15 .endfor
16
17 CFL = -I/this -I"This or that" -Ithat "-DTHIS=\"this and that\""
18 cfl=
19 .for x in ${CFL}
20 X!= echo 'x=$x' >&2; echo
21 .if empty(cfl)
22 cfl= $x
23 .else
24 cfl+= $x
25 .endif
26 .endfor
27 X!= echo 'cfl=${cfl}' >&2; echo
28
29 .if ${cfl} != ${CFL}
30 .error ${.newline}'${cfl}' != ${.newline}'${CFL}'
31 .endif
32
33 .for a b in ${EMPTY}
34 X!= echo 'a=$a b=$b' >&2; echo
35 .endfor
36
37 # Since at least 1993, iteration stops at the first newline.
38 # Back then, the .newline variable didn't exist, therefore it was unlikely
39 # that a newline ever occurred.
40 .for var in a${.newline}b${.newline}c
41 X!= echo 'newline-item=('${var:Q}')' 1>&2; echo
42 .endfor
43
44 .endif  # for-fail
45
46 .for a b in ${LIST} ${LIST:tu} ${XTRA_LIST}
47 X!= echo 'a=$a b=$b' >&2; echo
48 .endfor
49
50 for-loop:
51         @echo We expect an error next:
52         @(cd ${.CURDIR} && ${.MAKE} -f ${MAKEFILE} for-fail) && \
53         { echo "Oops that should have failed!"; exit 1; } || echo OK