aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog11
-rw-r--r--test/Makefile.am7
-rw-r--r--test/Makefile.in12
-rw-r--r--test/Maketests5
-rw-r--r--test/badbuild.awk6
-rw-r--r--test/badbuild.in1
-rw-r--r--test/badbuild.ok3
7 files changed, 41 insertions, 4 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index 9b00b382..2787b909 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,14 @@
+2014-12-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (badbuild): New test.
+ * badbuild.awk, badbuild.in, badbuild.ok: New files.
+
+2014-12-24 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * Makefile.am (check): If tests don't pass, run 'make diffout'
+ and exit 1. Should help distros to notice when they have built
+ gawk incorrectly. (Can you say "Fedora", boys and girls?)
+
2014-12-12 Arnold D. Robbins <arnold@skeeve.com>
* profile5.ok: Updated after code changes.
diff --git a/test/Makefile.am b/test/Makefile.am
index a00e011e..7335da32 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -123,6 +123,9 @@ EXTRA_DIST = \
badargs.ok \
badassign1.awk \
badassign1.ok \
+ badbuild.awk \
+ badbuild.in \
+ badbuild.ok \
beginfile1.awk \
beginfile1.ok \
beginfile2.in \
@@ -976,7 +979,7 @@ BASIC_TESTS = \
arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 arynasty \
arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \
aryprm8 arysubnm asgext awkpath \
- back89 backgsub badassign1 \
+ back89 backgsub badassign1 badbuild \
childin clobber closebad clsflnam compare compare2 concat1 concat2 \
concat3 concat4 convfmt \
datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \
@@ -1102,7 +1105,7 @@ check: msg \
charset-msg-start charset-tests charset-msg-end \
shlib-msg-start shlib-tests shlib-msg-end \
mpfr-msg-start mpfr-tests mpfr-msg-end
- @$(MAKE) pass-fail
+ @$(MAKE) pass-fail || { $(MAKE) diffout; exit 1; }
basic: $(BASIC_TESTS)
diff --git a/test/Makefile.in b/test/Makefile.in
index 93a989b5..fa86fc7f 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -370,6 +370,9 @@ EXTRA_DIST = \
badargs.ok \
badassign1.awk \
badassign1.ok \
+ badbuild.awk \
+ badbuild.in \
+ badbuild.ok \
beginfile1.awk \
beginfile1.ok \
beginfile2.in \
@@ -1222,7 +1225,7 @@ BASIC_TESTS = \
arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 arynasty \
arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \
aryprm8 arysubnm asgext awkpath \
- back89 backgsub badassign1 \
+ back89 backgsub badassign1 badbuild \
childin clobber closebad clsflnam compare compare2 concat1 concat2 \
concat3 concat4 convfmt \
datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \
@@ -1530,7 +1533,7 @@ check: msg \
charset-msg-start charset-tests charset-msg-end \
shlib-msg-start shlib-tests shlib-msg-end \
mpfr-msg-start mpfr-tests mpfr-msg-end
- @$(MAKE) pass-fail
+ @$(MAKE) pass-fail || { $(MAKE) diffout; exit 1; }
basic: $(BASIC_TESTS)
@@ -2553,6 +2556,11 @@ badassign1:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+badbuild:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
childin:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/Maketests b/test/Maketests
index 85c13d5d..e1b92bf9 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -125,6 +125,11 @@ badassign1:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+badbuild:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
childin:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/badbuild.awk b/test/badbuild.awk
new file mode 100644
index 00000000..12a6caeb
--- /dev/null
+++ b/test/badbuild.awk
@@ -0,0 +1,6 @@
+$1 == $2 == $3 {
+ print "Gawk was built incorrectly."
+ print "Use bison, not byacc or something else!"
+ print "(Really, why aren't you using the awkgram.c in the distribution?)"
+ exit 42
+}
diff --git a/test/badbuild.in b/test/badbuild.in
new file mode 100644
index 00000000..560711d4
--- /dev/null
+++ b/test/badbuild.in
@@ -0,0 +1 @@
+a a 1
diff --git a/test/badbuild.ok b/test/badbuild.ok
new file mode 100644
index 00000000..6d60f5a9
--- /dev/null
+++ b/test/badbuild.ok
@@ -0,0 +1,3 @@
+gawk: badbuild.awk:1: $1 == $2 == $3 {
+gawk: badbuild.awk:1: ^ syntax error
+EXIT CODE: 1