Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make/unit-tests Add unit-tests for .for



details:   https://anonhg.NetBSD.org/src/rev/19805d2bedf7
branches:  trunk
changeset: 779804:19805d2bedf7
user:      sjg <sjg%NetBSD.org@localhost>
date:      Tue Jun 19 23:25:53 2012 +0000

description:
Add unit-tests for .for

diffstat:

 usr.bin/make/unit-tests/Makefile |   3 +-
 usr.bin/make/unit-tests/forloop  |  45 ++++++++++++++++++++++++++++++++++++++++
 usr.bin/make/unit-tests/test.exp |  18 ++++++++++++++++
 3 files changed, 65 insertions(+), 1 deletions(-)

diffs (94 lines):

diff -r 7b5651044867 -r 19805d2bedf7 usr.bin/make/unit-tests/Makefile
--- a/usr.bin/make/unit-tests/Makefile  Tue Jun 19 22:12:03 2012 +0000
+++ b/usr.bin/make/unit-tests/Makefile  Tue Jun 19 23:25:53 2012 +0000
@@ -1,4 +1,4 @@
-# $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:
@@ -26,6 +26,7 @@
        export-all \
        doterror \
        dotwait \
+       forloop \
        forsubst \
        hash \
        misc \
diff -r 7b5651044867 -r 19805d2bedf7 usr.bin/make/unit-tests/forloop
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr.bin/make/unit-tests/forloop   Tue Jun 19 23:25:53 2012 +0000
@@ -0,0 +1,45 @@
+# $Id: forloop,v 1.1 2012/06/19 23:25:53 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 -r 7b5651044867 -r 19805d2bedf7 usr.bin/make/unit-tests/test.exp
--- a/usr.bin/make/unit-tests/test.exp  Tue Jun 19 22:12:03 2012 +0000
+++ b/usr.bin/make/unit-tests/test.exp  Tue Jun 19 23:25:53 2012 +0000
@@ -80,6 +80,24 @@
 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



Home | Main Index | Thread Index | Old Index