summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtest26
-rw-r--r--tests/bad_ws.mk2
-rw-r--r--tests/cont_of_blank.mk3
-rw-r--r--tests/cont_to_blank.mk3
-rw-r--r--tests/eof_cont.mk3
-rw-r--r--tests/ws_before_comment.mk2
6 files changed, 39 insertions, 0 deletions
diff --git a/test b/test
new file mode 100755
index 0000000..f8fc26c
--- /dev/null
+++ b/test
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# Every test file must start with a line formatted as follows:
+# #:<exit code>:<additional makel command line options>
+
+nfails=0
+for f in tests/*.mk; do
+ header=$(head -n1 "$f")
+ exp=$(echo "$header" | cut -d: -f2)
+ options=$(echo "$header" | cut -d: -f3)
+ ./makel -f$f $options 2>/dev/null 1>/dev/null
+ got=$?
+ if [ $got -lt $exp ]; then
+ echo "$f: defect was not detected (expected $exp, got $got)"
+ nfails=$((nfails+1))
+ fi
+ if [ $got -gt $exp ]; then
+ echo "$f: found more serious defects than expected (expected $exp, got $got)"
+ nfails=$((nfails+1))
+ fi
+done
+if [ $nfails -gt 0 ]; then
+ echo "----------"
+ echo "$nfails tests returned different exit codes than expected."
+fi
+
diff --git a/tests/bad_ws.mk b/tests/bad_ws.mk
new file mode 100644
index 0000000..7b3a0f7
--- /dev/null
+++ b/tests/bad_ws.mk
@@ -0,0 +1,2 @@
+#:6:
+ foo: bar # This line is preceded by a vertical tab
diff --git a/tests/cont_of_blank.mk b/tests/cont_of_blank.mk
new file mode 100644
index 0000000..ea9fac4
--- /dev/null
+++ b/tests/cont_of_blank.mk
@@ -0,0 +1,3 @@
+#:2:
+\
+ OBJS=
diff --git a/tests/cont_to_blank.mk b/tests/cont_to_blank.mk
new file mode 100644
index 0000000..20ed281
--- /dev/null
+++ b/tests/cont_to_blank.mk
@@ -0,0 +1,3 @@
+#:2:
+OBJS=\
+
diff --git a/tests/eof_cont.mk b/tests/eof_cont.mk
new file mode 100644
index 0000000..989d6fd
--- /dev/null
+++ b/tests/eof_cont.mk
@@ -0,0 +1,3 @@
+#:4:
+# Continuation to end-of-file
+OBJS=\
diff --git a/tests/ws_before_comment.mk b/tests/ws_before_comment.mk
new file mode 100644
index 0000000..1157b05
--- /dev/null
+++ b/tests/ws_before_comment.mk
@@ -0,0 +1,2 @@
+#:6:
+ # This is not actually a valid comment