aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/bmake/tests/syntax
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/bmake/tests/syntax')
-rw-r--r--usr.bin/bmake/tests/syntax/Makefile7
-rw-r--r--usr.bin/bmake/tests/syntax/directive-t0/Makefile13
-rw-r--r--usr.bin/bmake/tests/syntax/directive-t0/Makefile.test8
-rw-r--r--usr.bin/bmake/tests/syntax/directive-t0/expected.status.11
-rw-r--r--usr.bin/bmake/tests/syntax/directive-t0/expected.stderr.12
-rw-r--r--usr.bin/bmake/tests/syntax/directive-t0/expected.stdout.10
-rw-r--r--usr.bin/bmake/tests/syntax/directive-t0/legacy_test.sh13
-rw-r--r--usr.bin/bmake/tests/syntax/enl/Makefile25
-rw-r--r--usr.bin/bmake/tests/syntax/enl/Makefile.test59
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.status.11
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.status.21
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.status.31
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.status.41
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.status.51
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stderr.10
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stderr.20
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stderr.30
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stderr.40
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stderr.50
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stdout.11
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stdout.21
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stdout.32
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stdout.41
-rw-r--r--usr.bin/bmake/tests/syntax/enl/expected.stdout.51
-rw-r--r--usr.bin/bmake/tests/syntax/enl/legacy_test.sh13
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/Makefile16
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/Makefile.test14
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/expected.status.11
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/expected.status.21
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.10
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.20
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.11
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.21
-rw-r--r--usr.bin/bmake/tests/syntax/funny-targets/legacy_test.sh12
-rw-r--r--usr.bin/bmake/tests/syntax/semi/Makefile16
-rw-r--r--usr.bin/bmake/tests/syntax/semi/Makefile.test26
-rw-r--r--usr.bin/bmake/tests/syntax/semi/expected.status.11
-rw-r--r--usr.bin/bmake/tests/syntax/semi/expected.status.21
-rw-r--r--usr.bin/bmake/tests/syntax/semi/expected.stderr.10
-rw-r--r--usr.bin/bmake/tests/syntax/semi/expected.stderr.20
-rw-r--r--usr.bin/bmake/tests/syntax/semi/expected.stdout.12
-rw-r--r--usr.bin/bmake/tests/syntax/semi/expected.stdout.22
-rw-r--r--usr.bin/bmake/tests/syntax/semi/legacy_test.sh13
43 files changed, 259 insertions, 0 deletions
diff --git a/usr.bin/bmake/tests/syntax/Makefile b/usr.bin/bmake/tests/syntax/Makefile
new file mode 100644
index 0000000000000..3cd89f84428fa
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/Makefile
@@ -0,0 +1,7 @@
+# $FreeBSD$
+
+TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax
+
+TESTS_SUBDIRS= directive-t0 enl funny-targets semi
+
+.include <bsd.test.mk>
diff --git a/usr.bin/bmake/tests/syntax/directive-t0/Makefile b/usr.bin/bmake/tests/syntax/directive-t0/Makefile
new file mode 100644
index 0000000000000..66e1f3253a021
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/directive-t0/Makefile
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax/directive-t0
+
+TAP_TESTS_SH= legacy_test
+
+FILESDIR= ${TESTSDIR}
+FILES= Makefile.test
+FILES+= expected.status.1
+FILES+= expected.stderr.1
+FILES+= expected.stdout.1
+
+.include <bsd.test.mk>
diff --git a/usr.bin/bmake/tests/syntax/directive-t0/Makefile.test b/usr.bin/bmake/tests/syntax/directive-t0/Makefile.test
new file mode 100644
index 0000000000000..0f95a2161164e
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/directive-t0/Makefile.test
@@ -0,0 +1,8 @@
+# $FreeBSD$
+#
+# A typo'ed directive.
+#
+
+.uudef foo
+
+all:
diff --git a/usr.bin/bmake/tests/syntax/directive-t0/expected.status.1 b/usr.bin/bmake/tests/syntax/directive-t0/expected.status.1
new file mode 100644
index 0000000000000..d00491fd7e5bb
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/directive-t0/expected.status.1
@@ -0,0 +1 @@
+1
diff --git a/usr.bin/bmake/tests/syntax/directive-t0/expected.stderr.1 b/usr.bin/bmake/tests/syntax/directive-t0/expected.stderr.1
new file mode 100644
index 0000000000000..de66fcc377529
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/directive-t0/expected.stderr.1
@@ -0,0 +1,2 @@
+"Makefile", line 6: Unknown directive
+make: fatal errors encountered -- cannot continue
diff --git a/usr.bin/bmake/tests/syntax/directive-t0/expected.stdout.1 b/usr.bin/bmake/tests/syntax/directive-t0/expected.stdout.1
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/directive-t0/expected.stdout.1
diff --git a/usr.bin/bmake/tests/syntax/directive-t0/legacy_test.sh b/usr.bin/bmake/tests/syntax/directive-t0/legacy_test.sh
new file mode 100644
index 0000000000000..451c8764c252e
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/directive-t0/legacy_test.sh
@@ -0,0 +1,13 @@
+#! /bin/sh
+# $FreeBSD$
+
+. $(dirname $0)/../../common.sh
+
+# Description
+DESC="A typo'ed directive."
+
+# Run
+TEST_N=1
+TEST_1=
+
+eval_cmd $*
diff --git a/usr.bin/bmake/tests/syntax/enl/Makefile b/usr.bin/bmake/tests/syntax/enl/Makefile
new file mode 100644
index 0000000000000..743e88fb49fc0
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/Makefile
@@ -0,0 +1,25 @@
+# $FreeBSD$
+
+TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax/enl
+
+TAP_TESTS_SH= legacy_test
+
+FILESDIR= ${TESTSDIR}
+FILES= Makefile.test
+FILES+= expected.status.1
+FILES+= expected.status.2
+FILES+= expected.status.3
+FILES+= expected.status.4
+FILES+= expected.status.5
+FILES+= expected.stderr.1
+FILES+= expected.stderr.2
+FILES+= expected.stderr.3
+FILES+= expected.stderr.4
+FILES+= expected.stderr.5
+FILES+= expected.stdout.1
+FILES+= expected.stdout.2
+FILES+= expected.stdout.3
+FILES+= expected.stdout.4
+FILES+= expected.stdout.5
+
+.include <bsd.test.mk>
diff --git a/usr.bin/bmake/tests/syntax/enl/Makefile.test b/usr.bin/bmake/tests/syntax/enl/Makefile.test
new file mode 100644
index 0000000000000..a7c69555f2446
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/Makefile.test
@@ -0,0 +1,59 @@
+# $FreeBSD$
+#
+# Test handling of escaped newlines.
+#
+
+.ifmake test1
+
+# This should succeed
+\
+\
+\
+test1:
+ @echo ok
+
+.elifmake test2
+
+# This should print ok because the second assignment to foo is actually
+# a continued comment.
+FOO=ok
+#\
+\
+FOO=not ok
+test2:
+ @echo "${FOO}"
+
+.elifmake test3
+
+# Make sure an escaped newline inserts a space
+test3: a\
+b
+
+a:
+ @echo a
+
+b:
+ @echo b
+
+.elifmake test4
+
+# Make sure an escaped newline inserts exactly one space
+FOO=a\
+ b
+
+test4:
+ @echo "${FOO}"
+
+.elifmake test5
+
+# Make sure each escaped newline inserts exactly one space
+FOO=a\
+\
+\
+\
+b
+
+test5:
+ @echo "${FOO}"
+
+.endif
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.1 b/usr.bin/bmake/tests/syntax/enl/expected.status.1
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.status.1
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.2 b/usr.bin/bmake/tests/syntax/enl/expected.status.2
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.status.2
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.3 b/usr.bin/bmake/tests/syntax/enl/expected.status.3
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.status.3
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.4 b/usr.bin/bmake/tests/syntax/enl/expected.status.4
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.status.4
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.status.5 b/usr.bin/bmake/tests/syntax/enl/expected.status.5
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.status.5
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.1 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.1
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.1
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.2 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.2
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.2
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.3 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.3
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.3
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.4 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.4
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.4
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stderr.5 b/usr.bin/bmake/tests/syntax/enl/expected.stderr.5
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stderr.5
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.1 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.1
new file mode 100644
index 0000000000000..9766475a4185a
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.1
@@ -0,0 +1 @@
+ok
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.2 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.2
new file mode 100644
index 0000000000000..9766475a4185a
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.2
@@ -0,0 +1 @@
+ok
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.3 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.3
new file mode 100644
index 0000000000000..422c2b7ab3b3c
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.3
@@ -0,0 +1,2 @@
+a
+b
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.4 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.4
new file mode 100644
index 0000000000000..b2901ea97cfc0
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.4
@@ -0,0 +1 @@
+a b
diff --git a/usr.bin/bmake/tests/syntax/enl/expected.stdout.5 b/usr.bin/bmake/tests/syntax/enl/expected.stdout.5
new file mode 100644
index 0000000000000..51200767c6166
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/expected.stdout.5
@@ -0,0 +1 @@
+a b
diff --git a/usr.bin/bmake/tests/syntax/enl/legacy_test.sh b/usr.bin/bmake/tests/syntax/enl/legacy_test.sh
new file mode 100644
index 0000000000000..307c1f02d2f0b
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/enl/legacy_test.sh
@@ -0,0 +1,13 @@
+#! /bin/sh
+# $FreeBSD$
+
+. $(dirname $0)/../../common.sh
+
+# Description
+DESC="Test escaped new-lines handling."
+
+# Run
+TEST_N=5
+TEST_2_TODO="bug in parser"
+
+eval_cmd $*
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/Makefile b/usr.bin/bmake/tests/syntax/funny-targets/Makefile
new file mode 100644
index 0000000000000..53a3e4d762db9
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/Makefile
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax/funny-targets
+
+TAP_TESTS_SH= legacy_test
+
+FILESDIR= ${TESTSDIR}
+FILES= Makefile.test
+FILES+= expected.status.1
+FILES+= expected.status.2
+FILES+= expected.stderr.1
+FILES+= expected.stderr.2
+FILES+= expected.stdout.1
+FILES+= expected.stdout.2
+
+.include <bsd.test.mk>
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/Makefile.test b/usr.bin/bmake/tests/syntax/funny-targets/Makefile.test
new file mode 100644
index 0000000000000..064ab3a9435f4
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/Makefile.test
@@ -0,0 +1,14 @@
+# $FreeBSD$
+#
+# PR bin/6612 / GRN r102178
+#
+
+test1: colons::colons::target
+
+colons::colons::target:
+ @echo '${.TARGET}'
+
+test2: exclamation!target
+
+exclamation!target:
+ @echo '${.TARGET}
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.status.1 b/usr.bin/bmake/tests/syntax/funny-targets/expected.status.1
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.status.1
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.status.2 b/usr.bin/bmake/tests/syntax/funny-targets/expected.status.2
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.status.2
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.1 b/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.1
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.1
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.2 b/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.2
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.stderr.2
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.1 b/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.1
new file mode 100644
index 0000000000000..09cb2328e9f7c
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.1
@@ -0,0 +1 @@
+colons::colons::target
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.2 b/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.2
new file mode 100644
index 0000000000000..b2f03648b48db
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/expected.stdout.2
@@ -0,0 +1 @@
+exclamation!target
diff --git a/usr.bin/bmake/tests/syntax/funny-targets/legacy_test.sh b/usr.bin/bmake/tests/syntax/funny-targets/legacy_test.sh
new file mode 100644
index 0000000000000..e9cd31701ecd1
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/funny-targets/legacy_test.sh
@@ -0,0 +1,12 @@
+#! /bin/sh
+# $FreeBSD$
+
+. $(dirname $0)/../../common.sh
+
+# Description
+DESC='Target names with "funny" embeded characters.'
+
+# Run
+TEST_N=2
+
+eval_cmd $*
diff --git a/usr.bin/bmake/tests/syntax/semi/Makefile b/usr.bin/bmake/tests/syntax/semi/Makefile
new file mode 100644
index 0000000000000..00a7f1e94e34e
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/Makefile
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+TESTSDIR= ${TESTSBASE}/usr.bin/bmake/syntax/semi
+
+TAP_TESTS_SH= legacy_test
+
+FILESDIR= ${TESTSDIR}
+FILES= Makefile.test
+FILES+= expected.status.1
+FILES+= expected.status.2
+FILES+= expected.stderr.1
+FILES+= expected.stderr.2
+FILES+= expected.stdout.1
+FILES+= expected.stdout.2
+
+.include <bsd.test.mk>
diff --git a/usr.bin/bmake/tests/syntax/semi/Makefile.test b/usr.bin/bmake/tests/syntax/semi/Makefile.test
new file mode 100644
index 0000000000000..12f52255ee12e
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/Makefile.test
@@ -0,0 +1,26 @@
+# $FreeBSD$
+#
+# Test handling of escaped newlines.
+#
+
+.ifmake test1
+
+FOO=
+BAR=bar
+FOO != echo ${FOO} ; echo ${BAR}
+
+test1:
+ echo ${FOO}
+
+.endif
+
+.ifmake test2
+
+FOO=foo
+BAR=bar
+FOO != echo ${FOO} ; echo ${BAR}
+
+test2:
+ echo ${FOO}
+
+.endif
diff --git a/usr.bin/bmake/tests/syntax/semi/expected.status.1 b/usr.bin/bmake/tests/syntax/semi/expected.status.1
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/expected.status.1
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/semi/expected.status.2 b/usr.bin/bmake/tests/syntax/semi/expected.status.2
new file mode 100644
index 0000000000000..573541ac9702d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/expected.status.2
@@ -0,0 +1 @@
+0
diff --git a/usr.bin/bmake/tests/syntax/semi/expected.stderr.1 b/usr.bin/bmake/tests/syntax/semi/expected.stderr.1
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/expected.stderr.1
diff --git a/usr.bin/bmake/tests/syntax/semi/expected.stderr.2 b/usr.bin/bmake/tests/syntax/semi/expected.stderr.2
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/expected.stderr.2
diff --git a/usr.bin/bmake/tests/syntax/semi/expected.stdout.1 b/usr.bin/bmake/tests/syntax/semi/expected.stdout.1
new file mode 100644
index 0000000000000..12b9617511d6a
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/expected.stdout.1
@@ -0,0 +1,2 @@
+echo bar
+bar
diff --git a/usr.bin/bmake/tests/syntax/semi/expected.stdout.2 b/usr.bin/bmake/tests/syntax/semi/expected.stdout.2
new file mode 100644
index 0000000000000..be0fa55566661
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/expected.stdout.2
@@ -0,0 +1,2 @@
+echo foo bar
+foo bar
diff --git a/usr.bin/bmake/tests/syntax/semi/legacy_test.sh b/usr.bin/bmake/tests/syntax/semi/legacy_test.sh
new file mode 100644
index 0000000000000..092635a849578
--- /dev/null
+++ b/usr.bin/bmake/tests/syntax/semi/legacy_test.sh
@@ -0,0 +1,13 @@
+#! /bin/sh
+# $FreeBSD$
+
+. $(dirname $0)/../../common.sh
+
+# Description
+DESC="Test semicolon handling."
+
+# Run
+TEST_N=2
+TEST_1_TODO="parser bug"
+
+eval_cmd $*