diff options
| author | David E. O'Brien <obrien@FreeBSD.org> | 2012-06-25 22:20:51 +0000 |
|---|---|---|
| committer | David E. O'Brien <obrien@FreeBSD.org> | 2012-06-25 22:20:51 +0000 |
| commit | 0fae4a3feb6507525100ba80841fb42e993656b0 (patch) | |
| tree | 5bd1563c152e800aa8f10e98ac0713d41c302eb5 /unit-tests | |
| parent | b379932fc0f836f9f3f5ac89ef7f6cd38377dff8 (diff) | |
Notes
Diffstat (limited to 'unit-tests')
| -rw-r--r-- | unit-tests/Makefile.in | 5 | ||||
| -rw-r--r-- | unit-tests/forloop | 45 | ||||
| -rw-r--r-- | unit-tests/test.exp | 18 |
3 files changed, 66 insertions, 2 deletions
diff --git a/unit-tests/Makefile.in b/unit-tests/Makefile.in index c0d94c38b1e4..4e3592d94695 100644 --- a/unit-tests/Makefile.in +++ b/unit-tests/Makefile.in @@ -1,6 +1,6 @@ -# $Id: Makefile.in,v 1.37 2011/10/01 20:30:30 sjg Exp $ +# $Id: Makefile.in,v 1.38 2012/06/19 23:38:48 sjg Exp $ # -# $NetBSD: Makefile,v 1.33 2011/09/29 23:38:04 sjg Exp $ +# $NetBSD: Makefile,v 1.34 2012/06/19 23:25:53 sjg Exp $ # # Unit tests for make(1) # The main targets are: @@ -30,6 +30,7 @@ SUBFILES= \ export-all \ doterror \ dotwait \ + forloop \ forsubst \ hash \ misc \ diff --git a/unit-tests/forloop b/unit-tests/forloop new file mode 100644 index 000000000000..0b50e6675f6c --- /dev/null +++ b/unit-tests/forloop @@ -0,0 +1,45 @@ +# $Id: forloop,v 1.1.1.1 2012/06/19 23:30:49 sjg Exp $ + +all: for-loop + +LIST = one "two and three" four "five" + +.if make(for-fail) +for-fail: + +XTRA_LIST = xtra +.else + +.for x in ${LIST} +X!= echo 'x=$x' >&2; echo +.endfor + +CFL = -I/this -I"This or that" -Ithat "-DTHIS=\"this and that\"" +cfl= +.for x in ${CFL} +X!= echo 'x=$x' >&2; echo +.if empty(cfl) +cfl= $x +.else +cfl+= $x +.endif +.endfor +X!= echo 'cfl=${cfl}' >&2; echo + +.if ${cfl} != ${CFL} +.error ${.newline}'${cfl}' != ${.newline}'${CFL}' +.endif + +.for a b in ${EMPTY} +X!= echo 'a=$a b=$b' >&2; echo +.endfor +.endif + +.for a b in ${LIST} ${LIST:tu} ${XTRA_LIST} +X!= echo 'a=$a b=$b' >&2; echo +.endfor + +for-loop: + @echo We expect an error next: + @(cd ${.CURDIR} && ${.MAKE} -f ${MAKEFILE} for-fail) && \ + { echo "Oops that should have failed!"; exit 1; } || echo OK diff --git a/unit-tests/test.exp b/unit-tests/test.exp index cbb2912a081e..932d84e305a6 100644 --- a/unit-tests/test.exp +++ b/unit-tests/test.exp @@ -80,6 +80,24 @@ make: Graph cycles through `cycle.2.98' make: Graph cycles through `cycle.2.97' cycle.1.99 cycle.1.99 +x=one +x="two and three" +x=four +x="five" +x=-I/this +x=-I"This or that" +x=-Ithat +x="-DTHIS=\"this and that\"" +cfl=-I/this -I"This or that" -Ithat "-DTHIS=\"this and that\"" +a=one b="two and three" +a=four b="five" +a=ONE b="TWO AND THREE" +a=FOUR b="FIVE" +We expect an error next: +make: "forloop" line 38: Wrong number of words (9) in .for substitution list with 2 vars +make: Fatal errors encountered -- cannot continue +make: stopped in unit-tests +OK .for with :S;... OK b2af338b 3360ac65 |
