summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2010-07-16 13:17:58 +0300
committerArnold D. Robbins <arnold@skeeve.com>2010-07-16 13:17:58 +0300
commite888f1834b88270590b7e04d64c03c75863e4565 (patch)
treeab679ecbf16dc4f11b90a53f4b1e0084d78c98b0 /test
parentfae4762eba9ff7bb466a600130e9c90eaac6b0bc (diff)
downloadgawk-e888f1834b88270590b7e04d64c03c75863e4565.tar.gz
Move to gawk-3.1.2.gawk-3.1.2
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog224
-rwxr-xr-xtest/Gentests92
-rw-r--r--test/Makefile.am797
-rw-r--r--test/Makefile.in1679
-rw-r--r--test/Maketests718
-rw-r--r--test/arrayparm.ok1
-rw-r--r--test/arrymem1.awk10
-rw-r--r--test/arrymem1.ok1
-rw-r--r--test/asort.awk25
-rw-r--r--test/asort.ok18
-rw-r--r--test/asorti.awk27
-rw-r--r--test/asorti.ok18
-rw-r--r--test/back89.awk1
-rw-r--r--test/childin.awk1
-rw-r--r--test/childin.in1
-rw-r--r--test/defref.ok1
-rw-r--r--test/fieldwdth.awk2
-rw-r--r--test/fieldwdth.in1
-rw-r--r--test/fnamedat.ok1
-rw-r--r--test/fnarray.ok4
-rw-r--r--test/fnaryscl.ok1
-rw-r--r--test/fnasgnm.ok1
-rw-r--r--test/fnmisc.awk13
-rw-r--r--test/fnmisc.ok3
-rw-r--r--test/fsbs.awk2
-rw-r--r--test/fstabplus.in1
-rw-r--r--test/funsmnam.ok1
-rw-r--r--test/getline.awk30
-rw-r--r--test/getline.in3
-rw-r--r--test/getline.ok9
-rw-r--r--test/getline2.awk1
-rw-r--r--test/getline2.ok2
-rw-r--r--test/getline3.awk7
-rw-r--r--test/getline3.ok1
-rw-r--r--test/gsubasgn.ok1
-rw-r--r--test/gsubtest.awk1
-rw-r--r--test/gsubtest.ok1
-rw-r--r--test/gsubtst2.awk241
-rw-r--r--test/gsubtst2.ok25
-rw-r--r--test/gsubtst3.awk290
-rw-r--r--test/gsubtst3.in57
-rw-r--r--test/gsubtst3.ok60
-rw-r--r--test/gsubtst4.awk242
-rw-r--r--test/gsubtst4.ok33
-rw-r--r--test/icasefs.awk43
-rw-r--r--test/icasefs.ok6
-rw-r--r--test/icasers.awk2
-rw-r--r--test/icasers.in1
-rw-r--r--test/icasers.ok2
-rw-r--r--test/ignrcase.awk2
-rw-r--r--test/ignrcase.in1
-rw-r--r--test/inputred.awk1
-rw-r--r--test/inputred.ok1
-rw-r--r--test/longwrds.awk5
-rw-r--r--test/longwrds.in (renamed from test/manpage)0
-rw-r--r--test/manyfiles.ok1
-rw-r--r--test/match1.awk9
-rw-r--r--test/match1.ok6
-rw-r--r--test/negexp.awk1
-rw-r--r--test/nfldstr.awk13
-rw-r--r--test/nfldstr.in1
-rw-r--r--test/nfneg.awk1
-rw-r--r--test/nfneg.ok2
-rw-r--r--test/noeffect.awk3
-rw-r--r--test/noeffect.ok2
-rw-r--r--test/noloop1.awk70
-rw-r--r--test/noloop1.in1
-rw-r--r--test/noloop1.ok0
-rw-r--r--test/noloop2.awk70
-rw-r--r--test/noloop2.in1
-rw-r--r--test/noloop2.ok0
-rw-r--r--test/noparms.ok5
-rw-r--r--test/nulrsend.awk112
-rw-r--r--test/nulrsend.in4
-rw-r--r--test/nulrsend.ok2
-rw-r--r--test/paramdup.ok1
-rw-r--r--test/parseme.ok3
-rw-r--r--test/posix.in1
-rwxr-xr-xtest/poundbang.awk3
-rw-r--r--test/poundbang.ok1
-rw-r--r--test/prec.awk7
-rw-r--r--test/prec.ok1
-rw-r--r--test/printf0.awk5
-rw-r--r--test/printf0.ok1
-rw-r--r--test/prmarscl.ok1
-rw-r--r--test/prmreuse.awk2
-rw-r--r--test/rebuf.awk73
-rw-r--r--test/rebuf.in2350
-rw-r--r--test/rebuf.ok1290
-rw-r--r--test/resplit.awk1
-rw-r--r--test/resplit.in1
-rw-r--r--test/rs.awk2
-rw-r--r--test/rstest1.awk7
-rw-r--r--test/rstest1.ok2
-rw-r--r--test/rstest2.awk6
-rw-r--r--test/rstest2.ok1
-rw-r--r--test/sclforin.ok1
-rw-r--r--test/sclifin.ok1
-rw-r--r--test/space.ok2
-rw-r--r--test/splitarr.awk5
-rw-r--r--test/splitarr.ok1
-rw-r--r--test/strtod.awk6
-rw-r--r--test/strtod.in2
-rw-r--r--test/strtod.ok1
-rw-r--r--test/synerr1.awk4
-rw-r--r--test/synerr1.ok3
-rw-r--r--test/uninit2.awk2
-rw-r--r--test/uninit2.ok4
-rw-r--r--test/uninitialized.awk3
-rw-r--r--test/uninitialized.ok1
-rw-r--r--test/zeroe0.awk40
-rw-r--r--test/zeroe0.ok2
112 files changed, 7673 insertions, 1180 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index 10fc85a8..3da3d663 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,227 @@
+Wed Mar 19 14:10:31 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ This time for sure.
+ -- Bullwinkle
+
+ * Release 3.1.2: Release tar file made.
+
+Wed Mar 19 14:00:00 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (synerr1): New test.
+ * synerr1.awk, synerr1.ok: New files.
+
+Tue Mar 4 10:32:23 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (clean): Remove `core*' for modern Linux which
+ drops core in `core.PID' files.
+
+2003-02-17 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (check): Don't depend on the pass-fail rule that
+ reports any failures. Otherwise, `make -j' that rule's commands
+ could run before all tests had completed, resulting in spurious
+ failures or potentially, even unreported failures. Instead, just
+ `$(MAKE) pass-fail'.
+
+Sun Feb 9 11:48:32 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am: Moved `space' into UNIX_TESTS. Breaks in
+ MS environments.
+
+Tue Feb 4 14:28:06 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ All relevant files: Copyright year updated to 2003.
+
+Tue Feb 4 12:22:41 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (fnmisc): New test case.
+ * fnmisc.awk, fnmisc.ok: New files.
+
+Sun Feb 2 15:33:33 2003 Stepan Kasal <kasal@math.cas.cz>
+
+ * getline3.awk, getline3.ok: Renamed from getline2.awk, getline2.ok
+ * Makefile.am (getline, getline2): getline renamed to getline2,
+ new test under the name getline.
+ * getline.awk, getline.ok, getline2.awk, getline2.ok:
+ rename getline.* getline2.*; new files getline.* .
+ * getline.awk, getline.ok: add tests for ``cmd | getline ''
+ * Makefile.am (printf0): New test.
+ * printf0.awk, printf0.ok: New files.
+ * fnarray.ok: The error message has changed.
+
+Thu Jan 30 15:32:56 2003 Stepan Kasal <kasal@math.cas.cz>
+
+ * Makefile.am (splitarr, getline2, inputred, prec): New tests.
+ * splitarr.awk, splitarr.ok: New files.
+ * getline2.awk, getline2.ok: New files.
+ * inputred.awk, inputred.ok: New files.
+ * prec.awk, prec.ok: New files.
+ * noeffect.awk: add second no-effect command; two error messages
+ should be generated. Add some empty statements, to check that --lint
+ doesn't abort on them.
+
+Tue Jan 28 18:34:22 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ * arrymem1.awk: Enhanced test.
+ * arrayme1.ok: Updated for new output
+
+Mon Jan 27 14:07:16 2003 Stepan Kasal <kasal@math.cas.cz>
+
+ * nfldstr.awk: Add tests for automatic number conversion.
+
+Mon Jan 27 12:25:41 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (asort, asorti, match1): New tests.
+ * match1.awk, match1.in: New files.
+ * asort.awk, asort.in: New files.
+ * asorti.awk, asorti.in: New files.
+
+Mon Jan 27 12:10:16 2003 Stepan Kasal <kasal@math.cas.cz>
+
+ * strtod.awk, strtod.in, strtod.ok: Added test for 0e0 and similar.
+
+Sun Jan 26 16:49:41 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (zeroe0): New test.
+ * zeroe0.awk, zeroe0.in: New files.
+
+Thu Jan 2 11:09:12 2003 Arnold D. Robbins <arnold@skeeve.com>
+
+ * parseme.ok, noparms.ok: Revised for bison 1.875.
+
+Tue Dec 31 16:54:44 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am: (poundbang): Fix code.
+ (efence): New target to remove _* files run with Electric Fence
+ but that are otherwise OK.
+
+Thu Dec 26 16:44:37 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (poundbang): Add code to handle systems with limits on
+ paths for #! files.
+
+Mon Dec 9 14:20:44 2002 Stepan Kasal <kasal@math.cas.cz>
+
+ * Makefile.am (space): New test: ``gawk -f " " file'' should try
+ to include file ` '.
+
+Sun Nov 17 21:47:11 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (manyfiles): Reference $(srcdir)/$@.ok so can build
+ and test in a different directory.
+
+Sun Nov 3 14:47:59 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ Move tests with inline input and/or programs into separate files so can let
+ Gentests do more work. Per Nelson Beebe, just print the name of each test.
+
+ * Makefile.am (fstabplus, longwrds, fieldwdth, ignrcase, posix, rs, fsbs):
+ removed targets so will be generated by Gentests.
+ (negexp, resplit, childin, back89, nfldstr, nondec): ditto.
+ * Gentests: print name of test, make cmp not echo by prefixing with @.
+ * fstabplus.in: new file.
+ * fieldwdth.awk, fieldwdth.in: new files.
+ * ignrcase.awk, ignrcase.in: new files.
+ * longwrds.awk: send output to sort instead of letting makefile do it.
+ * longwrds.in: renamed from manpage.
+ * posix.in: new file.
+ * manyfiles.ok: new file.
+ * rs.awk: new file.
+ * fsbs.awk: new file.
+ * negexp.awk: new file.
+ * resplit.awk, resplit.in: new files.
+ * childin.awk, childin.in: new files.
+ * back89.awk: new file.
+ * nfldstr.awk, nfldstr.in: new files.
+
+Sun Nov 3 14:37:39 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (uninit2): new test case, requires lint.
+ * uninit2.awk, uninit2.ok: new files.
+
+Fri Nov 1 11:34:45 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (nondec): Always run this test.
+
+Tue Oct 29 10:40:47 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (EXTRA_DIST): Added Gentests to list of files
+ to distribute.
+
+Mon Oct 28 15:36:42 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (icasers, icasefs, rstest1, rstest2): new test cases.
+ (argarray): Remove argarray.in if not in srcdir.
+ * icasers.awk, icasers.in, icasers.ok: new files.
+ * icasefs.awk, icasefs.ok: new files.
+ * rstest1.awk, rstest1.ok: new files.
+ * rstest2.awk, rstest2.ok: new files.
+
+Mon Oct 28 12:25:25 2002 Stepan Kasal <kasal@math.cas.cz>
+
+ * Makefile.am (uninitialized): New test.
+ * uninitialized.awk, uninitialized.ok: New files.
+
+Mon Oct 28 11:24:16 2002 Stepan Kasal <kasal@math.cas.cz>
+
+ * Gentests: new script
+ * Maketests: new file, generated automatically by Gentests
+ * Makefile.am: new rules and variables to make use of Gentests;
+ Most targets removed, Gentests will take care
+
+Sun Oct 13 16:58:07 2002 Stepan Kasal <kasal@math.cas.cz>
+
+ * Makefile.am (nfneg): new test case.
+ * nfneg.awk, nfneg.ok: new files.
+
+Mon Oct 7 09:38:07 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (noloop1, noloop2): new test cases.
+ * noloop.awk, noloop1.in, noloop1.ok, noloop2.in, noloop2.ok:
+ new files.
+
+Tue Oct 1 18:28:40 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (poundbang): Rewrote rule to avoid problems
+ with hardcoding of /tmp pathname.
+ (poundbang.awk): Changed the way it works.
+ (poundbang.ok): Removed.
+
+Thu Sep 5 13:31:28 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (rebuf): new test case.
+ * rebuf.awk, rebuf.in, rebuf.ok: new files.
+
+Wed Aug 21 15:31:57 2002 Andreas Buening <andreas.buening@nexgo.de>
+
+ * Makefile.am (AWKPROG): Add $(EXEEXT) macro.
+ (PATH_SEPERATOR): Removed.
+ (poundbag): Added $(EXEEXT) and use of ${TMPDIR-/tmp}.
+
+Wed Aug 7 13:47:09 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (nulrsend): new test case.
+ * nulrsend.awk, nulrsend.in, nulrsend.ok: new files.
+
+Sun Aug 4 00:25:23 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (gsubtst3, gsubtst4): new test cases.
+ * gsubtst3.awk, gsubtst3.ok, gsubtst4.awk, gsubtst4.ok: new files.
+
+Thu May 9 22:31:36 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (gsubtst2): new test case.
+ * gsubtest.awk, gsubtest.ok: Added new test.
+ * gsubtst2.awk, gsubtst2.ok: new files.
+
+Sun May 5 12:38:55 2002 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am: Minor mods to use LC_ALL=C so that checks will
+ use the English messages, not any translations.
+ (manyfiles): Fixed (hopefully) to leave a file around if the
+ test fails, so that we don't get a spurious "ALL TESTS PASSED"
+ message.
+
Wed May 1 16:41:32 2002 Arnold D. Robbins <arnold@skeeve.com>
* Release 3.1.1: Release tar file made.
diff --git a/test/Gentests b/test/Gentests
new file mode 100755
index 00000000..10401ddf
--- /dev/null
+++ b/test/Gentests
@@ -0,0 +1,92 @@
+#!/usr/bin/gawk -f
+
+# This program should generate Maketests
+
+BEGIN {
+ # read the list of files
+ for (i = 2; i < ARGC; i++)
+ files[ARGV[i]]
+
+ # throw it away
+ ARGC = 2
+
+ ntests = 0
+}
+
+# process the file Makefile.am:
+
+/^[A-Z_]*_TESTS *=/,/[^\\]$/ {
+ gsub(/(^[A-Z_]*_TESTS *=|\\$)/,"")
+ for (i = 1; i <= NF; i++)
+ tests[++ntests] = $i
+ next
+}
+
+/^NEED_LINT *=/,/[^\\]$/ {
+ gsub(/(^NEED_LINT *=|\\$)/,"")
+ for (i = 1; i <= NF; i++)
+ lint[$i]
+ next
+}
+
+/^GENTESTS_UNUSED *=/,/[^\\]$/ {
+ gsub(/(^GENTESTS_UNUSED *=|\\$)/,"")
+ for (i = 1; i <= NF; i++)
+ unused[$i]
+ next
+}
+
+/^[a-zA-Z][a-zA-Z0-9]*:/ {
+ # remember all targets from Makefile.am
+ sub(/:.*/,"")
+ targets[$0]
+}
+
+# Now write the output file:
+END {
+ # this line tells automake to keep the comment with the rules:
+ print "Gt-dummy:"
+ print "# file Maketests, generated from Makefile.am by the Gentests program"
+
+ for (i = 1; i <= ntests; i++) {
+ x = tests[i]
+ if (!(x in targets))
+ generate(x)
+ }
+
+ print "# end of file Maketests"
+}
+
+function generate(x, s)
+{
+ if (!(x".awk" in files))
+ printf "WARNING: file `%s.awk' not found.\n", x > "/dev/stderr"
+ else
+ delete files[x".awk"]
+
+ print x ":"
+
+ s = ""
+ if (x in lint) {
+ s = s " --lint"
+ delete lint[x]
+ }
+ if (x".in" in files) {
+ s = s " < $(srcdir)/$@.in"
+ delete files[x".in"]
+ }
+
+ printf "\t@echo %s\n", x
+ printf "\t@AWKPATH=$(srcdir) $(AWK) -f $@.awk %s >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@\n", s
+ printf "\t@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@\n\n"
+}
+
+END {
+ for (x in lint)
+ if (!(x in targets))
+ printf "WARNING: --lint target `%s' is missing.\n", x > "/dev/stderr"
+ for (x in files)
+ if (!(x in unused) && \
+ !(gensub(/\.(awk|in)$/,"","",x) in targets))
+ printf "WARNING: unused file `%s'.\n", x > "/dev/stderr"
+}
diff --git a/test/Makefile.am b/test/Makefile.am
index be4acada..fb0917b4 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,7 +1,7 @@
#
# test/Makefile.am --- automake input file for gawk
#
-# Copyright (C) 1988-2002 the Free Software Foundation, Inc.
+# Copyright (C) 1988-2003 the Free Software Foundation, Inc.
#
# This file is part of GAWK, the GNU implementation of the
# AWK Programming Language.
@@ -26,6 +26,8 @@
EXTRA_DIST = \
reg \
lib \
+ Gentests \
+ Maketests \
README \
addcomma.awk \
addcomma.in \
@@ -54,13 +56,20 @@ EXTRA_DIST = \
asgext.awk \
asgext.in \
asgext.ok \
+ asort.awk \
+ asort.ok \
+ asorti.awk \
+ asorti.ok \
awkpath.ok \
+ back89.awk \
back89.in \
back89.ok \
backgsub.awk \
backgsub.in \
backgsub.ok \
badargs.ok \
+ childin.awk \
+ childin.in \
childin.ok \
clobber.awk \
clobber.ok \
@@ -92,6 +101,8 @@ EXTRA_DIST = \
eofsplit.ok \
fflush.ok \
fflush.sh \
+ fieldwdth.awk \
+ fieldwdth.in \
fieldwdth.ok \
fldchg.awk \
fldchg.in \
@@ -111,10 +122,13 @@ EXTRA_DIST = \
fnasgnm.awk \
fnasgnm.in \
fnasgnm.ok \
+ fnmisc.awk \
+ fnmisc.ok \
fnparydl.awk \
fnparydl.ok \
forsimp.awk \
forsimp.ok \
+ fsbs.awk \
fsbs.in \
fsbs.ok \
fsfwfs.awk \
@@ -124,6 +138,7 @@ EXTRA_DIST = \
fsrs.in \
fsrs.ok \
fstabplus.awk \
+ fstabplus.in \
fstabplus.ok \
funsemnl.awk \
funsemnl.ok \
@@ -136,7 +151,12 @@ EXTRA_DIST = \
gensub.in \
gensub.ok \
getline.awk \
+ getline.in \
getline.ok \
+ getline2.awk \
+ getline2.ok \
+ getline3.awk \
+ getline3.ok \
getlnbuf.awk \
getlnbuf.in \
getlnbuf.ok \
@@ -156,18 +176,34 @@ EXTRA_DIST = \
gsubasgn.ok \
gsubtest.awk \
gsubtest.ok \
+ gsubtst2.awk \
+ gsubtst2.ok \
+ gsubtst3.awk \
+ gsubtst3.in \
+ gsubtst3.ok \
+ gsubtst4.awk \
+ gsubtst4.ok \
gtlnbufv.awk \
hsprint.awk \
hsprint.ok \
+ icasefs.awk \
+ icasefs.ok \
+ icasers.awk \
+ icasers.in \
+ icasers.ok \
igncdym.awk \
igncdym.in \
igncdym.ok \
igncfs.awk \
igncfs.in \
igncfs.ok \
+ ignrcase.awk \
+ ignrcase.in \
ignrcase.ok \
inftest.awk \
inftest.ok \
+ inputred.awk \
+ inputred.ok \
intest.awk \
intest.ok \
intprec.awk \
@@ -186,8 +222,11 @@ EXTRA_DIST = \
longsub.ok \
longwrds.awk \
longwrds.ok \
- manpage \
+ longwrds.in \
manyfiles.awk \
+ manyfiles.ok \
+ match1.awk \
+ match1.ok \
math.awk \
math.ok \
membug1.awk \
@@ -201,8 +240,13 @@ EXTRA_DIST = \
nasty.ok \
nasty2.awk \
nasty2.ok \
+ negexp.awk \
negexp.ok \
+ nfldstr.awk \
+ nfldstr.in \
nfldstr.ok \
+ nfneg.awk \
+ nfneg.ok \
nfset.awk \
nfset.in \
nfset.ok \
@@ -218,6 +262,12 @@ EXTRA_DIST = \
noeffect.ok \
nofmtch.awk \
nofmtch.ok \
+ noloop1.awk \
+ noloop1.in \
+ noloop1.ok \
+ noloop2.awk \
+ noloop2.in \
+ noloop2.ok \
nondec.awk \
nondec.ok \
nonl.awk \
@@ -226,6 +276,9 @@ EXTRA_DIST = \
noparms.ok \
nors.in \
nors.ok \
+ nulrsend.awk \
+ nulrsend.in \
+ nulrsend.ok \
numindex.awk \
numindex.in \
numindex.ok \
@@ -273,12 +326,16 @@ EXTRA_DIST = \
pipeio2.in \
pipeio2.ok \
posix.awk \
+ posix.in \
posix.ok \
poundbang.awk \
- poundbang.ok \
prdupval.awk \
prdupval.in \
prdupval.ok \
+ prec.awk \
+ prec.ok \
+ printf0.awk \
+ printf0.ok \
printf1.awk \
printf1.ok \
printfloat.awk \
@@ -309,6 +366,9 @@ EXTRA_DIST = \
regtest.sh \
regx8bit.awk \
regx8bit.ok \
+ rebuf.awk \
+ rebuf.in \
+ rebuf.ok \
reindops.awk \
reindops.in \
reindops.ok \
@@ -318,12 +378,19 @@ EXTRA_DIST = \
reparse.awk \
reparse.in \
reparse.ok \
+ resplit.awk \
+ resplit.in \
resplit.ok \
+ rs.awk \
rs.in \
rs.ok \
rsnul1nl.awk \
rsnul1nl.in \
rsnul1nl.ok \
+ rstest1.awk \
+ rstest1.ok \
+ rstest2.awk \
+ rstest2.ok \
rswhite.awk \
rswhite.in \
rswhite.ok \
@@ -335,9 +402,12 @@ EXTRA_DIST = \
shadow.ok \
sort1.awk \
sort1.ok \
+ space.ok \
splitargv.awk \
splitargv.in \
splitargv.ok \
+ splitarr.awk \
+ splitarr.ok \
splitdef.awk \
splitdef.ok \
splitvar.awk \
@@ -361,56 +431,84 @@ EXTRA_DIST = \
swaplns.awk \
swaplns.in \
swaplns.ok \
+ synerr1.awk \
+ synerr1.ok \
tradanch.awk \
tradanch.in \
tradanch.ok \
tweakfld.awk \
tweakfld.in \
tweakfld.ok \
+ uninitialized.awk \
+ uninitialized.ok \
+ uninit2.awk \
+ uninit2.ok \
+ zeroe0.awk \
+ zeroe0.ok \
zeroflag.awk \
zeroflag.ok
-CMP = cmp
-AWK = ../gawk
+# try to keep these sorted
+BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayref arrymem1 arynasty \
+ arynocls arysubnm asgext awkpath back89 backgsub childin clobber \
+ clsflnam compare compare2 concat1 convfmt datanonl defref delarprm \
+ dynlj eofsplit fldchg fldchgnf fnamedat fnarray fnarydel fnaryscl \
+ fnasgnm fnmisc fnparydl forsimp fsbs fsrs fstabplus funsemnl funsmnam \
+ funstack getline getline2 getline3 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \
+ gsubtst2 gsubtst3 gsubtst4 hsprint inputred intest intprec leaddig leadnl \
+ litoct longsub longwrds math membug1 messages minusstr mmap8k \
+ nasty nasty2 negexp nfldstr nfneg nfset nlfldsep nlinstr nlstrina \
+ noeffect nofmtch noloop1 noloop2 nonl noparms nors nulrsend \
+ numindex numsubstr octsub ofmt ofmtbig ofmtfidl ofmts onlynl \
+ opasnidx opasnslf paramdup paramtyp parseme pcntplus prdupval prec \
+ printf0 printf1 prmarscl prmreuse prt1eval prtoeval psx96sub rand rebt8b1 \
+ rebt8b2 redfilnm regeq reindops reparse resplit rs rsnul1nl \
+ rstest1 rstest2 rswhite sclforin sclifin splitargv splitarr splitdef \
+ splitvar splitwht sprintfc strtod subslash substr swaplns synerr1 \
+ tradanch tweakfld uninitialized uninit2 zeroe0 zeroflag
+
+UNIX_TESTS = fflush getlnhd pid pipeio1 pipeio2 poundbang space strftlng
+
+GAWK_EXT_TESTS = argtest asort asorti badargs clos1way fieldwdth fsfwfs \
+ gensub gnuops2 gnureops icasefs icasers igncdym igncfs ignrcase lint \
+ match1 manyfiles nondec posix procinfs regx8bit rebuf reint shadow \
+ sort1 strftime
+
+EXTRA_TESTS = regtest inftest
+
+INET_TESTS = inetechu inetecht inetdayu inetdayt
+
+# List of the tests which should be run with --lint option:
+NEED_LINT = defref noeffect nofmtch shadow uninitialized uninit2
+
+# List of the files that appear in manual tests or are for reserve testing:
+GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk
-# Special stuff for OS/2
-PATH_SEPARATOR = @PATH_SEPARATOR@
+CMP = cmp
+AWKPROG = ../gawk$(EXEEXT)
+AWK = LC_ALL=C $(AWKPROG)
-# message stuff is to make it a little easier to follow
+# Message stuff is to make it a little easier to follow.
+# Make the pass-fail last and dependent on others to avoid
+# spurious errors if `make -j' in effect.
check: msg \
basic-msg-start basic basic-msg-end \
unix-msg-start unix-tests unix-msg-end \
- extend-msg-start gawk-extensions extend-msg-end \
- pass-fail
+ extend-msg-start gawk-extensions extend-msg-end
+ @$(MAKE) pass-fail
-# try to keep these sorted
-basic: addcomma anchgsub argarray arrayparm arrayref arynasty arynocls \
- arysubnm arrymem1 asgext awkpath back89 backgsub childin clobber \
- clsflnam compare compare2 concat1 convfmt datanonl defref delarprm dynlj eofsplit \
- fldchg fldchgnf fnamedat fnarray fnarydel fnaryscl fnasgnm \
- fnparydl forsimp fsbs fsrs fstabplus funsemnl funsmnam funstack getline \
- getlnbuf getnr2tb getnr2tm gsubasgn gsubtest hsprint intest \
- intprec leaddig leadnl litoct longsub longwrds math membug1 messages minusstr \
- mmap8k nasty nasty2 negexp nfldstr nfset nlfldsep nlinstr nlstrina \
- noeffect nofmtch nonl noparms nors numindex numsubstr octsub \
- ofmt ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup paramtyp \
- parseme pcntplus prdupval printf1 prmarscl prmreuse prt1eval \
- prtoeval psx96sub rand rebt8b1 rebt8b2 redfilnm regeq reindops \
- reparse resplit rs rsnul1nl rswhite sclforin sclifin splitargv \
- splitdef splitvar splitwht sprintfc strtod subslash substr \
- swaplns tradanch tweakfld zeroflag
-
-unix-tests: fflush getlnhd pid pipeio1 pipeio2 poundbang strftlng
-
-gawk-extensions: argtest badargs clos1way fieldwdth fsfwfs gensub \
- gnuops2 gnureops igncdym igncfs ignrcase lint manyfiles nondec \
- posix procinfs regx8bit reint shadow sort1 strftime
-
-extra: regtest inftest inet
-
-inet: inetmesg inetechu inetecht inetdayu inetdayt
+basic: $(BASIC_TESTS)
+
+unix-tests: $(UNIX_TESTS)
+
+gawk-extensions: $(GAWK_EXT_TESTS)
+
+extra: $(EXTRA_TESTS) inet
+
+inet: inetmesg $(INET_TESTS)
msg::
+ @echo ''
@echo 'Any output from "cmp" is bad news, although some differences'
@echo 'in floating point values are probably benign -- in particular,'
@echo 'some systems may omit a leading zero and the floating point'
@@ -436,57 +534,40 @@ extend-msg-end:
# This test is a PITA because increasingly, /tmp is getting
-# mounted noexec. So, we'll test it. Sigh.
+# mounted noexec. So, we'll test it locally. Sigh.
+#
+# More PITA; some systems have medium short limits on #! paths,
+# so this can still fail
poundbang::
- @cp $(AWK) /tmp/gawk
- @if /tmp/gawk 'BEGIN { print "OK" }' | grep OK > /dev/null ; \
- then \
- $(srcdir)/poundbang.awk $(srcdir)/poundbang.awk >_`basename $@` ; \
- $(CMP) $(srcdir)/poundbang.ok _`basename $@` && rm -f _`basename $@` && echo poundbang is ok ; \
+ @echo $@
+ @sed "s;/tmp/gawk;`pwd`/$(AWKPROG);" < $(srcdir)/poundbang.awk > ./_pbd.awk
+ @chmod +x ./_pbd.awk
+ @if ./_pbd.awk $(srcdir)/poundbang.awk > _`basename $@` ; \
+ then : ; \
else \
- echo "*** /tmp is apparently mounted noexec, skipping poundbang test." ; \
+ sed "s;/tmp/gawk;../$(AWKPROG);" < $(srcdir)/poundbang.awk > ./_pbd.awk ; \
+ chmod +x ./_pbd.awk ; \
+ ./_pbd.awk $(srcdir)/poundbang.awk > _`basename $@`; \
fi
- @rm -f /tmp/gawk
-
-swaplns::
- @$(AWK) -f $(srcdir)/swaplns.awk $(srcdir)/swaplns.in >_$@
- -$(CMP) $(srcdir)/swaplns.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/poundbang.awk _`basename $@` && rm -f _`basename $@` _pbd.awk
messages::
+ @echo $@
@$(AWK) -f $(srcdir)/messages.awk >out2 2>out3
- -$(CMP) $(srcdir)/out1.ok out1 && $(CMP) $(srcdir)/out2.ok out2 && $(CMP) $(srcdir)/out3.ok out3 && rm -f out1 out2 out3
+ @-$(CMP) $(srcdir)/out1.ok out1 && $(CMP) $(srcdir)/out2.ok out2 && $(CMP) $(srcdir)/out3.ok out3 && rm -f out1 out2 out3
argarray::
+ @echo $@
@case $(srcdir) in \
.) : ;; \
*) cp $(srcdir)/argarray.in . ;; \
esac
@TEST=test echo just a test | $(AWK) -f $(srcdir)/argarray.awk ./argarray.in - >_$@
- -$(CMP) $(srcdir)/argarray.ok _$@ && rm -f _$@
-
-fstabplus::
- @echo '1 2' | $(AWK) -f $(srcdir)/fstabplus.awk >_$@
- -$(CMP) $(srcdir)/fstabplus.ok _$@ && rm -f _$@
-
-fsrs::
- @$(AWK) -f $(srcdir)/fsrs.awk $(srcdir)/fsrs.in >_$@
- -$(CMP) $(srcdir)/fsrs.ok _$@ && rm -f _$@
-
-igncfs::
- @$(AWK) -f $(srcdir)/igncfs.awk $(srcdir)/igncfs.in >_$@
- -$(CMP) $(srcdir)/igncfs.ok _$@ && rm -f _$@
-
-longwrds::
- @$(AWK) -f $(srcdir)/longwrds.awk $(srcdir)/manpage | (LC_ALL=C sort) >_$@
- -$(CMP) $(srcdir)/longwrds.ok _$@ && rm -f _$@
-
-fieldwdth::
- @echo '123456789' | $(AWK) -v FIELDWIDTHS="2 3 4" '{ print $$2}' >_$@
- -$(CMP) $(srcdir)/fieldwdth.ok _$@ && rm -f _$@
-
-ignrcase::
- @echo xYz | $(AWK) -v IGNORECASE=1 '{ sub(/y/, ""); print}' >_$@
- -$(CMP) $(srcdir)/ignrcase.ok _$@ && rm -f _$@
+ @case $(srcdir) in \
+ .) : ;; \
+ *) rm -f ./argarray.in ;; \
+ esac
+ @-$(CMP) $(srcdir)/argarray.ok _$@ && rm -f _$@
regtest::
@echo 'Some of the output from regtest is very system specific, do not'
@@ -494,473 +575,142 @@ regtest::
@echo 'Manual inspection is called for.'
AWK=`pwd`/$(AWK) $(srcdir)/regtest.sh
-posix::
- @echo '1:2,3 4' | $(AWK) -f $(srcdir)/posix.awk >_$@
- -$(CMP) $(srcdir)/posix.ok _$@ && rm -f _$@
-
manyfiles::
+ @echo manyfiles
@rm -rf junk
@mkdir junk
@$(AWK) 'BEGIN { for (i = 1; i <= 300; i++) print i, i}' >_$@
@$(AWK) -f $(srcdir)/manyfiles.awk _$@ _$@
- @echo "This number better be 1 ->" | tr -d '\012\015'
- @wc -l junk/* | $(AWK) '$$1 != 2' | wc -l
- @rm -rf junk _$@
+ @wc -l junk/* | $(AWK) '$$1 != 2' | wc -l | sed 's/ *//g' > _$@
+ @rm -rf junk ; $(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
compare::
+ @echo $@
@$(AWK) -f $(srcdir)/compare.awk 0 1 $(srcdir)/compare.in >_$@
- -$(CMP) $(srcdir)/compare.ok _$@ && rm -f _$@
-
-arrayref::
- @$(AWK) -f $(srcdir)/arrayref.awk >_$@
- -$(CMP) $(srcdir)/arrayref.ok _$@ && rm -f _$@
-
-rs::
- @$(AWK) -v RS="" '{ print $$1, $$2}' $(srcdir)/rs.in >_$@
- -$(CMP) $(srcdir)/rs.ok _$@ && rm -f _$@
-
-fsbs::
- @$(AWK) -v FS='\' '{ print $$1, $$2 }' $(srcdir)/fsbs.in >_$@
- -$(CMP) $(srcdir)/fsbs.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/compare.ok _$@ && rm -f _$@
inftest::
+ @echo $@
@echo This test is very machine specific...
@$(AWK) -f $(srcdir)/inftest.awk | sed 's/inf/Inf/g' >_$@
- -$(CMP) $(srcdir)/inftest.ok _$@ && rm -f _$@
-
-getline::
- @$(AWK) -f $(srcdir)/getline.awk $(srcdir)/getline.awk $(srcdir)/getline.awk >_$@
- -$(CMP) $(srcdir)/getline.ok _$@ && rm -f _$@
-
-rand::
- @$(AWK) -f $(srcdir)/rand.awk >_$@
- -$(CMP) $(srcdir)/rand.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/inftest.ok _$@ && rm -f _$@
-negexp::
- @$(AWK) 'BEGIN { a = -2; print 10^a }' >_$@
- -$(CMP) $(srcdir)/negexp.ok _$@ && rm -f _$@
-
-asgext::
- @$(AWK) -f $(srcdir)/asgext.awk $(srcdir)/asgext.in >_$@
- -$(CMP) $(srcdir)/asgext.ok _$@ && rm -f _$@
-
-anchgsub::
- @$(AWK) -f $(srcdir)/anchgsub.awk $(srcdir)/anchgsub.in >_$@
- -$(CMP) $(srcdir)/anchgsub.ok _$@ && rm -f _$@
-
-splitargv::
- @$(AWK) -f $(srcdir)/splitargv.awk $(srcdir)/splitargv.in >_$@
- -$(CMP) $(srcdir)/splitargv.ok _$@ && rm -f _$@
+getline2::
+ @echo $@
+ @$(AWK) -f $(srcdir)/getline2.awk $(srcdir)/getline2.awk $(srcdir)/getline2.awk >_$@
+ @-$(CMP) $(srcdir)/getline2.ok _$@ && rm -f _$@
awkpath::
+ @echo $@
@AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f awkpath.awk >_$@
- -$(CMP) $(srcdir)/awkpath.ok _$@ && rm -f _$@
-
-nfset::
- @$(AWK) -f $(srcdir)/nfset.awk $(srcdir)/nfset.in >_$@
- -$(CMP) $(srcdir)/nfset.ok _$@ && rm -f _$@
-
-reparse::
- @$(AWK) -f $(srcdir)/reparse.awk $(srcdir)/reparse.in >_$@
- -$(CMP) $(srcdir)/reparse.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/awkpath.ok _$@ && rm -f _$@
argtest::
+ @echo $@
@$(AWK) -f $(srcdir)/argtest.awk -x -y abc >_$@
- -$(CMP) $(srcdir)/argtest.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/argtest.ok _$@ && rm -f _$@
badargs::
+ @echo $@
@-$(AWK) -f 2>&1 | grep -v patchlevel >_$@
- -$(CMP) $(srcdir)/badargs.ok _$@ && rm -f _$@
-
-convfmt::
- @$(AWK) -f $(srcdir)/convfmt.awk >_$@
- -$(CMP) $(srcdir)/convfmt.ok _$@ && rm -f _$@
-
-arrayparm::
- @-AWKPATH=$(srcdir) $(AWK) -f arrayparm.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/arrayparm.ok _$@ && rm -f _$@
-
-paramdup::
- @-AWKPATH=$(srcdir) $(AWK) -f paramdup.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/paramdup.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/badargs.ok _$@ && rm -f _$@
nonl::
+ @echo $@
@-AWKPATH=$(srcdir) $(AWK) --lint -f nonl.awk /dev/null >_$@ 2>&1
- -$(CMP) $(srcdir)/nonl.ok _$@ && rm -f _$@
-
-defref::
- @-AWKPATH=$(srcdir) $(AWK) --lint -f defref.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/defref.ok _$@ && rm -f _$@
-
-nofmtch::
- @-AWKPATH=$(srcdir) $(AWK) --lint -f nofmtch.awk >_$@ 2>&1
- -$(CMP) $(srcdir)/nofmtch.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/nonl.ok _$@ && rm -f _$@
strftime::
- : this test could fail on slow machines or on a second boundary,
- : so if it does, double check the actual results
+ @echo This test could fail on slow machines or on a second boundary,
+ @echo so if it does, double check the actual results:
+ @echo $@
@LC_ALL=C; export LC_ALL; LANG=C; export LANG; \
TZ=GMT0; export TZ; \
date | $(AWK) -v OUTPUT=_$@ -f $(srcdir)/strftime.awk
- -$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0
+ @-$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0
litoct::
+ @echo $@
@echo ab | $(AWK) --traditional -f $(srcdir)/litoct.awk >_$@
- -$(CMP) $(srcdir)/litoct.ok _$@ && rm -f _$@
-
-gensub::
- @$(AWK) -f $(srcdir)/gensub.awk $(srcdir)/gensub.in >_$@
- -$(CMP) $(srcdir)/gensub.ok _$@ && rm -f _$@
-
-resplit::
- @echo a:b:c d:e:f | $(AWK) '{ FS = ":"; $$0 = $$0; print $$2 }' > _$@
- -$(CMP) $(srcdir)/resplit.ok _$@ && rm -f _$@
-
-rswhite::
- @$(AWK) -f $(srcdir)/rswhite.awk $(srcdir)/rswhite.in > _$@
- -$(CMP) $(srcdir)/rswhite.ok _$@ && rm -f _$@
-
-prmarscl::
- @-AWKPATH=$(srcdir) $(AWK) -f prmarscl.awk > _$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/prmarscl.ok _$@ && rm -f _$@
-
-sclforin::
- @-AWKPATH=$(srcdir) $(AWK) -f sclforin.awk > _$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/sclforin.ok _$@ && rm -f _$@
-
-sclifin::
- @-AWKPATH=$(srcdir) $(AWK) -f sclifin.awk > _$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/sclifin.ok _$@ && rm -f _$@
-
-intprec::
- @-$(AWK) -f $(srcdir)/intprec.awk > _$@ 2>&1
- -$(CMP) $(srcdir)/intprec.ok _$@ && rm -f _$@
-
-childin::
- @echo hi | $(AWK) 'BEGIN { "cat" | getline; print; close("cat") }' > _$@
- -$(CMP) $(srcdir)/childin.ok _$@ && rm -f _$@
-
-noeffect::
- @-AWKPATH=$(srcdir) $(AWK) --lint -f noeffect.awk > _$@ 2>&1
- -$(CMP) $(srcdir)/noeffect.ok _$@ && rm -f _$@
-
-numsubstr::
- @-AWKPATH=$(srcdir) $(AWK) -f numsubstr.awk $(srcdir)/numsubstr.in >_$@
- -$(CMP) $(srcdir)/numsubstr.ok _$@ && rm -f _$@
-
-gnureops::
- @$(AWK) -f $(srcdir)/gnureops.awk >_$@
- -$(CMP) $(srcdir)/gnureops.ok _$@ && rm -f _$@
-
-pcntplus::
- @$(AWK) -f $(srcdir)/pcntplus.awk >_$@
- -$(CMP) $(srcdir)/pcntplus.ok _$@ && rm -f _$@
-
-prmreuse::
- @$(AWK) -f $(srcdir)/prmreuse.awk >_$@
- -$(CMP) $(srcdir)/prmreuse.ok _$@ && rm -f _$@
-
-math::
- @$(AWK) -f $(srcdir)/math.awk >_$@
- -$(CMP) $(srcdir)/math.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/litoct.ok _$@ && rm -f _$@
fflush::
+ @echo $@
@$(srcdir)/fflush.sh >_$@
- -$(CMP) $(srcdir)/fflush.ok _$@ && rm -f _$@
-
-fldchg::
- @$(AWK) -f $(srcdir)/fldchg.awk $(srcdir)/fldchg.in >_$@
- -$(CMP) $(srcdir)/fldchg.ok _$@ && rm -f _$@
-
-fldchgnf::
- @$(AWK) -f $(srcdir)/fldchgnf.awk $(srcdir)/fldchgnf.in >_$@
- -$(CMP) $(srcdir)/fldchgnf.ok _$@ && rm -f _$@
-
-reindops::
- @$(AWK) -f $(srcdir)/reindops.awk $(srcdir)/reindops.in >_$@
- -$(CMP) $(srcdir)/reindops.ok _$@ && rm -f _$@
-
-sprintfc::
- @$(AWK) -f $(srcdir)/sprintfc.awk $(srcdir)/sprintfc.in >_$@
- -$(CMP) $(srcdir)/sprintfc.ok _$@ && rm -f _$@
-
-getlnhd::
- @$(AWK) -f $(srcdir)/getlnhd.awk >_$@
- -$(CMP) $(srcdir)/getlnhd.ok _$@ && rm -f _$@
-
-backgsub::
- @$(AWK) -f $(srcdir)/backgsub.awk $(srcdir)/backgsub.in >_$@
- -$(CMP) $(srcdir)/backgsub.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/fflush.ok _$@ && rm -f _$@
tweakfld::
+ @echo $@
@$(AWK) -f $(srcdir)/tweakfld.awk $(srcdir)/tweakfld.in >_$@
@rm -f errors.cleanup
- -$(CMP) $(srcdir)/tweakfld.ok _$@ && rm -f _$@
-
-clsflnam::
- @$(AWK) -f $(srcdir)/clsflnam.awk $(srcdir)/clsflnam.in >_$@ 2>&1
- -$(CMP) $(srcdir)/clsflnam.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/tweakfld.ok _$@ && rm -f _$@
mmap8k::
+ @echo $@
@$(AWK) '{ print }' $(srcdir)/mmap8k.in >_$@
- -$(CMP) $(srcdir)/mmap8k.in _$@ && rm -f _$@
-
-fnarray::
- @-AWKPATH=$(srcdir) $(AWK) -f fnarray.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/fnarray.ok _$@ && rm -f _$@
-
-dynlj::
- @$(AWK) -f $(srcdir)/dynlj.awk >_$@
- -$(CMP) $(srcdir)/dynlj.ok _$@ && rm -f _$@
-
-substr::
- @$(AWK) -f $(srcdir)/substr.awk >_$@
- -$(CMP) $(srcdir)/substr.ok _$@ && rm -f _$@
-
-eofsplit::
- @$(AWK) -f $(srcdir)/eofsplit.awk >_$@
- -$(CMP) $(srcdir)/eofsplit.ok _$@ && rm -f _$@
-
-prt1eval::
- @$(AWK) -f $(srcdir)/prt1eval.awk >_$@
- -$(CMP) $(srcdir)/prt1eval.ok _$@ && rm -f _$@
-
-gsubasgn::
- @-AWKPATH=$(srcdir) $(AWK) -f gsubasgn.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/gsubasgn.ok _$@ && rm -f _$@
-
-prtoeval::
- @$(AWK) -f $(srcdir)/prtoeval.awk >_$@
- -$(CMP) $(srcdir)/prtoeval.ok _$@ && rm -f _$@
-
-gsubtest::
- @$(AWK) -f $(srcdir)/gsubtest.awk >_$@
- -$(CMP) $(srcdir)/gsubtest.ok _$@ && rm -f _$@
-
-splitwht::
- @$(AWK) -f $(srcdir)/splitwht.awk >_$@
- -$(CMP) $(srcdir)/splitwht.ok _$@ && rm -f _$@
-
-back89::
- @$(AWK) '/a\8b/' $(srcdir)/back89.in >_$@
- -$(CMP) $(srcdir)/back89.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/mmap8k.in _$@ && rm -f _$@
tradanch::
+ @echo $@
@$(AWK) --traditional -f $(srcdir)/tradanch.awk $(srcdir)/tradanch.in >_$@
- -$(CMP) $(srcdir)/tradanch.ok _$@ && rm -f _$@
-
-nlfldsep::
- @$(AWK) -f $(srcdir)/nlfldsep.awk $(srcdir)/nlfldsep.in > _$@
- -$(CMP) $(srcdir)/nlfldsep.ok _$@ && rm -f _$@
-
-splitvar::
- @$(AWK) -f $(srcdir)/splitvar.awk $(srcdir)/splitvar.in >_$@
- -$(CMP) $(srcdir)/splitvar.ok _$@ && rm -f _$@
-
-intest::
- @$(AWK) -f $(srcdir)/intest.awk >_$@
- -$(CMP) $(srcdir)/intest.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/tradanch.ok _$@ && rm -f _$@
# AIX /bin/sh exec's the last command in a list, therefore issue a ":"
# command so that pid.sh is fork'ed as a child before being exec'ed.
pid::
- @AWKPATH=$(srcdir) AWK=$(AWK) $(SHELL) $(srcdir)/pid.sh $$$$ > _`basename $@` ; :
- -$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` _`basename $@`.in
+ @echo pid
+ @AWKPATH=$(srcdir) AWK=$(AWKPROG) LC_ALL=C $(SHELL) $(srcdir)/pid.sh $$$$ > _`basename $@` ; :
+ @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` _`basename $@`.in
strftlng::
+ @echo $@
@TZ=UTC; export TZ; $(AWK) -f $(srcdir)/strftlng.awk >_$@
@if $(CMP) -s $(srcdir)/strftlng.ok _$@ ; then : ; else \
TZ=UTC0; export TZ; $(AWK) -f $(srcdir)/strftlng.awk >_$@ ; \
fi
- -$(CMP) $(srcdir)/strftlng.ok _$@ && rm -f _$@
-
-nfldstr::
- @echo | $(AWK) '$$1 == 0 { print "bug" }' > _$@
- -$(CMP) $(srcdir)/nfldstr.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/strftlng.ok _$@ && rm -f _$@
nors::
+ @echo $@
@echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - $(srcdir)/nors.in > _$@
- -$(CMP) $(srcdir)/nors.ok _$@ && rm -f _$@
-
-fnarydel::
- @$(AWK) -f $(srcdir)/fnarydel.awk >_$@
- -$(CMP) $(srcdir)/fnarydel.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/nors.ok _$@ && rm -f _$@
reint::
+ @echo $@
@$(AWK) --re-interval -f $(srcdir)/reint.awk $(srcdir)/reint.in >_$@
- -$(CMP) $(srcdir)/reint.ok _$@ && rm -f _$@
-
-noparms::
- @-AWKPATH=$(srcdir) $(AWK) -f noparms.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/noparms.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/reint.ok _$@ && rm -f _$@
pipeio1::
+ @echo $@
@$(AWK) -f $(srcdir)/pipeio1.awk >_$@
@rm -f test1 test2
- -$(CMP) $(srcdir)/pipeio1.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/pipeio1.ok _$@ && rm -f _$@
pipeio2::
+ @echo $@
@$(AWK) -v SRCDIR=$(srcdir) -f $(srcdir)/pipeio2.awk >_$@
- -$(CMP) $(srcdir)/pipeio2.ok _$@ && rm -f _$@
-
-funstack::
- @$(AWK) -f $(srcdir)/funstack.awk $(srcdir)/funstack.in >_$@
- -$(CMP) $(srcdir)/funstack.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/pipeio2.ok _$@ && rm -f _$@
clobber::
+ @echo $@
@$(AWK) -f $(srcdir)/clobber.awk >_$@
- -$(CMP) $(srcdir)/clobber.ok seq && $(CMP) $(srcdir)/clobber.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/clobber.ok seq && $(CMP) $(srcdir)/clobber.ok _$@ && rm -f _$@
@rm -f seq
-delarprm::
- @$(AWK) -f $(srcdir)/delarprm.awk >_$@
- -$(CMP) $(srcdir)/delarprm.ok _$@ && rm -f _$@
-
-prdupval::
- @$(AWK) -f $(srcdir)/prdupval.awk $(srcdir)/prdupval.in >_$@
- -$(CMP) $(srcdir)/prdupval.ok _$@ && rm -f _$@
-
-nondec::
- @if grep BITOP ../config.h | grep define > /dev/null; \
- then \
- $(AWK) -f $(srcdir)/nondec.awk >_$@; \
- else \
- cp $(srcdir)/nondec.ok _$@; \
- fi
- -$(CMP) $(srcdir)/nondec.ok _$@ && rm -f _$@
-
-nasty::
- @$(AWK) -f $(srcdir)/nasty.awk >_$@
- -$(CMP) $(srcdir)/nasty.ok _$@ && rm -f _$@
-
-nasty2::
- @$(AWK) -f $(srcdir)/nasty2.awk >_$@
- -$(CMP) $(srcdir)/nasty2.ok _$@ && rm -f _$@
-
-zeroflag::
- @$(AWK) -f $(srcdir)/zeroflag.awk >_$@
- -$(CMP) $(srcdir)/zeroflag.ok _$@ && rm -f _$@
-
-getnr2tm::
- @$(AWK) -f $(srcdir)/getnr2tm.awk $(srcdir)/getnr2tm.in >_$@
- -$(CMP) $(srcdir)/getnr2tm.ok _$@ && rm -f _$@
-
-getnr2tb::
- @$(AWK) -f $(srcdir)/getnr2tb.awk $(srcdir)/getnr2tb.in >_$@
- -$(CMP) $(srcdir)/getnr2tb.ok _$@ && rm -f _$@
-
-printf1::
- @$(AWK) -f $(srcdir)/printf1.awk >_$@
- -$(CMP) $(srcdir)/printf1.ok _$@ && rm -f _$@
-
-funsmnam::
- @-AWKPATH=$(srcdir) $(AWK) -f funsmnam.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/funsmnam.ok _$@ && rm -f _$@
-
-fnamedat::
- @-AWKPATH=$(srcdir) $(AWK) -f fnamedat.awk < $(srcdir)/fnamedat.in >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/fnamedat.ok _$@ && rm -f _$@
-
-numindex::
- @-AWKPATH=$(srcdir) $(AWK) -f numindex.awk < $(srcdir)/numindex.in >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/numindex.ok _$@ && rm -f _$@
-
-subslash::
- @-AWKPATH=$(srcdir) $(AWK) -f subslash.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/subslash.ok _$@ && rm -f _$@
-
-opasnslf::
- @-AWKPATH=$(srcdir) $(AWK) -f opasnslf.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/opasnslf.ok _$@ && rm -f _$@
-
-opasnidx::
- @-AWKPATH=$(srcdir) $(AWK) -f opasnidx.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/opasnidx.ok _$@ && rm -f _$@
-
arynocls::
+ @echo $@
@-AWKPATH=$(srcdir) $(AWK) -v INPUT=$(srcdir)/arynocls.in -f arynocls.awk >_$@
- -$(CMP) $(srcdir)/arynocls.ok _$@ && rm -f _$@
-
-igncdym::
- @-AWKPATH=$(srcdir) $(AWK) -f igncdym.awk $(srcdir)/igncdym.in >_$@
- -$(CMP) $(srcdir)/igncdym.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/arynocls.ok _$@ && rm -f _$@
getlnbuf::
+ @echo $@
@-AWKPATH=$(srcdir) $(AWK) -f getlnbuf.awk $(srcdir)/getlnbuf.in > _$@
@-AWKPATH=$(srcdir) $(AWK) -f gtlnbufv.awk $(srcdir)/getlnbuf.in > _2$@
- -$(CMP) $(srcdir)/getlnbuf.ok _$@ && $(CMP) $(srcdir)/getlnbuf.ok _2$@ && rm -f _$@ _2$@
-
-arysubnm::
- @-AWKPATH=$(srcdir) $(AWK) -f arysubnm.awk >_$@
- -$(CMP) $(srcdir)/arysubnm.ok _$@ && rm -f _$@
-
-fnparydl::
- @-AWKPATH=$(srcdir) $(AWK) -f fnparydl.awk >_$@
- -$(CMP) $(srcdir)/fnparydl.ok _$@ && rm -f _$@
-
-nlstrina::
- @-AWKPATH=$(srcdir) $(AWK) -f nlstrina.awk >_$@
- -$(CMP) $(srcdir)/nlstrina.ok _$@ && rm -f _$@
-
-octsub::
- @-AWKPATH=$(srcdir) $(AWK) -f octsub.awk >_$@
- -$(CMP) $(srcdir)/octsub.ok _$@ && rm -f _$@
-
-nlinstr::
- @$(AWK) -f $(srcdir)/nlinstr.awk $(srcdir)/nlinstr.in >_$@
- -$(CMP) $(srcdir)/nlinstr.ok _$@ && rm -f _$@
-
-ofmt::
- @$(AWK) -f $(srcdir)/ofmt.awk $(srcdir)/ofmt.in >_$@
- -$(CMP) $(srcdir)/ofmt.ok _$@ && rm -f _$@
-
-hsprint::
- @$(AWK) -f $(srcdir)/hsprint.awk >_$@
- -$(CMP) $(srcdir)/hsprint.ok _$@ && rm -f _$@
-
-fsfwfs::
- @$(AWK) -f $(srcdir)/fsfwfs.awk $(srcdir)/fsfwfs.in >_$@
- -$(CMP) $(srcdir)/fsfwfs.ok _$@ && rm -f _$@
-
-ofmts::
- @$(AWK) -f $(srcdir)/ofmts.awk $(srcdir)/ofmts.in >_$@
- -$(CMP) $(srcdir)/ofmts.ok _$@ && rm -f _$@
-
-parseme::
- @-AWKPATH=$(srcdir) $(AWK) -f parseme.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/parseme.ok _$@ && rm -f _$@
-
-splitdef::
- @$(AWK) -f $(srcdir)/splitdef.awk >_$@
- -$(CMP) $(srcdir)/splitdef.ok _$@ && rm -f _$@
-
-fnaryscl::
- @-AWKPATH=$(srcdir) $(AWK) -f fnaryscl.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/fnaryscl.ok _$@ && rm -f _$@
-
-fnasgnm::
- @-AWKPATH=$(srcdir) $(AWK) -f fnasgnm.awk < $(srcdir)/fnasgnm.in >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/fnasgnm.ok _$@ && rm -f _$@
-
-lint::
- @-AWKPATH=$(srcdir) $(AWK) -f lint.awk > _$@ 2>&1
- -$(CMP) $(srcdir)/lint.ok _$@ && rm -f _$@
-
-procinfs::
- @-$(AWK) -f $(srcdir)/procinfs.awk > _$@
- -$(CMP) $(srcdir)/procinfs.ok _$@ && rm -f _$@
-
-sort1::
- @-$(AWK) -f $(srcdir)/sort1.awk > _$@
- -$(CMP) $(srcdir)/sort1.ok _$@ && rm -f _$@
-
-ofmtbig::
- @$(AWK) -f $(srcdir)/ofmtbig.awk $(srcdir)/ofmtbig.in >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/ofmtbig.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/getlnbuf.ok _$@ && $(CMP) $(srcdir)/getlnbuf.ok _2$@ && rm -f _$@ _2$@
inetmesg::
@echo These tests only work if your system supports the services
- @echo "'discard'" at port 9 and "'daytimed" at port 13. Check your
+ @echo "'discard'" at port 9 and "'daytimed'" at port 13. Check your
@echo file /etc/services and do "'netstat -a'".
inetechu::
@@ -981,116 +731,39 @@ inetdayt::
@$(AWK) 'BEGIN { print "" |& "/inet/tcp/0/127.0.0.1/13"; \
"/inet/tcp/0/127.0.0.1/13" |& getline; print $0}'
-paramtyp::
- @$(AWK) -f $(srcdir)/paramtyp.awk >_$@
- -$(CMP) $(srcdir)/paramtyp.ok _$@ && rm -f _$@
-
-rsnul1nl::
- @$(AWK) -f $(srcdir)/rsnul1nl.awk $(srcdir)/rsnul1nl.in >_$@
- -$(CMP) $(srcdir)/rsnul1nl.ok _$@ && rm -f _$@
-
-datanonl::
- @$(AWK) -f $(srcdir)/datanonl.awk $(srcdir)/datanonl.in >_$@
- -$(CMP) $(srcdir)/datanonl.ok _$@ && rm -f _$@
-
-regeq::
- @$(AWK) -f $(srcdir)/regeq.awk $(srcdir)/regeq.in >_$@
- -$(CMP) $(srcdir)/regeq.ok _$@ && rm -f _$@
-
redfilnm::
+ @echo $@
@$(AWK) -f $(srcdir)/redfilnm.awk srcdir=$(srcdir) $(srcdir)/redfilnm.in >_$@
- -$(CMP) $(srcdir)/redfilnm.ok _$@ && rm -f _$@
-
-strtod::
- @$(AWK) -f $(srcdir)/strtod.awk $(srcdir)/strtod.in >_$@
- -$(CMP) $(srcdir)/strtod.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/redfilnm.ok _$@ && rm -f _$@
leaddig::
+ @echo $@
@$(AWK) -v x=2E -f $(srcdir)/leaddig.awk >_$@
- -$(CMP) $(srcdir)/leaddig.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/leaddig.ok _$@ && rm -f _$@
-clos1way::
- @$(AWK) -f $(srcdir)/clos1way.awk >_$@
- -$(CMP) $(srcdir)/clos1way.ok _$@ && rm -f _$@
+gsubtst3::
+ @echo $@
+ @$(AWK) --re-interval -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
-arynasty::
- @$(AWK) -f $(srcdir)/arynasty.awk >_$@
- -$(CMP) $(srcdir)/arynasty.ok _$@ && rm -f _$@
+space::
+ @echo $@
+ @$(AWK) -f ' ' $(srcdir)/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
-shadow::
- @-AWKPATH=$(srcdir) $(AWK) --lint -f shadow.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/shadow.ok _$@ && rm -f _$@
+printf0::
+ @echo $@
+ @$(AWK) --posix -f $(srcdir)/$@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
-regx8bit::
- @$(AWK) -f $(srcdir)/regx8bit.awk >_$@
- -$(CMP) $(srcdir)/regx8bit.ok _$@ && rm -f _$@
+# Targets generated for other tests:
+include Maketests
-psx96sub::
- @$(AWK) -f $(srcdir)/psx96sub.awk >_$@
- -$(CMP) $(srcdir)/psx96sub.ok _$@ && rm -f _$@
-
-addcomma::
- @$(AWK) -f $(srcdir)/addcomma.awk $(srcdir)/addcomma.in >_$@
- -$(CMP) $(srcdir)/addcomma.ok _$@ && rm -f _$@
-
-gnuops2::
- @$(AWK) -f $(srcdir)/gnuops2.awk >_$@
- -$(CMP) $(srcdir)/gnuops2.ok _$@ && rm -f _$@
-
-rebt8b1::
- @$(AWK) -f $(srcdir)/rebt8b1.awk >_$@
- -$(CMP) $(srcdir)/rebt8b1.ok _$@ && rm -f _$@
-
-rebt8b2::
- @$(AWK) -f $(srcdir)/rebt8b2.awk >_$@
- -$(CMP) $(srcdir)/rebt8b2.ok _$@ && rm -f _$@
-
-leadnl::
- @$(AWK) -f $(srcdir)/leadnl.awk $(srcdir)/leadnl.in >_$@
- -$(CMP) $(srcdir)/leadnl.ok _$@ && rm -f _$@
-
-funsemnl::
- @$(AWK) -f $(srcdir)/funsemnl.awk >_$@
- -$(CMP) $(srcdir)/funsemnl.ok _$@ && rm -f _$@
-
-ofmtfidl::
- @$(AWK) -f $(srcdir)/ofmtfidl.awk $(srcdir)/ofmtfidl.in >_$@
- -$(CMP) $(srcdir)/ofmtfidl.ok _$@ && rm -f _$@
-
-onlynl::
- @$(AWK) -f $(srcdir)/onlynl.awk $(srcdir)/onlynl.in >_$@
- -$(CMP) $(srcdir)/onlynl.ok _$@ && rm -f _$@
-
-arrymem1::
- @$(AWK) -f $(srcdir)/arrymem1.awk >_$@
- -$(CMP) $(srcdir)/arrymem1.ok _$@ && rm -f _$@
-
-compare2::
- @$(AWK) -f $(srcdir)/compare2.awk >_$@
- -$(CMP) $(srcdir)/compare2.ok _$@ && rm -f _$@
-
-minusstr::
- @$(AWK) -f $(srcdir)/minusstr.awk >_$@
- -$(CMP) $(srcdir)/minusstr.ok _$@ && rm -f _$@
-
-membug1::
- @$(AWK) -f $(srcdir)/membug1.awk $(srcdir)/membug1.in >_$@
- -$(CMP) $(srcdir)/membug1.ok _$@ && rm -f _$@
-
-forsimp::
- @$(AWK) -f $(srcdir)/forsimp.awk >_$@
- -$(CMP) $(srcdir)/forsimp.ok _$@ && rm -f _$@
-
-concat1::
- @$(AWK) -f $(srcdir)/concat1.awk $(srcdir)/concat1.in >_$@
- -$(CMP) $(srcdir)/concat1.ok _$@ && rm -f _$@
-
-longsub::
- @$(AWK) -f $(srcdir)/longsub.awk $(srcdir)/longsub.in >_$@
- -$(CMP) $(srcdir)/longsub.ok _$@ && rm -f _$@
+$(srcdir)/Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests
+ $(AWK) -f $(srcdir)/Gentests "$<" *.awk *.in > $(srcdir)/Maketests
clean:
- rm -fr _* core junk out1 out2 out3 strftime.ok test1 test2 seq *~
+ rm -fr _* core core.* junk out1 out2 out3 strftime.ok test1 test2 seq *~
# An attempt to print something that can be grepped for in build logs
pass-fail:
@@ -1107,3 +780,15 @@ diffout:
echo ============== $$i ============= ; \
diff -c $${i#_}.ok $$i ; \
done | more
+
+# This target is for testing with electric fence.
+efence:
+ for i in $$(ls _* | sed 's;_\(.*\);\1;') ; \
+ do \
+ bad=$$(wc -l < _$$i) \
+ ok=$$(wc -l < $$i.ok) ; \
+ if (( $$bad == $$ok + 2 )) ; \
+ then \
+ rm _$$i ; \
+ fi ; \
+ done
diff --git a/test/Makefile.in b/test/Makefile.in
index a05e0e45..135f689e 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.5 from Makefile.am.
+# Makefile.in generated by automake 1.7.3 from Makefile.am.
+# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -16,7 +17,7 @@
#
# test/Makefile.am --- automake input file for gawk
#
-# Copyright (C) 1988-2002 the Free Software Foundation, Inc.
+# Copyright (C) 1988-2003 the Free Software Foundation, Inc.
#
# This file is part of GAWK, the GNU implementation of the
# AWK Programming Language.
@@ -36,98 +37,139 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
#
-SHELL = @SHELL@
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
+transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-host_alias = @host_alias@
host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = LC_ALL=C $(AWKPROG)
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
+CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMSGFMT = @GMSGFMT@
-HAVE_LIB = @HAVE_LIB@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
-LIB = @LIB@
+LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
LN_S = @LN_S@
-LTLIB = @LTLIB@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
POSUB = @POSUB@
RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
SOCKET_LIBS = @SOCKET_LIBS@
+STRIP = @STRIP@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
YACC = @YACC@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
install_sh = @install_sh@
-AWK = ../gawk
-
-# Special stuff for OS/2
-PATH_SEPARATOR = @PATH_SEPARATOR@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
EXTRA_DIST = \
reg \
lib \
+ Gentests \
+ Maketests \
README \
addcomma.awk \
addcomma.in \
@@ -156,13 +198,20 @@ EXTRA_DIST = \
asgext.awk \
asgext.in \
asgext.ok \
+ asort.awk \
+ asort.ok \
+ asorti.awk \
+ asorti.ok \
awkpath.ok \
+ back89.awk \
back89.in \
back89.ok \
backgsub.awk \
backgsub.in \
backgsub.ok \
badargs.ok \
+ childin.awk \
+ childin.in \
childin.ok \
clobber.awk \
clobber.ok \
@@ -194,6 +243,8 @@ EXTRA_DIST = \
eofsplit.ok \
fflush.ok \
fflush.sh \
+ fieldwdth.awk \
+ fieldwdth.in \
fieldwdth.ok \
fldchg.awk \
fldchg.in \
@@ -213,10 +264,13 @@ EXTRA_DIST = \
fnasgnm.awk \
fnasgnm.in \
fnasgnm.ok \
+ fnmisc.awk \
+ fnmisc.ok \
fnparydl.awk \
fnparydl.ok \
forsimp.awk \
forsimp.ok \
+ fsbs.awk \
fsbs.in \
fsbs.ok \
fsfwfs.awk \
@@ -226,6 +280,7 @@ EXTRA_DIST = \
fsrs.in \
fsrs.ok \
fstabplus.awk \
+ fstabplus.in \
fstabplus.ok \
funsemnl.awk \
funsemnl.ok \
@@ -238,7 +293,12 @@ EXTRA_DIST = \
gensub.in \
gensub.ok \
getline.awk \
+ getline.in \
getline.ok \
+ getline2.awk \
+ getline2.ok \
+ getline3.awk \
+ getline3.ok \
getlnbuf.awk \
getlnbuf.in \
getlnbuf.ok \
@@ -258,18 +318,34 @@ EXTRA_DIST = \
gsubasgn.ok \
gsubtest.awk \
gsubtest.ok \
+ gsubtst2.awk \
+ gsubtst2.ok \
+ gsubtst3.awk \
+ gsubtst3.in \
+ gsubtst3.ok \
+ gsubtst4.awk \
+ gsubtst4.ok \
gtlnbufv.awk \
hsprint.awk \
hsprint.ok \
+ icasefs.awk \
+ icasefs.ok \
+ icasers.awk \
+ icasers.in \
+ icasers.ok \
igncdym.awk \
igncdym.in \
igncdym.ok \
igncfs.awk \
igncfs.in \
igncfs.ok \
+ ignrcase.awk \
+ ignrcase.in \
ignrcase.ok \
inftest.awk \
inftest.ok \
+ inputred.awk \
+ inputred.ok \
intest.awk \
intest.ok \
intprec.awk \
@@ -288,8 +364,11 @@ EXTRA_DIST = \
longsub.ok \
longwrds.awk \
longwrds.ok \
- manpage \
+ longwrds.in \
manyfiles.awk \
+ manyfiles.ok \
+ match1.awk \
+ match1.ok \
math.awk \
math.ok \
membug1.awk \
@@ -303,8 +382,13 @@ EXTRA_DIST = \
nasty.ok \
nasty2.awk \
nasty2.ok \
+ negexp.awk \
negexp.ok \
+ nfldstr.awk \
+ nfldstr.in \
nfldstr.ok \
+ nfneg.awk \
+ nfneg.ok \
nfset.awk \
nfset.in \
nfset.ok \
@@ -320,6 +404,12 @@ EXTRA_DIST = \
noeffect.ok \
nofmtch.awk \
nofmtch.ok \
+ noloop1.awk \
+ noloop1.in \
+ noloop1.ok \
+ noloop2.awk \
+ noloop2.in \
+ noloop2.ok \
nondec.awk \
nondec.ok \
nonl.awk \
@@ -328,6 +418,9 @@ EXTRA_DIST = \
noparms.ok \
nors.in \
nors.ok \
+ nulrsend.awk \
+ nulrsend.in \
+ nulrsend.ok \
numindex.awk \
numindex.in \
numindex.ok \
@@ -375,12 +468,16 @@ EXTRA_DIST = \
pipeio2.in \
pipeio2.ok \
posix.awk \
+ posix.in \
posix.ok \
poundbang.awk \
- poundbang.ok \
prdupval.awk \
prdupval.in \
prdupval.ok \
+ prec.awk \
+ prec.ok \
+ printf0.awk \
+ printf0.ok \
printf1.awk \
printf1.ok \
printfloat.awk \
@@ -411,6 +508,9 @@ EXTRA_DIST = \
regtest.sh \
regx8bit.awk \
regx8bit.ok \
+ rebuf.awk \
+ rebuf.in \
+ rebuf.ok \
reindops.awk \
reindops.in \
reindops.ok \
@@ -420,12 +520,19 @@ EXTRA_DIST = \
reparse.awk \
reparse.in \
reparse.ok \
+ resplit.awk \
+ resplit.in \
resplit.ok \
+ rs.awk \
rs.in \
rs.ok \
rsnul1nl.awk \
rsnul1nl.in \
rsnul1nl.ok \
+ rstest1.awk \
+ rstest1.ok \
+ rstest2.awk \
+ rstest2.ok \
rswhite.awk \
rswhite.in \
rswhite.ok \
@@ -437,9 +544,12 @@ EXTRA_DIST = \
shadow.ok \
sort1.awk \
sort1.ok \
+ space.ok \
splitargv.awk \
splitargv.in \
splitargv.ok \
+ splitarr.awk \
+ splitarr.ok \
splitdef.awk \
splitdef.ok \
splitvar.awk \
@@ -463,37 +573,85 @@ EXTRA_DIST = \
swaplns.awk \
swaplns.in \
swaplns.ok \
+ synerr1.awk \
+ synerr1.ok \
tradanch.awk \
tradanch.in \
tradanch.ok \
tweakfld.awk \
tweakfld.in \
tweakfld.ok \
+ uninitialized.awk \
+ uninitialized.ok \
+ uninit2.awk \
+ uninit2.ok \
+ zeroe0.awk \
+ zeroe0.ok \
zeroflag.awk \
zeroflag.ok
+# try to keep these sorted
+BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayref arrymem1 arynasty \
+ arynocls arysubnm asgext awkpath back89 backgsub childin clobber \
+ clsflnam compare compare2 concat1 convfmt datanonl defref delarprm \
+ dynlj eofsplit fldchg fldchgnf fnamedat fnarray fnarydel fnaryscl \
+ fnasgnm fnmisc fnparydl forsimp fsbs fsrs fstabplus funsemnl funsmnam \
+ funstack getline getline2 getline3 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \
+ gsubtst2 gsubtst3 gsubtst4 hsprint inputred intest intprec leaddig leadnl \
+ litoct longsub longwrds math membug1 messages minusstr mmap8k \
+ nasty nasty2 negexp nfldstr nfneg nfset nlfldsep nlinstr nlstrina \
+ noeffect nofmtch noloop1 noloop2 nonl noparms nors nulrsend \
+ numindex numsubstr octsub ofmt ofmtbig ofmtfidl ofmts onlynl \
+ opasnidx opasnslf paramdup paramtyp parseme pcntplus prdupval prec \
+ printf0 printf1 prmarscl prmreuse prt1eval prtoeval psx96sub rand rebt8b1 \
+ rebt8b2 redfilnm regeq reindops reparse resplit rs rsnul1nl \
+ rstest1 rstest2 rswhite sclforin sclifin splitargv splitarr splitdef \
+ splitvar splitwht sprintfc strtod subslash substr swaplns synerr1 \
+ tradanch tweakfld uninitialized uninit2 zeroe0 zeroflag
+
+
+UNIX_TESTS = fflush getlnhd pid pipeio1 pipeio2 poundbang space strftlng
+
+GAWK_EXT_TESTS = argtest asort asorti badargs clos1way fieldwdth fsfwfs \
+ gensub gnuops2 gnureops icasefs icasers igncdym igncfs ignrcase lint \
+ match1 manyfiles nondec posix procinfs regx8bit rebuf reint shadow \
+ sort1 strftime
+
+
+EXTRA_TESTS = regtest inftest
+
+INET_TESTS = inetechu inetecht inetdayu inetdayt
+
+# List of the tests which should be run with --lint option:
+NEED_LINT = defref noeffect nofmtch shadow uninitialized uninit2
+
+# List of the files that appear in manual tests or are for reserve testing:
+GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk
+
CMP = cmp
+AWKPROG = ../gawk$(EXEEXT)
subdir = test
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
-DIST_COMMON = README ChangeLog Makefile.am Makefile.in
+DIST_COMMON = README $(srcdir)/Maketests ChangeLog Makefile.am \
+ Makefile.in
all: all-am
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: Makefile.am $(srcdir)/Maketests $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu test/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && \
- CONFIG_HEADERS= CONFIG_LINKS= \
- CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
uninstall-info-am:
tags: TAGS
TAGS:
+ctags: CTAGS
+CTAGS:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -501,15 +659,26 @@ top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- $(mkinstalldirs) "$(distdir)/$$dir"; \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
fi; \
if test -d $$d/$$file; then \
- cp -pR $$d/$$file $(distdir) \
- || exit 1; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
@@ -533,6 +702,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -540,7 +710,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -579,6 +749,14 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
@@ -587,44 +765,31 @@ uninstall-am: uninstall-info-am
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic uninstall uninstall-am uninstall-info-am
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
-# message stuff is to make it a little easier to follow
+# Message stuff is to make it a little easier to follow.
+# Make the pass-fail last and dependent on others to avoid
+# spurious errors if `make -j' in effect.
check: msg \
basic-msg-start basic basic-msg-end \
unix-msg-start unix-tests unix-msg-end \
- extend-msg-start gawk-extensions extend-msg-end \
- pass-fail
+ extend-msg-start gawk-extensions extend-msg-end
+ @$(MAKE) pass-fail
-# try to keep these sorted
-basic: addcomma anchgsub argarray arrayparm arrayref arynasty arynocls \
- arysubnm arrymem1 asgext awkpath back89 backgsub childin clobber \
- clsflnam compare compare2 concat1 convfmt datanonl defref delarprm dynlj eofsplit \
- fldchg fldchgnf fnamedat fnarray fnarydel fnaryscl fnasgnm \
- fnparydl forsimp fsbs fsrs fstabplus funsemnl funsmnam funstack getline \
- getlnbuf getnr2tb getnr2tm gsubasgn gsubtest hsprint intest \
- intprec leaddig leadnl litoct longsub longwrds math membug1 messages minusstr \
- mmap8k nasty nasty2 negexp nfldstr nfset nlfldsep nlinstr nlstrina \
- noeffect nofmtch nonl noparms nors numindex numsubstr octsub \
- ofmt ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup paramtyp \
- parseme pcntplus prdupval printf1 prmarscl prmreuse prt1eval \
- prtoeval psx96sub rand rebt8b1 rebt8b2 redfilnm regeq reindops \
- reparse resplit rs rsnul1nl rswhite sclforin sclifin splitargv \
- splitdef splitvar splitwht sprintfc strtod subslash substr \
- swaplns tradanch tweakfld zeroflag
-
-unix-tests: fflush getlnhd pid pipeio1 pipeio2 poundbang strftlng
-
-gawk-extensions: argtest badargs clos1way fieldwdth fsfwfs gensub \
- gnuops2 gnureops igncdym igncfs ignrcase lint manyfiles nondec \
- posix procinfs regx8bit reint shadow sort1 strftime
-
-extra: regtest inftest inet
-
-inet: inetmesg inetechu inetecht inetdayu inetdayt
+basic: $(BASIC_TESTS)
+
+unix-tests: $(UNIX_TESTS)
+
+gawk-extensions: $(GAWK_EXT_TESTS)
+
+extra: $(EXTRA_TESTS) inet
+
+inet: inetmesg $(INET_TESTS)
msg::
+ @echo ''
@echo 'Any output from "cmp" is bad news, although some differences'
@echo 'in floating point values are probably benign -- in particular,'
@echo 'some systems may omit a leading zero and the floating point'
@@ -649,57 +814,40 @@ extend-msg-end:
@echo "======== Done with gawk extension tests ========"
# This test is a PITA because increasingly, /tmp is getting
-# mounted noexec. So, we'll test it. Sigh.
+# mounted noexec. So, we'll test it locally. Sigh.
+#
+# More PITA; some systems have medium short limits on #! paths,
+# so this can still fail
poundbang::
- @cp $(AWK) /tmp/gawk
- @if /tmp/gawk 'BEGIN { print "OK" }' | grep OK > /dev/null ; \
- then \
- $(srcdir)/poundbang.awk $(srcdir)/poundbang.awk >_`basename $@` ; \
- $(CMP) $(srcdir)/poundbang.ok _`basename $@` && rm -f _`basename $@` && echo poundbang is ok ; \
+ @echo $@
+ @sed "s;/tmp/gawk;`pwd`/$(AWKPROG);" < $(srcdir)/poundbang.awk > ./_pbd.awk
+ @chmod +x ./_pbd.awk
+ @if ./_pbd.awk $(srcdir)/poundbang.awk > _`basename $@` ; \
+ then : ; \
else \
- echo "*** /tmp is apparently mounted noexec, skipping poundbang test." ; \
+ sed "s;/tmp/gawk;../$(AWKPROG);" < $(srcdir)/poundbang.awk > ./_pbd.awk ; \
+ chmod +x ./_pbd.awk ; \
+ ./_pbd.awk $(srcdir)/poundbang.awk > _`basename $@`; \
fi
- @rm -f /tmp/gawk
-
-swaplns::
- @$(AWK) -f $(srcdir)/swaplns.awk $(srcdir)/swaplns.in >_$@
- -$(CMP) $(srcdir)/swaplns.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/poundbang.awk _`basename $@` && rm -f _`basename $@` _pbd.awk
messages::
+ @echo $@
@$(AWK) -f $(srcdir)/messages.awk >out2 2>out3
- -$(CMP) $(srcdir)/out1.ok out1 && $(CMP) $(srcdir)/out2.ok out2 && $(CMP) $(srcdir)/out3.ok out3 && rm -f out1 out2 out3
+ @-$(CMP) $(srcdir)/out1.ok out1 && $(CMP) $(srcdir)/out2.ok out2 && $(CMP) $(srcdir)/out3.ok out3 && rm -f out1 out2 out3
argarray::
+ @echo $@
@case $(srcdir) in \
.) : ;; \
*) cp $(srcdir)/argarray.in . ;; \
esac
@TEST=test echo just a test | $(AWK) -f $(srcdir)/argarray.awk ./argarray.in - >_$@
- -$(CMP) $(srcdir)/argarray.ok _$@ && rm -f _$@
-
-fstabplus::
- @echo '1 2' | $(AWK) -f $(srcdir)/fstabplus.awk >_$@
- -$(CMP) $(srcdir)/fstabplus.ok _$@ && rm -f _$@
-
-fsrs::
- @$(AWK) -f $(srcdir)/fsrs.awk $(srcdir)/fsrs.in >_$@
- -$(CMP) $(srcdir)/fsrs.ok _$@ && rm -f _$@
-
-igncfs::
- @$(AWK) -f $(srcdir)/igncfs.awk $(srcdir)/igncfs.in >_$@
- -$(CMP) $(srcdir)/igncfs.ok _$@ && rm -f _$@
-
-longwrds::
- @$(AWK) -f $(srcdir)/longwrds.awk $(srcdir)/manpage | (LC_ALL=C sort) >_$@
- -$(CMP) $(srcdir)/longwrds.ok _$@ && rm -f _$@
-
-fieldwdth::
- @echo '123456789' | $(AWK) -v FIELDWIDTHS="2 3 4" '{ print $$2}' >_$@
- -$(CMP) $(srcdir)/fieldwdth.ok _$@ && rm -f _$@
-
-ignrcase::
- @echo xYz | $(AWK) -v IGNORECASE=1 '{ sub(/y/, ""); print}' >_$@
- -$(CMP) $(srcdir)/ignrcase.ok _$@ && rm -f _$@
+ @case $(srcdir) in \
+ .) : ;; \
+ *) rm -f ./argarray.in ;; \
+ esac
+ @-$(CMP) $(srcdir)/argarray.ok _$@ && rm -f _$@
regtest::
@echo 'Some of the output from regtest is very system specific, do not'
@@ -707,473 +855,142 @@ regtest::
@echo 'Manual inspection is called for.'
AWK=`pwd`/$(AWK) $(srcdir)/regtest.sh
-posix::
- @echo '1:2,3 4' | $(AWK) -f $(srcdir)/posix.awk >_$@
- -$(CMP) $(srcdir)/posix.ok _$@ && rm -f _$@
-
manyfiles::
+ @echo manyfiles
@rm -rf junk
@mkdir junk
@$(AWK) 'BEGIN { for (i = 1; i <= 300; i++) print i, i}' >_$@
@$(AWK) -f $(srcdir)/manyfiles.awk _$@ _$@
- @echo "This number better be 1 ->" | tr -d '\012\015'
- @wc -l junk/* | $(AWK) '$$1 != 2' | wc -l
- @rm -rf junk _$@
+ @wc -l junk/* | $(AWK) '$$1 != 2' | wc -l | sed 's/ *//g' > _$@
+ @rm -rf junk ; $(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
compare::
+ @echo $@
@$(AWK) -f $(srcdir)/compare.awk 0 1 $(srcdir)/compare.in >_$@
- -$(CMP) $(srcdir)/compare.ok _$@ && rm -f _$@
-
-arrayref::
- @$(AWK) -f $(srcdir)/arrayref.awk >_$@
- -$(CMP) $(srcdir)/arrayref.ok _$@ && rm -f _$@
-
-rs::
- @$(AWK) -v RS="" '{ print $$1, $$2}' $(srcdir)/rs.in >_$@
- -$(CMP) $(srcdir)/rs.ok _$@ && rm -f _$@
-
-fsbs::
- @$(AWK) -v FS='\' '{ print $$1, $$2 }' $(srcdir)/fsbs.in >_$@
- -$(CMP) $(srcdir)/fsbs.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/compare.ok _$@ && rm -f _$@
inftest::
+ @echo $@
@echo This test is very machine specific...
@$(AWK) -f $(srcdir)/inftest.awk | sed 's/inf/Inf/g' >_$@
- -$(CMP) $(srcdir)/inftest.ok _$@ && rm -f _$@
-
-getline::
- @$(AWK) -f $(srcdir)/getline.awk $(srcdir)/getline.awk $(srcdir)/getline.awk >_$@
- -$(CMP) $(srcdir)/getline.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/inftest.ok _$@ && rm -f _$@
-rand::
- @$(AWK) -f $(srcdir)/rand.awk >_$@
- -$(CMP) $(srcdir)/rand.ok _$@ && rm -f _$@
-
-negexp::
- @$(AWK) 'BEGIN { a = -2; print 10^a }' >_$@
- -$(CMP) $(srcdir)/negexp.ok _$@ && rm -f _$@
-
-asgext::
- @$(AWK) -f $(srcdir)/asgext.awk $(srcdir)/asgext.in >_$@
- -$(CMP) $(srcdir)/asgext.ok _$@ && rm -f _$@
-
-anchgsub::
- @$(AWK) -f $(srcdir)/anchgsub.awk $(srcdir)/anchgsub.in >_$@
- -$(CMP) $(srcdir)/anchgsub.ok _$@ && rm -f _$@
-
-splitargv::
- @$(AWK) -f $(srcdir)/splitargv.awk $(srcdir)/splitargv.in >_$@
- -$(CMP) $(srcdir)/splitargv.ok _$@ && rm -f _$@
+getline2::
+ @echo $@
+ @$(AWK) -f $(srcdir)/getline2.awk $(srcdir)/getline2.awk $(srcdir)/getline2.awk >_$@
+ @-$(CMP) $(srcdir)/getline2.ok _$@ && rm -f _$@
awkpath::
+ @echo $@
@AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f awkpath.awk >_$@
- -$(CMP) $(srcdir)/awkpath.ok _$@ && rm -f _$@
-
-nfset::
- @$(AWK) -f $(srcdir)/nfset.awk $(srcdir)/nfset.in >_$@
- -$(CMP) $(srcdir)/nfset.ok _$@ && rm -f _$@
-
-reparse::
- @$(AWK) -f $(srcdir)/reparse.awk $(srcdir)/reparse.in >_$@
- -$(CMP) $(srcdir)/reparse.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/awkpath.ok _$@ && rm -f _$@
argtest::
+ @echo $@
@$(AWK) -f $(srcdir)/argtest.awk -x -y abc >_$@
- -$(CMP) $(srcdir)/argtest.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/argtest.ok _$@ && rm -f _$@
badargs::
+ @echo $@
@-$(AWK) -f 2>&1 | grep -v patchlevel >_$@
- -$(CMP) $(srcdir)/badargs.ok _$@ && rm -f _$@
-
-convfmt::
- @$(AWK) -f $(srcdir)/convfmt.awk >_$@
- -$(CMP) $(srcdir)/convfmt.ok _$@ && rm -f _$@
-
-arrayparm::
- @-AWKPATH=$(srcdir) $(AWK) -f arrayparm.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/arrayparm.ok _$@ && rm -f _$@
-
-paramdup::
- @-AWKPATH=$(srcdir) $(AWK) -f paramdup.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/paramdup.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/badargs.ok _$@ && rm -f _$@
nonl::
+ @echo $@
@-AWKPATH=$(srcdir) $(AWK) --lint -f nonl.awk /dev/null >_$@ 2>&1
- -$(CMP) $(srcdir)/nonl.ok _$@ && rm -f _$@
-
-defref::
- @-AWKPATH=$(srcdir) $(AWK) --lint -f defref.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/defref.ok _$@ && rm -f _$@
-
-nofmtch::
- @-AWKPATH=$(srcdir) $(AWK) --lint -f nofmtch.awk >_$@ 2>&1
- -$(CMP) $(srcdir)/nofmtch.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/nonl.ok _$@ && rm -f _$@
strftime::
- : this test could fail on slow machines or on a second boundary,
- : so if it does, double check the actual results
+ @echo This test could fail on slow machines or on a second boundary,
+ @echo so if it does, double check the actual results:
+ @echo $@
@LC_ALL=C; export LC_ALL; LANG=C; export LANG; \
TZ=GMT0; export TZ; \
date | $(AWK) -v OUTPUT=_$@ -f $(srcdir)/strftime.awk
- -$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0
+ @-$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0
litoct::
+ @echo $@
@echo ab | $(AWK) --traditional -f $(srcdir)/litoct.awk >_$@
- -$(CMP) $(srcdir)/litoct.ok _$@ && rm -f _$@
-
-gensub::
- @$(AWK) -f $(srcdir)/gensub.awk $(srcdir)/gensub.in >_$@
- -$(CMP) $(srcdir)/gensub.ok _$@ && rm -f _$@
-
-resplit::
- @echo a:b:c d:e:f | $(AWK) '{ FS = ":"; $$0 = $$0; print $$2 }' > _$@
- -$(CMP) $(srcdir)/resplit.ok _$@ && rm -f _$@
-
-rswhite::
- @$(AWK) -f $(srcdir)/rswhite.awk $(srcdir)/rswhite.in > _$@
- -$(CMP) $(srcdir)/rswhite.ok _$@ && rm -f _$@
-
-prmarscl::
- @-AWKPATH=$(srcdir) $(AWK) -f prmarscl.awk > _$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/prmarscl.ok _$@ && rm -f _$@
-
-sclforin::
- @-AWKPATH=$(srcdir) $(AWK) -f sclforin.awk > _$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/sclforin.ok _$@ && rm -f _$@
-
-sclifin::
- @-AWKPATH=$(srcdir) $(AWK) -f sclifin.awk > _$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/sclifin.ok _$@ && rm -f _$@
-
-intprec::
- @-$(AWK) -f $(srcdir)/intprec.awk > _$@ 2>&1
- -$(CMP) $(srcdir)/intprec.ok _$@ && rm -f _$@
-
-childin::
- @echo hi | $(AWK) 'BEGIN { "cat" | getline; print; close("cat") }' > _$@
- -$(CMP) $(srcdir)/childin.ok _$@ && rm -f _$@
-
-noeffect::
- @-AWKPATH=$(srcdir) $(AWK) --lint -f noeffect.awk > _$@ 2>&1
- -$(CMP) $(srcdir)/noeffect.ok _$@ && rm -f _$@
-
-numsubstr::
- @-AWKPATH=$(srcdir) $(AWK) -f numsubstr.awk $(srcdir)/numsubstr.in >_$@
- -$(CMP) $(srcdir)/numsubstr.ok _$@ && rm -f _$@
-
-gnureops::
- @$(AWK) -f $(srcdir)/gnureops.awk >_$@
- -$(CMP) $(srcdir)/gnureops.ok _$@ && rm -f _$@
-
-pcntplus::
- @$(AWK) -f $(srcdir)/pcntplus.awk >_$@
- -$(CMP) $(srcdir)/pcntplus.ok _$@ && rm -f _$@
-
-prmreuse::
- @$(AWK) -f $(srcdir)/prmreuse.awk >_$@
- -$(CMP) $(srcdir)/prmreuse.ok _$@ && rm -f _$@
-
-math::
- @$(AWK) -f $(srcdir)/math.awk >_$@
- -$(CMP) $(srcdir)/math.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/litoct.ok _$@ && rm -f _$@
fflush::
+ @echo $@
@$(srcdir)/fflush.sh >_$@
- -$(CMP) $(srcdir)/fflush.ok _$@ && rm -f _$@
-
-fldchg::
- @$(AWK) -f $(srcdir)/fldchg.awk $(srcdir)/fldchg.in >_$@
- -$(CMP) $(srcdir)/fldchg.ok _$@ && rm -f _$@
-
-fldchgnf::
- @$(AWK) -f $(srcdir)/fldchgnf.awk $(srcdir)/fldchgnf.in >_$@
- -$(CMP) $(srcdir)/fldchgnf.ok _$@ && rm -f _$@
-
-reindops::
- @$(AWK) -f $(srcdir)/reindops.awk $(srcdir)/reindops.in >_$@
- -$(CMP) $(srcdir)/reindops.ok _$@ && rm -f _$@
-
-sprintfc::
- @$(AWK) -f $(srcdir)/sprintfc.awk $(srcdir)/sprintfc.in >_$@
- -$(CMP) $(srcdir)/sprintfc.ok _$@ && rm -f _$@
-
-getlnhd::
- @$(AWK) -f $(srcdir)/getlnhd.awk >_$@
- -$(CMP) $(srcdir)/getlnhd.ok _$@ && rm -f _$@
-
-backgsub::
- @$(AWK) -f $(srcdir)/backgsub.awk $(srcdir)/backgsub.in >_$@
- -$(CMP) $(srcdir)/backgsub.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/fflush.ok _$@ && rm -f _$@
tweakfld::
+ @echo $@
@$(AWK) -f $(srcdir)/tweakfld.awk $(srcdir)/tweakfld.in >_$@
@rm -f errors.cleanup
- -$(CMP) $(srcdir)/tweakfld.ok _$@ && rm -f _$@
-
-clsflnam::
- @$(AWK) -f $(srcdir)/clsflnam.awk $(srcdir)/clsflnam.in >_$@ 2>&1
- -$(CMP) $(srcdir)/clsflnam.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/tweakfld.ok _$@ && rm -f _$@
mmap8k::
+ @echo $@
@$(AWK) '{ print }' $(srcdir)/mmap8k.in >_$@
- -$(CMP) $(srcdir)/mmap8k.in _$@ && rm -f _$@
-
-fnarray::
- @-AWKPATH=$(srcdir) $(AWK) -f fnarray.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/fnarray.ok _$@ && rm -f _$@
-
-dynlj::
- @$(AWK) -f $(srcdir)/dynlj.awk >_$@
- -$(CMP) $(srcdir)/dynlj.ok _$@ && rm -f _$@
-
-substr::
- @$(AWK) -f $(srcdir)/substr.awk >_$@
- -$(CMP) $(srcdir)/substr.ok _$@ && rm -f _$@
-
-eofsplit::
- @$(AWK) -f $(srcdir)/eofsplit.awk >_$@
- -$(CMP) $(srcdir)/eofsplit.ok _$@ && rm -f _$@
-
-prt1eval::
- @$(AWK) -f $(srcdir)/prt1eval.awk >_$@
- -$(CMP) $(srcdir)/prt1eval.ok _$@ && rm -f _$@
-
-gsubasgn::
- @-AWKPATH=$(srcdir) $(AWK) -f gsubasgn.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/gsubasgn.ok _$@ && rm -f _$@
-
-prtoeval::
- @$(AWK) -f $(srcdir)/prtoeval.awk >_$@
- -$(CMP) $(srcdir)/prtoeval.ok _$@ && rm -f _$@
-
-gsubtest::
- @$(AWK) -f $(srcdir)/gsubtest.awk >_$@
- -$(CMP) $(srcdir)/gsubtest.ok _$@ && rm -f _$@
-
-splitwht::
- @$(AWK) -f $(srcdir)/splitwht.awk >_$@
- -$(CMP) $(srcdir)/splitwht.ok _$@ && rm -f _$@
-
-back89::
- @$(AWK) '/a\8b/' $(srcdir)/back89.in >_$@
- -$(CMP) $(srcdir)/back89.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/mmap8k.in _$@ && rm -f _$@
tradanch::
+ @echo $@
@$(AWK) --traditional -f $(srcdir)/tradanch.awk $(srcdir)/tradanch.in >_$@
- -$(CMP) $(srcdir)/tradanch.ok _$@ && rm -f _$@
-
-nlfldsep::
- @$(AWK) -f $(srcdir)/nlfldsep.awk $(srcdir)/nlfldsep.in > _$@
- -$(CMP) $(srcdir)/nlfldsep.ok _$@ && rm -f _$@
-
-splitvar::
- @$(AWK) -f $(srcdir)/splitvar.awk $(srcdir)/splitvar.in >_$@
- -$(CMP) $(srcdir)/splitvar.ok _$@ && rm -f _$@
-
-intest::
- @$(AWK) -f $(srcdir)/intest.awk >_$@
- -$(CMP) $(srcdir)/intest.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/tradanch.ok _$@ && rm -f _$@
# AIX /bin/sh exec's the last command in a list, therefore issue a ":"
# command so that pid.sh is fork'ed as a child before being exec'ed.
pid::
- @AWKPATH=$(srcdir) AWK=$(AWK) $(SHELL) $(srcdir)/pid.sh $$$$ > _`basename $@` ; :
- -$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` _`basename $@`.in
+ @echo pid
+ @AWKPATH=$(srcdir) AWK=$(AWKPROG) LC_ALL=C $(SHELL) $(srcdir)/pid.sh $$$$ > _`basename $@` ; :
+ @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` _`basename $@`.in
strftlng::
+ @echo $@
@TZ=UTC; export TZ; $(AWK) -f $(srcdir)/strftlng.awk >_$@
@if $(CMP) -s $(srcdir)/strftlng.ok _$@ ; then : ; else \
TZ=UTC0; export TZ; $(AWK) -f $(srcdir)/strftlng.awk >_$@ ; \
fi
- -$(CMP) $(srcdir)/strftlng.ok _$@ && rm -f _$@
-
-nfldstr::
- @echo | $(AWK) '$$1 == 0 { print "bug" }' > _$@
- -$(CMP) $(srcdir)/nfldstr.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/strftlng.ok _$@ && rm -f _$@
nors::
+ @echo $@
@echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - $(srcdir)/nors.in > _$@
- -$(CMP) $(srcdir)/nors.ok _$@ && rm -f _$@
-
-fnarydel::
- @$(AWK) -f $(srcdir)/fnarydel.awk >_$@
- -$(CMP) $(srcdir)/fnarydel.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/nors.ok _$@ && rm -f _$@
reint::
+ @echo $@
@$(AWK) --re-interval -f $(srcdir)/reint.awk $(srcdir)/reint.in >_$@
- -$(CMP) $(srcdir)/reint.ok _$@ && rm -f _$@
-
-noparms::
- @-AWKPATH=$(srcdir) $(AWK) -f noparms.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/noparms.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/reint.ok _$@ && rm -f _$@
pipeio1::
+ @echo $@
@$(AWK) -f $(srcdir)/pipeio1.awk >_$@
@rm -f test1 test2
- -$(CMP) $(srcdir)/pipeio1.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/pipeio1.ok _$@ && rm -f _$@
pipeio2::
+ @echo $@
@$(AWK) -v SRCDIR=$(srcdir) -f $(srcdir)/pipeio2.awk >_$@
- -$(CMP) $(srcdir)/pipeio2.ok _$@ && rm -f _$@
-
-funstack::
- @$(AWK) -f $(srcdir)/funstack.awk $(srcdir)/funstack.in >_$@
- -$(CMP) $(srcdir)/funstack.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/pipeio2.ok _$@ && rm -f _$@
clobber::
+ @echo $@
@$(AWK) -f $(srcdir)/clobber.awk >_$@
- -$(CMP) $(srcdir)/clobber.ok seq && $(CMP) $(srcdir)/clobber.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/clobber.ok seq && $(CMP) $(srcdir)/clobber.ok _$@ && rm -f _$@
@rm -f seq
-delarprm::
- @$(AWK) -f $(srcdir)/delarprm.awk >_$@
- -$(CMP) $(srcdir)/delarprm.ok _$@ && rm -f _$@
-
-prdupval::
- @$(AWK) -f $(srcdir)/prdupval.awk $(srcdir)/prdupval.in >_$@
- -$(CMP) $(srcdir)/prdupval.ok _$@ && rm -f _$@
-
-nondec::
- @if grep BITOP ../config.h | grep define > /dev/null; \
- then \
- $(AWK) -f $(srcdir)/nondec.awk >_$@; \
- else \
- cp $(srcdir)/nondec.ok _$@; \
- fi
- -$(CMP) $(srcdir)/nondec.ok _$@ && rm -f _$@
-
-nasty::
- @$(AWK) -f $(srcdir)/nasty.awk >_$@
- -$(CMP) $(srcdir)/nasty.ok _$@ && rm -f _$@
-
-nasty2::
- @$(AWK) -f $(srcdir)/nasty2.awk >_$@
- -$(CMP) $(srcdir)/nasty2.ok _$@ && rm -f _$@
-
-zeroflag::
- @$(AWK) -f $(srcdir)/zeroflag.awk >_$@
- -$(CMP) $(srcdir)/zeroflag.ok _$@ && rm -f _$@
-
-getnr2tm::
- @$(AWK) -f $(srcdir)/getnr2tm.awk $(srcdir)/getnr2tm.in >_$@
- -$(CMP) $(srcdir)/getnr2tm.ok _$@ && rm -f _$@
-
-getnr2tb::
- @$(AWK) -f $(srcdir)/getnr2tb.awk $(srcdir)/getnr2tb.in >_$@
- -$(CMP) $(srcdir)/getnr2tb.ok _$@ && rm -f _$@
-
-printf1::
- @$(AWK) -f $(srcdir)/printf1.awk >_$@
- -$(CMP) $(srcdir)/printf1.ok _$@ && rm -f _$@
-
-funsmnam::
- @-AWKPATH=$(srcdir) $(AWK) -f funsmnam.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/funsmnam.ok _$@ && rm -f _$@
-
-fnamedat::
- @-AWKPATH=$(srcdir) $(AWK) -f fnamedat.awk < $(srcdir)/fnamedat.in >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/fnamedat.ok _$@ && rm -f _$@
-
-numindex::
- @-AWKPATH=$(srcdir) $(AWK) -f numindex.awk < $(srcdir)/numindex.in >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/numindex.ok _$@ && rm -f _$@
-
-subslash::
- @-AWKPATH=$(srcdir) $(AWK) -f subslash.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/subslash.ok _$@ && rm -f _$@
-
-opasnslf::
- @-AWKPATH=$(srcdir) $(AWK) -f opasnslf.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/opasnslf.ok _$@ && rm -f _$@
-
-opasnidx::
- @-AWKPATH=$(srcdir) $(AWK) -f opasnidx.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/opasnidx.ok _$@ && rm -f _$@
-
arynocls::
+ @echo $@
@-AWKPATH=$(srcdir) $(AWK) -v INPUT=$(srcdir)/arynocls.in -f arynocls.awk >_$@
- -$(CMP) $(srcdir)/arynocls.ok _$@ && rm -f _$@
-
-igncdym::
- @-AWKPATH=$(srcdir) $(AWK) -f igncdym.awk $(srcdir)/igncdym.in >_$@
- -$(CMP) $(srcdir)/igncdym.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/arynocls.ok _$@ && rm -f _$@
getlnbuf::
+ @echo $@
@-AWKPATH=$(srcdir) $(AWK) -f getlnbuf.awk $(srcdir)/getlnbuf.in > _$@
@-AWKPATH=$(srcdir) $(AWK) -f gtlnbufv.awk $(srcdir)/getlnbuf.in > _2$@
- -$(CMP) $(srcdir)/getlnbuf.ok _$@ && $(CMP) $(srcdir)/getlnbuf.ok _2$@ && rm -f _$@ _2$@
-
-arysubnm::
- @-AWKPATH=$(srcdir) $(AWK) -f arysubnm.awk >_$@
- -$(CMP) $(srcdir)/arysubnm.ok _$@ && rm -f _$@
-
-fnparydl::
- @-AWKPATH=$(srcdir) $(AWK) -f fnparydl.awk >_$@
- -$(CMP) $(srcdir)/fnparydl.ok _$@ && rm -f _$@
-
-nlstrina::
- @-AWKPATH=$(srcdir) $(AWK) -f nlstrina.awk >_$@
- -$(CMP) $(srcdir)/nlstrina.ok _$@ && rm -f _$@
-
-octsub::
- @-AWKPATH=$(srcdir) $(AWK) -f octsub.awk >_$@
- -$(CMP) $(srcdir)/octsub.ok _$@ && rm -f _$@
-
-nlinstr::
- @$(AWK) -f $(srcdir)/nlinstr.awk $(srcdir)/nlinstr.in >_$@
- -$(CMP) $(srcdir)/nlinstr.ok _$@ && rm -f _$@
-
-ofmt::
- @$(AWK) -f $(srcdir)/ofmt.awk $(srcdir)/ofmt.in >_$@
- -$(CMP) $(srcdir)/ofmt.ok _$@ && rm -f _$@
-
-hsprint::
- @$(AWK) -f $(srcdir)/hsprint.awk >_$@
- -$(CMP) $(srcdir)/hsprint.ok _$@ && rm -f _$@
-
-fsfwfs::
- @$(AWK) -f $(srcdir)/fsfwfs.awk $(srcdir)/fsfwfs.in >_$@
- -$(CMP) $(srcdir)/fsfwfs.ok _$@ && rm -f _$@
-
-ofmts::
- @$(AWK) -f $(srcdir)/ofmts.awk $(srcdir)/ofmts.in >_$@
- -$(CMP) $(srcdir)/ofmts.ok _$@ && rm -f _$@
-
-parseme::
- @-AWKPATH=$(srcdir) $(AWK) -f parseme.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/parseme.ok _$@ && rm -f _$@
-
-splitdef::
- @$(AWK) -f $(srcdir)/splitdef.awk >_$@
- -$(CMP) $(srcdir)/splitdef.ok _$@ && rm -f _$@
-
-fnaryscl::
- @-AWKPATH=$(srcdir) $(AWK) -f fnaryscl.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/fnaryscl.ok _$@ && rm -f _$@
-
-fnasgnm::
- @-AWKPATH=$(srcdir) $(AWK) -f fnasgnm.awk < $(srcdir)/fnasgnm.in >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/fnasgnm.ok _$@ && rm -f _$@
-
-lint::
- @-AWKPATH=$(srcdir) $(AWK) -f lint.awk > _$@ 2>&1
- -$(CMP) $(srcdir)/lint.ok _$@ && rm -f _$@
-
-procinfs::
- @-$(AWK) -f $(srcdir)/procinfs.awk > _$@
- -$(CMP) $(srcdir)/procinfs.ok _$@ && rm -f _$@
-
-sort1::
- @-$(AWK) -f $(srcdir)/sort1.awk > _$@
- -$(CMP) $(srcdir)/sort1.ok _$@ && rm -f _$@
-
-ofmtbig::
- @$(AWK) -f $(srcdir)/ofmtbig.awk $(srcdir)/ofmtbig.in >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/ofmtbig.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/getlnbuf.ok _$@ && $(CMP) $(srcdir)/getlnbuf.ok _2$@ && rm -f _$@ _2$@
inetmesg::
@echo These tests only work if your system supports the services
- @echo "'discard'" at port 9 and "'daytimed" at port 13. Check your
+ @echo "'discard'" at port 9 and "'daytimed'" at port 13. Check your
@echo file /etc/services and do "'netstat -a'".
inetechu::
@@ -1194,116 +1011,756 @@ inetdayt::
@$(AWK) 'BEGIN { print "" |& "/inet/tcp/0/127.0.0.1/13"; \
"/inet/tcp/0/127.0.0.1/13" |& getline; print $0}'
-paramtyp::
- @$(AWK) -f $(srcdir)/paramtyp.awk >_$@
- -$(CMP) $(srcdir)/paramtyp.ok _$@ && rm -f _$@
-
-rsnul1nl::
- @$(AWK) -f $(srcdir)/rsnul1nl.awk $(srcdir)/rsnul1nl.in >_$@
- -$(CMP) $(srcdir)/rsnul1nl.ok _$@ && rm -f _$@
-
-datanonl::
- @$(AWK) -f $(srcdir)/datanonl.awk $(srcdir)/datanonl.in >_$@
- -$(CMP) $(srcdir)/datanonl.ok _$@ && rm -f _$@
-
-regeq::
- @$(AWK) -f $(srcdir)/regeq.awk $(srcdir)/regeq.in >_$@
- -$(CMP) $(srcdir)/regeq.ok _$@ && rm -f _$@
-
redfilnm::
+ @echo $@
@$(AWK) -f $(srcdir)/redfilnm.awk srcdir=$(srcdir) $(srcdir)/redfilnm.in >_$@
- -$(CMP) $(srcdir)/redfilnm.ok _$@ && rm -f _$@
-
-strtod::
- @$(AWK) -f $(srcdir)/strtod.awk $(srcdir)/strtod.in >_$@
- -$(CMP) $(srcdir)/strtod.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/redfilnm.ok _$@ && rm -f _$@
leaddig::
+ @echo $@
@$(AWK) -v x=2E -f $(srcdir)/leaddig.awk >_$@
- -$(CMP) $(srcdir)/leaddig.ok _$@ && rm -f _$@
-
-clos1way::
- @$(AWK) -f $(srcdir)/clos1way.awk >_$@
- -$(CMP) $(srcdir)/clos1way.ok _$@ && rm -f _$@
-
-arynasty::
- @$(AWK) -f $(srcdir)/arynasty.awk >_$@
- -$(CMP) $(srcdir)/arynasty.ok _$@ && rm -f _$@
-
-shadow::
- @-AWKPATH=$(srcdir) $(AWK) --lint -f shadow.awk >_$@ 2>&1 || exit 0
- -$(CMP) $(srcdir)/shadow.ok _$@ && rm -f _$@
-
-regx8bit::
- @$(AWK) -f $(srcdir)/regx8bit.awk >_$@
- -$(CMP) $(srcdir)/regx8bit.ok _$@ && rm -f _$@
-
-psx96sub::
- @$(AWK) -f $(srcdir)/psx96sub.awk >_$@
- -$(CMP) $(srcdir)/psx96sub.ok _$@ && rm -f _$@
-
-addcomma::
- @$(AWK) -f $(srcdir)/addcomma.awk $(srcdir)/addcomma.in >_$@
- -$(CMP) $(srcdir)/addcomma.ok _$@ && rm -f _$@
-
-gnuops2::
- @$(AWK) -f $(srcdir)/gnuops2.awk >_$@
- -$(CMP) $(srcdir)/gnuops2.ok _$@ && rm -f _$@
-
-rebt8b1::
- @$(AWK) -f $(srcdir)/rebt8b1.awk >_$@
- -$(CMP) $(srcdir)/rebt8b1.ok _$@ && rm -f _$@
-
-rebt8b2::
- @$(AWK) -f $(srcdir)/rebt8b2.awk >_$@
- -$(CMP) $(srcdir)/rebt8b2.ok _$@ && rm -f _$@
-
-leadnl::
- @$(AWK) -f $(srcdir)/leadnl.awk $(srcdir)/leadnl.in >_$@
- -$(CMP) $(srcdir)/leadnl.ok _$@ && rm -f _$@
-
-funsemnl::
- @$(AWK) -f $(srcdir)/funsemnl.awk >_$@
- -$(CMP) $(srcdir)/funsemnl.ok _$@ && rm -f _$@
-
-ofmtfidl::
- @$(AWK) -f $(srcdir)/ofmtfidl.awk $(srcdir)/ofmtfidl.in >_$@
- -$(CMP) $(srcdir)/ofmtfidl.ok _$@ && rm -f _$@
-
-onlynl::
- @$(AWK) -f $(srcdir)/onlynl.awk $(srcdir)/onlynl.in >_$@
- -$(CMP) $(srcdir)/onlynl.ok _$@ && rm -f _$@
-
-arrymem1::
- @$(AWK) -f $(srcdir)/arrymem1.awk >_$@
- -$(CMP) $(srcdir)/arrymem1.ok _$@ && rm -f _$@
-
-compare2::
- @$(AWK) -f $(srcdir)/compare2.awk >_$@
- -$(CMP) $(srcdir)/compare2.ok _$@ && rm -f _$@
-
-minusstr::
- @$(AWK) -f $(srcdir)/minusstr.awk >_$@
- -$(CMP) $(srcdir)/minusstr.ok _$@ && rm -f _$@
-
-membug1::
- @$(AWK) -f $(srcdir)/membug1.awk $(srcdir)/membug1.in >_$@
- -$(CMP) $(srcdir)/membug1.ok _$@ && rm -f _$@
-
-forsimp::
- @$(AWK) -f $(srcdir)/forsimp.awk >_$@
- -$(CMP) $(srcdir)/forsimp.ok _$@ && rm -f _$@
-
-concat1::
- @$(AWK) -f $(srcdir)/concat1.awk $(srcdir)/concat1.in >_$@
- -$(CMP) $(srcdir)/concat1.ok _$@ && rm -f _$@
-
-longsub::
- @$(AWK) -f $(srcdir)/longsub.awk $(srcdir)/longsub.in >_$@
- -$(CMP) $(srcdir)/longsub.ok _$@ && rm -f _$@
+ @-$(CMP) $(srcdir)/leaddig.ok _$@ && rm -f _$@
+
+gsubtst3::
+ @echo $@
+ @$(AWK) --re-interval -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+space::
+ @echo $@
+ @$(AWK) -f ' ' $(srcdir)/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+printf0::
+ @echo $@
+ @$(AWK) --posix -f $(srcdir)/$@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+Gt-dummy:
+# file Maketests, generated from Makefile.am by the Gentests program
+addcomma:
+ @echo addcomma
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+anchgsub:
+ @echo anchgsub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arrayparm:
+ @echo arrayparm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arrayref:
+ @echo arrayref
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arrymem1:
+ @echo arrymem1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arynasty:
+ @echo arynasty
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arysubnm:
+ @echo arysubnm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+asgext:
+ @echo asgext
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+back89:
+ @echo back89
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+backgsub:
+ @echo backgsub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+childin:
+ @echo childin
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+clsflnam:
+ @echo clsflnam
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+compare2:
+ @echo compare2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+concat1:
+ @echo concat1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+convfmt:
+ @echo convfmt
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+datanonl:
+ @echo datanonl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+defref:
+ @echo defref
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+delarprm:
+ @echo delarprm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+dynlj:
+ @echo dynlj
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+eofsplit:
+ @echo eofsplit
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fldchg:
+ @echo fldchg
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fldchgnf:
+ @echo fldchgnf
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnamedat:
+ @echo fnamedat
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnarray:
+ @echo fnarray
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnarydel:
+ @echo fnarydel
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnaryscl:
+ @echo fnaryscl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnasgnm:
+ @echo fnasgnm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnmisc:
+ @echo fnmisc
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnparydl:
+ @echo fnparydl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+forsimp:
+ @echo forsimp
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fsbs:
+ @echo fsbs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fsrs:
+ @echo fsrs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fstabplus:
+ @echo fstabplus
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+funsemnl:
+ @echo funsemnl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+funsmnam:
+ @echo funsmnam
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+funstack:
+ @echo funstack
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getline:
+ @echo getline
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getline3:
+ @echo getline3
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getnr2tb:
+ @echo getnr2tb
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getnr2tm:
+ @echo getnr2tm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gsubasgn:
+ @echo gsubasgn
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gsubtest:
+ @echo gsubtest
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gsubtst2:
+ @echo gsubtst2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gsubtst4:
+ @echo gsubtst4
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+hsprint:
+ @echo hsprint
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+inputred:
+ @echo inputred
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+intest:
+ @echo intest
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+intprec:
+ @echo intprec
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+leadnl:
+ @echo leadnl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+longsub:
+ @echo longsub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+longwrds:
+ @echo longwrds
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+math:
+ @echo math
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+membug1:
+ @echo membug1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+minusstr:
+ @echo minusstr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nasty:
+ @echo nasty
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nasty2:
+ @echo nasty2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+negexp:
+ @echo negexp
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nfldstr:
+ @echo nfldstr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nfneg:
+ @echo nfneg
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nfset:
+ @echo nfset
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nlfldsep:
+ @echo nlfldsep
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nlinstr:
+ @echo nlinstr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nlstrina:
+ @echo nlstrina
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+noeffect:
+ @echo noeffect
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nofmtch:
+ @echo nofmtch
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+noloop1:
+ @echo noloop1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+noloop2:
+ @echo noloop2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+noparms:
+ @echo noparms
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nulrsend:
+ @echo nulrsend
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+numindex:
+ @echo numindex
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+numsubstr:
+ @echo numsubstr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+octsub:
+ @echo octsub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ofmt:
+ @echo ofmt
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ofmtbig:
+ @echo ofmtbig
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ofmtfidl:
+ @echo ofmtfidl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ofmts:
+ @echo ofmts
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+onlynl:
+ @echo onlynl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+opasnidx:
+ @echo opasnidx
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+opasnslf:
+ @echo opasnslf
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+paramdup:
+ @echo paramdup
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+paramtyp:
+ @echo paramtyp
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+parseme:
+ @echo parseme
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+pcntplus:
+ @echo pcntplus
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prdupval:
+ @echo prdupval
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prec:
+ @echo prec
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+printf1:
+ @echo printf1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prmarscl:
+ @echo prmarscl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prmreuse:
+ @echo prmreuse
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prt1eval:
+ @echo prt1eval
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prtoeval:
+ @echo prtoeval
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+psx96sub:
+ @echo psx96sub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rand:
+ @echo rand
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rebt8b1:
+ @echo rebt8b1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rebt8b2:
+ @echo rebt8b2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+regeq:
+ @echo regeq
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+reindops:
+ @echo reindops
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+reparse:
+ @echo reparse
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+resplit:
+ @echo resplit
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rs:
+ @echo rs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rsnul1nl:
+ @echo rsnul1nl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rstest1:
+ @echo rstest1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rstest2:
+ @echo rstest2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rswhite:
+ @echo rswhite
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+sclforin:
+ @echo sclforin
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+sclifin:
+ @echo sclifin
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitargv:
+ @echo splitargv
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitarr:
+ @echo splitarr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitdef:
+ @echo splitdef
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitvar:
+ @echo splitvar
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitwht:
+ @echo splitwht
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+sprintfc:
+ @echo sprintfc
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+strtod:
+ @echo strtod
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+subslash:
+ @echo subslash
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+substr:
+ @echo substr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+swaplns:
+ @echo swaplns
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+synerr1:
+ @echo synerr1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+uninitialized:
+ @echo uninitialized
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+uninit2:
+ @echo uninit2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+zeroe0:
+ @echo zeroe0
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+zeroflag:
+ @echo zeroflag
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getlnhd:
+ @echo getlnhd
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+asort:
+ @echo asort
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+asorti:
+ @echo asorti
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+clos1way:
+ @echo clos1way
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fieldwdth:
+ @echo fieldwdth
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fsfwfs:
+ @echo fsfwfs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gensub:
+ @echo gensub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gnuops2:
+ @echo gnuops2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gnureops:
+ @echo gnureops
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+icasefs:
+ @echo icasefs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+icasers:
+ @echo icasers
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+igncdym:
+ @echo igncdym
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+igncfs:
+ @echo igncfs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ignrcase:
+ @echo ignrcase
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+lint:
+ @echo lint
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+match1:
+ @echo match1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nondec:
+ @echo nondec
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+posix:
+ @echo posix
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+procinfs:
+ @echo procinfs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+regx8bit:
+ @echo regx8bit
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rebuf:
+ @echo rebuf
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+shadow:
+ @echo shadow
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+sort1:
+ @echo sort1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+# end of file Maketests
+
+# Targets generated for other tests:
+
+$(srcdir)/Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests
+ $(AWK) -f $(srcdir)/Gentests "$<" *.awk *.in > $(srcdir)/Maketests
clean:
- rm -fr _* core junk out1 out2 out3 strftime.ok test1 test2 seq *~
+ rm -fr _* core core.* junk out1 out2 out3 strftime.ok test1 test2 seq *~
# An attempt to print something that can be grepped for in build logs
pass-fail:
@@ -1320,6 +1777,18 @@ diffout:
echo ============== $$i ============= ; \
diff -c $${i#_}.ok $$i ; \
done | more
+
+# This target is for testing with electric fence.
+efence:
+ for i in $$(ls _* | sed 's;_\(.*\);\1;') ; \
+ do \
+ bad=$$(wc -l < _$$i) \
+ ok=$$(wc -l < $$i.ok) ; \
+ if (( $$bad == $$ok + 2 )) ; \
+ then \
+ rm _$$i ; \
+ fi ; \
+ done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/test/Maketests b/test/Maketests
new file mode 100644
index 00000000..97179e7b
--- /dev/null
+++ b/test/Maketests
@@ -0,0 +1,718 @@
+Gt-dummy:
+# file Maketests, generated from Makefile.am by the Gentests program
+addcomma:
+ @echo addcomma
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+anchgsub:
+ @echo anchgsub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arrayparm:
+ @echo arrayparm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arrayref:
+ @echo arrayref
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arrymem1:
+ @echo arrymem1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arynasty:
+ @echo arynasty
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+arysubnm:
+ @echo arysubnm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+asgext:
+ @echo asgext
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+back89:
+ @echo back89
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+backgsub:
+ @echo backgsub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+childin:
+ @echo childin
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+clsflnam:
+ @echo clsflnam
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+compare2:
+ @echo compare2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+concat1:
+ @echo concat1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+convfmt:
+ @echo convfmt
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+datanonl:
+ @echo datanonl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+defref:
+ @echo defref
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+delarprm:
+ @echo delarprm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+dynlj:
+ @echo dynlj
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+eofsplit:
+ @echo eofsplit
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fldchg:
+ @echo fldchg
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fldchgnf:
+ @echo fldchgnf
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnamedat:
+ @echo fnamedat
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnarray:
+ @echo fnarray
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnarydel:
+ @echo fnarydel
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnaryscl:
+ @echo fnaryscl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnasgnm:
+ @echo fnasgnm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnmisc:
+ @echo fnmisc
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fnparydl:
+ @echo fnparydl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+forsimp:
+ @echo forsimp
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fsbs:
+ @echo fsbs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fsrs:
+ @echo fsrs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fstabplus:
+ @echo fstabplus
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+funsemnl:
+ @echo funsemnl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+funsmnam:
+ @echo funsmnam
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+funstack:
+ @echo funstack
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getline:
+ @echo getline
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getline3:
+ @echo getline3
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getnr2tb:
+ @echo getnr2tb
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getnr2tm:
+ @echo getnr2tm
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gsubasgn:
+ @echo gsubasgn
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gsubtest:
+ @echo gsubtest
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gsubtst2:
+ @echo gsubtst2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gsubtst4:
+ @echo gsubtst4
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+hsprint:
+ @echo hsprint
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+inputred:
+ @echo inputred
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+intest:
+ @echo intest
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+intprec:
+ @echo intprec
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+leadnl:
+ @echo leadnl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+longsub:
+ @echo longsub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+longwrds:
+ @echo longwrds
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+math:
+ @echo math
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+membug1:
+ @echo membug1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+minusstr:
+ @echo minusstr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nasty:
+ @echo nasty
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nasty2:
+ @echo nasty2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+negexp:
+ @echo negexp
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nfldstr:
+ @echo nfldstr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nfneg:
+ @echo nfneg
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nfset:
+ @echo nfset
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nlfldsep:
+ @echo nlfldsep
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nlinstr:
+ @echo nlinstr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nlstrina:
+ @echo nlstrina
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+noeffect:
+ @echo noeffect
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nofmtch:
+ @echo nofmtch
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+noloop1:
+ @echo noloop1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+noloop2:
+ @echo noloop2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+noparms:
+ @echo noparms
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nulrsend:
+ @echo nulrsend
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+numindex:
+ @echo numindex
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+numsubstr:
+ @echo numsubstr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+octsub:
+ @echo octsub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ofmt:
+ @echo ofmt
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ofmtbig:
+ @echo ofmtbig
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ofmtfidl:
+ @echo ofmtfidl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ofmts:
+ @echo ofmts
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+onlynl:
+ @echo onlynl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+opasnidx:
+ @echo opasnidx
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+opasnslf:
+ @echo opasnslf
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+paramdup:
+ @echo paramdup
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+paramtyp:
+ @echo paramtyp
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+parseme:
+ @echo parseme
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+pcntplus:
+ @echo pcntplus
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prdupval:
+ @echo prdupval
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prec:
+ @echo prec
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+printf1:
+ @echo printf1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prmarscl:
+ @echo prmarscl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prmreuse:
+ @echo prmreuse
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prt1eval:
+ @echo prt1eval
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+prtoeval:
+ @echo prtoeval
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+psx96sub:
+ @echo psx96sub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rand:
+ @echo rand
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rebt8b1:
+ @echo rebt8b1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rebt8b2:
+ @echo rebt8b2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+regeq:
+ @echo regeq
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+reindops:
+ @echo reindops
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+reparse:
+ @echo reparse
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+resplit:
+ @echo resplit
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rs:
+ @echo rs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rsnul1nl:
+ @echo rsnul1nl
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rstest1:
+ @echo rstest1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rstest2:
+ @echo rstest2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rswhite:
+ @echo rswhite
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+sclforin:
+ @echo sclforin
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+sclifin:
+ @echo sclifin
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitargv:
+ @echo splitargv
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitarr:
+ @echo splitarr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitdef:
+ @echo splitdef
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitvar:
+ @echo splitvar
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+splitwht:
+ @echo splitwht
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+sprintfc:
+ @echo sprintfc
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+strtod:
+ @echo strtod
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+subslash:
+ @echo subslash
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+substr:
+ @echo substr
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+swaplns:
+ @echo swaplns
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+synerr1:
+ @echo synerr1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+uninitialized:
+ @echo uninitialized
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+uninit2:
+ @echo uninit2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+zeroe0:
+ @echo zeroe0
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+zeroflag:
+ @echo zeroflag
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+getlnhd:
+ @echo getlnhd
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+asort:
+ @echo asort
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+asorti:
+ @echo asorti
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+clos1way:
+ @echo clos1way
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fieldwdth:
+ @echo fieldwdth
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+fsfwfs:
+ @echo fsfwfs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gensub:
+ @echo gensub
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gnuops2:
+ @echo gnuops2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+gnureops:
+ @echo gnureops
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+icasefs:
+ @echo icasefs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+icasers:
+ @echo icasers
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+igncdym:
+ @echo igncdym
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+igncfs:
+ @echo igncfs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+ignrcase:
+ @echo ignrcase
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+lint:
+ @echo lint
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+match1:
+ @echo match1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+nondec:
+ @echo nondec
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+posix:
+ @echo posix
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+procinfs:
+ @echo procinfs
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+regx8bit:
+ @echo regx8bit
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+rebuf:
+ @echo rebuf
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+shadow:
+ @echo shadow
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+sort1:
+ @echo sort1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+# end of file Maketests
diff --git a/test/arrayparm.ok b/test/arrayparm.ok
index 4a775efe..4dd199f4 100644
--- a/test/arrayparm.ok
+++ b/test/arrayparm.ok
@@ -1 +1,2 @@
gawk: arrayparm.awk:18: fatal: attempt to use array `i (from foo)' in a scalar context
+EXIT CODE: 2
diff --git a/test/arrymem1.awk b/test/arrymem1.awk
index 561cc956..0a4ae899 100644
--- a/test/arrymem1.awk
+++ b/test/arrymem1.awk
@@ -40,14 +40,20 @@
}
function f1(Procs,a) {
- a[""]
+ # a[""]
+ a[""] = "a" # ADR: Give it a value so can trace it
f2()
}
function f2() {
- b[""]
+ # b[""]
+ b[""] = "b" # ADR: Give it a value so can trace it
}
+ # ADR: 1/28/2003: Added this:
+ BEGIN { for (i in b) printf("b[\"%s\"] = \"%s\"\n", i, b[i]) }
+ # END ADR added.
+
# gives:
#
# gawk: ./gtest:5: fatal error: internal error
diff --git a/test/arrymem1.ok b/test/arrymem1.ok
index 9daeafb9..e37775bc 100644
--- a/test/arrymem1.ok
+++ b/test/arrymem1.ok
@@ -1 +1,2 @@
test
+b[""] = "b"
diff --git a/test/asort.awk b/test/asort.awk
new file mode 100644
index 00000000..8a42e26a
--- /dev/null
+++ b/test/asort.awk
@@ -0,0 +1,25 @@
+function init(a)
+{
+ a[1] = "aardvark"
+ a[2] = "animal"
+ a[3] = "zebra"
+ a[4] = "zoo"
+ a[5] = "Iguana"
+ a[6] = "Alligator"
+ a[7] = "Nouns"
+ a[8] = "people"
+}
+
+BEGIN {
+
+ for (IGNORECASE = 0; IGNORECASE < 2; IGNORECASE++) {
+ init(a)
+
+ n = asort(a)
+
+ for (i = 1; i <= n; i++)
+ printf("a[%d] = \"%s\"\n", i, a[i])
+
+ print "============"
+ }
+}
diff --git a/test/asort.ok b/test/asort.ok
new file mode 100644
index 00000000..1d0ddd0f
--- /dev/null
+++ b/test/asort.ok
@@ -0,0 +1,18 @@
+a[1] = "Alligator"
+a[2] = "Iguana"
+a[3] = "Nouns"
+a[4] = "aardvark"
+a[5] = "animal"
+a[6] = "people"
+a[7] = "zebra"
+a[8] = "zoo"
+============
+a[1] = "aardvark"
+a[2] = "Alligator"
+a[3] = "animal"
+a[4] = "Iguana"
+a[5] = "Nouns"
+a[6] = "people"
+a[7] = "zebra"
+a[8] = "zoo"
+============
diff --git a/test/asorti.awk b/test/asorti.awk
new file mode 100644
index 00000000..3314c9f3
--- /dev/null
+++ b/test/asorti.awk
@@ -0,0 +1,27 @@
+function init(a)
+{
+ delete a
+
+ a["aardvark"] = 1
+ a["animal"] = 2
+ a["zebra"] = 3
+ a["zoo"] = 4
+ a["Iguana"] = 5
+ a["Alligator"] = 6
+ a["Nouns"] = 7
+ a["people"] = 8
+}
+
+BEGIN {
+
+ for (IGNORECASE = 0; IGNORECASE < 2; IGNORECASE++) {
+ init(a)
+
+ n = asorti(a)
+
+ for (i = 1; i <= n; i++)
+ printf("a[%d] = \"%s\"\n", i, a[i])
+
+ print "============"
+ }
+}
diff --git a/test/asorti.ok b/test/asorti.ok
new file mode 100644
index 00000000..1d0ddd0f
--- /dev/null
+++ b/test/asorti.ok
@@ -0,0 +1,18 @@
+a[1] = "Alligator"
+a[2] = "Iguana"
+a[3] = "Nouns"
+a[4] = "aardvark"
+a[5] = "animal"
+a[6] = "people"
+a[7] = "zebra"
+a[8] = "zoo"
+============
+a[1] = "aardvark"
+a[2] = "Alligator"
+a[3] = "animal"
+a[4] = "Iguana"
+a[5] = "Nouns"
+a[6] = "people"
+a[7] = "zebra"
+a[8] = "zoo"
+============
diff --git a/test/back89.awk b/test/back89.awk
new file mode 100644
index 00000000..0da33625
--- /dev/null
+++ b/test/back89.awk
@@ -0,0 +1 @@
+/a\8b/
diff --git a/test/childin.awk b/test/childin.awk
new file mode 100644
index 00000000..041c6ec1
--- /dev/null
+++ b/test/childin.awk
@@ -0,0 +1 @@
+BEGIN { "cat" | getline; print; close("cat") }
diff --git a/test/childin.in b/test/childin.in
new file mode 100644
index 00000000..45b983be
--- /dev/null
+++ b/test/childin.in
@@ -0,0 +1 @@
+hi
diff --git a/test/defref.ok b/test/defref.ok
index f833c961..e0061a0d 100644
--- a/test/defref.ok
+++ b/test/defref.ok
@@ -1,2 +1,3 @@
gawk: defref.awk:2: warning: function `foo' called but never defined
gawk: defref.awk:1: fatal: function `foo' not defined
+EXIT CODE: 2
diff --git a/test/fieldwdth.awk b/test/fieldwdth.awk
new file mode 100644
index 00000000..f2eeb6ce
--- /dev/null
+++ b/test/fieldwdth.awk
@@ -0,0 +1,2 @@
+BEGIN { FIELDWIDTHS = "2 3 4" }
+{ print $2 }
diff --git a/test/fieldwdth.in b/test/fieldwdth.in
new file mode 100644
index 00000000..28d14454
--- /dev/null
+++ b/test/fieldwdth.in
@@ -0,0 +1 @@
+123456789
diff --git a/test/fnamedat.ok b/test/fnamedat.ok
index 0dd0ae5a..d32acff4 100644
--- a/test/fnamedat.ok
+++ b/test/fnamedat.ok
@@ -1 +1,2 @@
gawk: fnamedat.awk:1: (FILENAME=- FNR=1) fatal: can't use function name `foo' as variable or array
+EXIT CODE: 2
diff --git a/test/fnarray.ok b/test/fnarray.ok
index 94beacdd..2ef124b7 100644
--- a/test/fnarray.ok
+++ b/test/fnarray.ok
@@ -1 +1,3 @@
-gawk: fnarray.awk:5: fatal: attempt to use function `foo' as array
+gawk: fnarray.awk:5: fatal: function `foo' called with space between name and `(',
+or used as a variable or an array
+EXIT CODE: 2
diff --git a/test/fnaryscl.ok b/test/fnaryscl.ok
index d39dfdcc..2fecd582 100644
--- a/test/fnaryscl.ok
+++ b/test/fnaryscl.ok
@@ -1 +1,2 @@
gawk: fnaryscl.awk:10: fatal: attempt to use array `c (from b (from a (from foo)))' in a scalar context
+EXIT CODE: 2
diff --git a/test/fnasgnm.ok b/test/fnasgnm.ok
index 844893c0..0db5c6d8 100644
--- a/test/fnasgnm.ok
+++ b/test/fnasgnm.ok
@@ -1 +1,2 @@
gawk: fnasgnm.awk:14: (FILENAME=- FNR=1) fatal: can't use function name `ShowMe' as variable or array
+EXIT CODE: 2
diff --git a/test/fnmisc.awk b/test/fnmisc.awk
new file mode 100644
index 00000000..4dcc94ee
--- /dev/null
+++ b/test/fnmisc.awk
@@ -0,0 +1,13 @@
+# Tue Feb 4 12:20:10 IST 2003
+
+# Misc functions tests, in case we start mucking around in the grammar again.
+
+# Empty body shouldn't hurt anything:
+function f() {}
+BEGIN { f() }
+
+# Using a built-in function name should manage the symbol table
+# correctly:
+function split(x) { return x }
+
+function x(a) { return a }
diff --git a/test/fnmisc.ok b/test/fnmisc.ok
new file mode 100644
index 00000000..a265e401
--- /dev/null
+++ b/test/fnmisc.ok
@@ -0,0 +1,3 @@
+gawk: fnmisc.awk:11: function split(x) { return x }
+gawk: fnmisc.awk:11: ^ `split' is a built-in function, it cannot be redefined
+EXIT CODE: 1
diff --git a/test/fsbs.awk b/test/fsbs.awk
new file mode 100644
index 00000000..d2ec52ee
--- /dev/null
+++ b/test/fsbs.awk
@@ -0,0 +1,2 @@
+BEGIN { FS = "\\" }
+{ print $1, $2 }
diff --git a/test/fstabplus.in b/test/fstabplus.in
new file mode 100644
index 00000000..c35ba0a2
--- /dev/null
+++ b/test/fstabplus.in
@@ -0,0 +1 @@
+1 2
diff --git a/test/funsmnam.ok b/test/funsmnam.ok
index bc68a2f3..c0234f3a 100644
--- a/test/funsmnam.ok
+++ b/test/funsmnam.ok
@@ -1 +1,2 @@
gawk: funsmnam.awk:6: fatal: function `foo': can't use function name as parameter name
+EXIT CODE: 2
diff --git a/test/getline.awk b/test/getline.awk
index f4e413f9..fc09f789 100644
--- a/test/getline.awk
+++ b/test/getline.awk
@@ -1 +1,29 @@
-BEGIN { while( getline > 0) { print } }
+BEGIN {
+ x = y = "s"
+ a = (getline x y)
+ print a, x
+ a = (getline x + 1)
+ print a, x
+ a = (getline x - 2)
+ print a, x
+
+ cmd = "echo A"
+ a = (cmd | getline x y)
+ close(cmd)
+ print a, x
+
+ cmd = "echo B"
+ a = (cmd | getline x + 1)
+ close(cmd)
+ print a, x
+
+ cmd = "echo C"
+ a = (cmd | getline x - 2)
+ close(cmd)
+ print a, x
+
+ cmd = "echo D"
+ a = cmd | getline x
+ close(cmd)
+ print a, x
+}
diff --git a/test/getline.in b/test/getline.in
new file mode 100644
index 00000000..b1e67221
--- /dev/null
+++ b/test/getline.in
@@ -0,0 +1,3 @@
+A
+B
+C
diff --git a/test/getline.ok b/test/getline.ok
index 9b7f2b90..dd5bdb64 100644
--- a/test/getline.ok
+++ b/test/getline.ok
@@ -1,2 +1,7 @@
-BEGIN { while( getline > 0) { print } }
-BEGIN { while( getline > 0) { print } }
+1s A
+2 B
+-1 C
+1s A
+2 B
+-1 C
+1 D
diff --git a/test/getline2.awk b/test/getline2.awk
new file mode 100644
index 00000000..f4e413f9
--- /dev/null
+++ b/test/getline2.awk
@@ -0,0 +1 @@
+BEGIN { while( getline > 0) { print } }
diff --git a/test/getline2.ok b/test/getline2.ok
new file mode 100644
index 00000000..9b7f2b90
--- /dev/null
+++ b/test/getline2.ok
@@ -0,0 +1,2 @@
+BEGIN { while( getline > 0) { print } }
+BEGIN { while( getline > 0) { print } }
diff --git a/test/getline3.awk b/test/getline3.awk
new file mode 100644
index 00000000..03e1239d
--- /dev/null
+++ b/test/getline3.awk
@@ -0,0 +1,7 @@
+BEGIN {
+ cmd = "echo 3"
+ y = 7
+ cmd | getline x y
+ close(cmd)
+ print (cmd | getline x y)
+}
diff --git a/test/getline3.ok b/test/getline3.ok
new file mode 100644
index 00000000..98d9bcb7
--- /dev/null
+++ b/test/getline3.ok
@@ -0,0 +1 @@
+17
diff --git a/test/gsubasgn.ok b/test/gsubasgn.ok
index dfa6fbc7..8817c36d 100644
--- a/test/gsubasgn.ok
+++ b/test/gsubasgn.ok
@@ -2,3 +2,4 @@ gawk: gsubasgn.awk:4: function test1 (r) { gsub(r, "x", test1) }
gawk: gsubasgn.awk:4: ^ gsub third parameter is not a changeable object
gawk: gsubasgn.awk:8: function test2 () { gsub(/a/, "x", test2) }
gawk: gsubasgn.awk:8: ^ gsub third parameter is not a changeable object
+EXIT CODE: 1
diff --git a/test/gsubtest.awk b/test/gsubtest.awk
index 5dfefe93..1d6fd1cf 100644
--- a/test/gsubtest.awk
+++ b/test/gsubtest.awk
@@ -5,4 +5,5 @@ BEGIN {
str = "abc"; print gsub("c", "X", str), str
str = "abc"; print gsub("c+", "X", str), str
str = "abc"; print gsub("x*$", "X", str), str
+ str = "abc"; print gsub("b|$", "X", str), str
}
diff --git a/test/gsubtest.ok b/test/gsubtest.ok
index 7c18f431..f909d0d2 100644
--- a/test/gsubtest.ok
+++ b/test/gsubtest.ok
@@ -4,3 +4,4 @@
1 abX
1 abX
1 abcX
+2 aXcX
diff --git a/test/gsubtst2.awk b/test/gsubtst2.awk
new file mode 100644
index 00000000..fafbf963
--- /dev/null
+++ b/test/gsubtst2.awk
@@ -0,0 +1,241 @@
+#From arnold Thu May 9 17:27:03 2002
+#Return-Path: <arnold@skeeve.com>
+#Received: (from arnold@localhost)
+# by skeeve.com (8.11.6/8.11.6) id g49ER3K27925
+# for arnold; Thu, 9 May 2002 17:27:03 +0300
+#Date: Thu, 9 May 2002 17:27:03 +0300
+#From: Aharon Robbins <arnold@skeeve.com>
+#Message-Id: <200205091427.g49ER3K27925@skeeve.com>
+#To: arnold@skeeve.com
+#Subject: fixme
+#X-SpamBouncer: 1.4 (10/07/01)
+#X-SBRule: Pattern Match (Other Patterns) (Score: 4850)
+#X-SBRule: Pattern Match (Spam Phone #) (Score: 0)
+#X-SBClass: Blocked
+#Status: O
+#
+#Path: ord-read.news.verio.net!dfw-artgen!iad-peer.news.verio.net!news.verio.net!fu-berlin.de!uni-berlin.de!host213-120-137-48.in-addr.btopenworld.COM!not-for-mail
+#From: laura@madonnaweb.com (laura fairhead)
+#Newsgroups: comp.lang.awk
+#Subject: bug in gawk3.1.0 regex code
+#Date: Wed, 08 May 2002 23:31:40 GMT
+#Organization: that'll be the daewooo :)
+#Lines: 211
+#Message-ID: <3cd9b0f7.29675926@NEWS.CIS.DFN.DE>
+#Reply-To: laura@madonnaweb.com
+#NNTP-Posting-Host: host213-120-137-48.in-addr.btopenworld.com (213.120.137.48)
+#X-Trace: fu-berlin.de 1020900891 18168286 213.120.137.48 (16 [53286])
+#X-Newsreader: Forte Free Agent 1.21/32.243
+#Xref: dfw-artgen comp.lang.awk:13059
+#
+#
+#I believe I've just found a bug in gawk3.1.0 implementation of
+#extended regular expressions. It seems to be down to the alternation
+#operator; when using an end anchor '$' as a subexpression in an
+#alternation and the entire matched RE is a nul-string it fails
+#to match the end of string, for example;
+#
+#gsub(/$|2/,"x")
+#print
+#
+#input = 12345
+#expected output = 1x345x
+#actual output = 1x345
+#
+#The start anchor '^' always works as expected;
+#
+#gsub(/^|2/,"x")
+#print
+#
+#input = 12345
+#expected output = x1x345
+#actual output = x1x345
+#
+#This was with POSIX compliance enabled althought that doesn't
+#effect the result.
+#
+#I checked on gawk3.0.6 and got exactly the same results however
+#gawk2.15.6 gives the expected results.
+#
+#I'm about to post a bug report about this into gnu.utils.bug
+#but I thought I'd post it here first in case anyone has
+#any input/comments/whatever ....
+#
+#Complete test results were as follows;
+#
+#input 12345
+#output gsub(/regex/,"x",input)
+#
+#regex output
+#(^) x12345
+#($) 12345x
+#(^)|($) x12345x
+#($)|(^) x12345x
+#(2) 1x345
+#(^)|2 x1x345
+#2|(^) x1x345
+#($)|2 1x345
+#2|($) 1x345
+#(2)|(^) x1x345
+#(^)|(2) x1x345
+#(2)|($) 1x345
+#($)|(2) 1x345
+#.((2)|(^)) x345
+#.((^)|(2)) x345
+#.((2)|($)) x34x
+#.(($)|(2)) x34x
+#x{0}((2)|(^)) x1x345
+#x{0}((^)|(2)) x1x345
+#x{0}((2)|($)) 1x345
+#x{0}(($)|(2)) 1x345
+#x*((2)|(^)) x1x345
+#x*((^)|(2)) x1x345
+#x*((2)|($)) 1x345
+#x*(($)|(2)) 1x345
+#
+#Here's the test program I used, a few of the cases use ERE {n[,[m]]}
+#operators so that will have to be commented out or have a check
+#added or something (should have put a conditional in I know... ;-)
+#
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+BEGIN{
+
+TESTSTR="12345"
+
+print "input "TESTSTR
+print "output gsub(/regex/,\"x\",input)"
+print ""
+
+print "regex output"
+$0=TESTSTR
+gsub(/(^)/,"x")
+print "(^) "$0
+
+$0=TESTSTR
+gsub(/($)/,"x")
+print "($) "$0
+
+$0=TESTSTR
+gsub(/(^)|($)/,"x")
+print "(^)|($) "$0
+
+$0=TESTSTR
+gsub(/($)|(^)/,"x")
+print "($)|(^) "$0
+
+$0=TESTSTR
+gsub(/2/,"x")
+print "(2) "$0
+
+$0=TESTSTR
+gsub(/(^)|2/,"x")
+print "(^)|2 "$0
+
+$0=TESTSTR
+gsub(/2|(^)/,"x")
+print "2|(^) "$0
+
+$0=TESTSTR
+gsub(/($)|2/,"x")
+print "($)|2 "$0
+
+$0=TESTSTR
+gsub(/2|($)/,"x")
+print "2|($) "$0
+
+$0=TESTSTR
+gsub(/(2)|(^)/,"x")
+print "(2)|(^) "$0
+
+$0=TESTSTR
+gsub(/(^)|(2)/,"x")
+print "(^)|(2) "$0
+
+$0=TESTSTR
+gsub(/(2)|($)/,"x")
+print "(2)|($) "$0
+
+$0=TESTSTR
+gsub(/($)|(2)/,"x")
+print "($)|(2) "$0
+
+$0=TESTSTR
+gsub(/.((2)|(^))/,"x")
+print ".((2)|(^)) "$0
+
+$0=TESTSTR
+gsub(/.((^)|(2))/,"x")
+print ".((^)|(2)) "$0
+
+$0=TESTSTR
+gsub(/.((2)|($))/,"x")
+print ".((2)|($)) "$0
+
+$0=TESTSTR
+gsub(/.(($)|(2))/,"x")
+print ".(($)|(2)) "$0
+
+# $0=TESTSTR
+# gsub(/x{0}((2)|(^))/,"x")
+# print "x{0}((2)|(^)) "$0
+#
+# $0=TESTSTR
+# gsub(/x{0}((^)|(2))/,"x")
+# print "x{0}((^)|(2)) "$0
+#
+# $0=TESTSTR
+# gsub(/x{0}((2)|($))/,"x")
+# print "x{0}((2)|($)) "$0
+#
+# $0=TESTSTR
+# gsub(/x{0}(($)|(2))/,"x")
+# print "x{0}(($)|(2)) "$0
+
+$0=TESTSTR
+gsub(/x*((2)|(^))/,"x")
+print "x*((2)|(^)) "$0
+
+$0=TESTSTR
+gsub(/x*((^)|(2))/,"x")
+print "x*((^)|(2)) "$0
+
+$0=TESTSTR
+gsub(/x*((2)|($))/,"x")
+print "x*((2)|($)) "$0
+
+$0=TESTSTR
+gsub(/x*(($)|(2))/,"x")
+print "x*(($)|(2)) "$0
+
+# $0=TESTSTR
+# gsub(/x{0}^/,"x")
+# print "x{0}^ "$0
+#
+# $0=TESTSTR
+# gsub(/x{0}$/,"x")
+# print "x{0}$ "$0
+#
+# $0=TESTSTR
+# gsub(/(x{0}^)|2/,"x")
+# print "(x{0}^)|2 "$0
+#
+# $0=TESTSTR
+# gsub(/(x{0}$)|2/,"x")
+# print "(x{0}$)|2 "$0
+
+
+}
+#
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#byefrom
+#
+#--
+#laura fairhead # laura@madonnaweb.com http://lf.8k.com
+# # if you are bored crack my sig.
+#1F8B0808CABB793C0000666667002D8E410E83300C04EF91F2877D00CA138A7A
+#EAA98F30C494480157B623C4EF1B508FDED1CEFA9152A23DE35D661593C5318E
+#630C313CD701BE92E390563326EE17A3CA818F5266E4C2461547F1F5267659CA
+#8EE2092F76C329ED02CA430C5373CC62FF94BAC6210B36D9F9BC4AB53378D978
+#80F2978A1A6E5D6F5133B67B6113178DC1059526698AFE5C17A5187E7D930492
diff --git a/test/gsubtst2.ok b/test/gsubtst2.ok
new file mode 100644
index 00000000..a038528b
--- /dev/null
+++ b/test/gsubtst2.ok
@@ -0,0 +1,25 @@
+input 12345
+output gsub(/regex/,"x",input)
+
+regex output
+(^) x12345
+($) 12345x
+(^)|($) x12345x
+($)|(^) x12345x
+(2) 1x345
+(^)|2 x1x345
+2|(^) x1x345
+($)|2 1x345x
+2|($) 1x345x
+(2)|(^) x1x345
+(^)|(2) x1x345
+(2)|($) 1x345x
+($)|(2) 1x345x
+.((2)|(^)) x345
+.((^)|(2)) x345
+.((2)|($)) x34x
+.(($)|(2)) x34x
+x*((2)|(^)) x1x345
+x*((^)|(2)) x1x345
+x*((2)|($)) 1x345x
+x*(($)|(2)) 1x345x
diff --git a/test/gsubtst3.awk b/test/gsubtst3.awk
new file mode 100644
index 00000000..1c4f4ead
--- /dev/null
+++ b/test/gsubtst3.awk
@@ -0,0 +1,290 @@
+# From laura_fairhead@talk21.com Fri May 10 11:24:41 2002
+# Return-Path: <laura_fairhead@talk21.com>
+# Received: from localhost (aahz [127.0.0.1])
+# by skeeve.com (8.11.2/8.11.2) with ESMTP id g4A8OdU01822
+# for <arnold@localhost>; Fri, 10 May 2002 11:24:40 +0300
+# Received: from actcom.co.il [192.114.47.1]
+# by localhost with POP3 (fetchmail-5.7.4)
+# for arnold@localhost (single-drop); Fri, 10 May 2002 11:24:40 +0300 (IDT)
+# Received: by actcom.co.il (mbox arobbins)
+# (with Cubic Circle's cucipop (v1.31 1998/05/13) Fri May 10 11:30:42 2002)
+# X-From_: laura_fairhead@talk21.com Fri May 10 05:39:57 2002
+# Received: from lmail.actcom.co.il by actcom.co.il with ESMTP
+# (8.11.6/actcom-0.2) id g4A2dpw26380 for <arobbins@actcom.co.il>;
+# Fri, 10 May 2002 05:39:52 +0300 (EET DST)
+# (rfc931-sender: mail.actcom.co.il [192.114.47.13])
+# Received: from f7.net (consort.superb.net [209.61.216.22])
+# by lmail.actcom.co.il (8.11.6/8.11.6) with ESMTP id g4A2dxl10851
+# for <arobbins@actcom.co.il>; Fri, 10 May 2002 05:39:59 +0300
+# Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
+# by f7.net (8.11.6/8.11.6) with ESMTP id g4A2dwN11097
+# for <arnold@skeeve.com>; Thu, 9 May 2002 22:39:58 -0400
+# Received: from [194.73.242.6] (helo=wmpmta04-app.mail-store.com)
+# by fencepost.gnu.org with smtp (Exim 3.34 #1 (Debian))
+# id 1760K4-0001QX-00
+# for <bug-gawk@gnu.org>; Thu, 09 May 2002 22:39:56 -0400
+# Received: from wmpmtavirtual ([10.216.84.15])
+# by wmpmta04-app.mail-store.com
+# (InterMail vM.5.01.02.00 201-253-122-103-101-20001108) with SMTP
+# id <20020510023921.EEW24107.wmpmta04-app.mail-store.com@wmpmtavirtual>
+# for <bug-gawk@gnu.org>; Fri, 10 May 2002 03:39:21 +0100
+# Received: from 213.1.102.243 by t21web05-lrs ([10.216.84.15]); Fri, 10 May 02 03:38:42 GMT+01:00
+# X-Mailer: talk21 v1.24 - http://talk21.btopenworld.com
+# From: laura_fairhead@talk21.com
+# To: bug-gawk@gnu.org
+# X-Talk21Ref: none
+# Date: Fri, 10 May 2002 03:38:42 GMT+01:00
+# Subject: bug in gawk 3.1.0 regex code
+# Mime-Version: 1.0
+# Content-type: multipart/mixed; boundary="--GgOuLpDpIyE--1020998322088--"
+# Message-Id: <20020510023921.EEW24107.wmpmta04-app.mail-store.com@wmpmtavirtual>
+# X-SpamBouncer: 1.4 (10/07/01)
+# X-SBClass: OK
+# Status: RO
+#
+# Multipart Message Boundary - attachment/bodypart follows:
+#
+#
+# ----GgOuLpDpIyE--1020998322088--
+# Content-Type: text/plain
+# Content-Transfer-Encoding: 7bit
+#
+#
+# I believe I've just found a bug in gawk3.1.0 implementation of
+# extended regular expressions. It seems to be down to the alternation
+# operator; when using an end anchor '$' as a subexpression in an
+# alternation and the entire matched RE is a nul-string it fails
+# to match the end of string, for example;
+#
+# gsub(/$|2/,"x")
+# print
+#
+# input = 12345
+# expected output = 1x345x
+# actual output = 1x345
+#
+# The start anchor '^' always works as expected;
+#
+# gsub(/^|2/,"x")
+# print
+#
+# input = 12345
+# expected output = x1x345
+# actual output = x1x345
+#
+# This was with POSIX compliance enabled althought that doesn't
+# effect the result.
+#
+# I checked on gawk3.0.6 and got exactly the same results however
+# gawk2.15.6 gives the expected results.
+#
+# All the follow platforms produced the same results;
+#
+# gawk3.0.6 / Win98 / i386
+# gawk3.1.0 / Win98 / i386
+# gawk3.0.5 / Linux2.2.16 / i386
+#
+# Complete test results were as follows;
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# regex input expected actual bug?
+# -------------------------------------------------------------
+# (^) 12345 x12345 x12345
+# ($) 12345 12345x 12345x
+# (^)|($) 12345 x12345x x12345x
+# ($)|(^) 12345 x12345x x12345x
+# 2 12345 1x345 1x345
+# (^)|2 12345 x1x345 x1x345
+# 2|(^) 12345 x1x345 x1x345
+# ($)|2 12345 1x345x 1x345 **BUG**
+# 2|($) 12345 1x345x 1x345 **BUG**
+# (2)|(^) 12345 x1x345 x1x345
+# (^)|(2) 12345 x1x345 x1x345
+# (2)|($) 12345 1x345x 1x345 **BUG**
+# ($)|(2) 12345 1x345x 1x345 **BUG**
+# ((2)|(^)). 12345 xx45 xx45
+# ((^)|(2)). 12345 xx45 xx45
+# .((2)|($)) 12345 x34x x34x
+# .(($)|(2)) 12345 x34x x34x
+# (^)|6 12345 x12345 x12345
+# 6|(^) 12345 x12345 x12345
+# ($)|6 12345 12345x 12345x
+# 6|($) 12345 12345x 12345x
+# 2|6|(^) 12345 x1x345 x1x345
+# 2|(^)|6 12345 x1x345 x1x345
+# 6|2|(^) 12345 x1x345 x1x345
+# 6|(^)|2 12345 x1x345 x1x345
+# (^)|6|2 12345 x1x345 x1x345
+# (^)|2|6 12345 x1x345 x1x345
+# 2|6|($) 12345 1x345x 1x345 **BUG**
+# 2|($)|6 12345 1x345x 1x345 **BUG**
+# 6|2|($) 12345 1x345x 1x345 **BUG**
+# 6|($)|2 12345 1x345x 1x345 **BUG**
+# ($)|6|2 12345 1x345x 1x345 **BUG**
+# ($)|2|6 12345 1x345x 1x345 **BUG**
+# 2|4|(^) 12345 x1x3x5 x1x3x5
+# 2|(^)|4 12345 x1x3x5 x1x3x5
+# 4|2|(^) 12345 x1x3x5 x1x3x5
+# 4|(^)|2 12345 x1x3x5 x1x3x5
+# (^)|4|2 12345 x1x3x5 x1x3x5
+# (^)|2|4 12345 x1x3x5 x1x3x5
+# 2|4|($) 12345 1x3x5x 1x3x5 **BUG**
+# 2|($)|4 12345 1x3x5x 1x3x5 **BUG**
+# 4|2|($) 12345 1x3x5x 1x3x5 **BUG**
+# 4|($)|2 12345 1x3x5x 1x3x5 **BUG**
+# ($)|4|2 12345 1x3x5x 1x3x5 **BUG**
+# ($)|2|4 12345 1x3x5x 1x3x5 **BUG**
+# x{0}((2)|(^)) 12345 x1x345 x1x345
+# x{0}((^)|(2)) 12345 x1x345 x1x345
+# x{0}((2)|($)) 12345 1x345x 1x345 **BUG**
+# x{0}(($)|(2)) 12345 1x345x 1x345 **BUG**
+# x*((2)|(^)) 12345 x1x345 x1x345
+# x*((^)|(2)) 12345 x1x345 x1x345
+# x*((2)|($)) 12345 1x345x 1x345 **BUG**
+# x*(($)|(2)) 12345 1x345x 1x345 **BUG**
+# x{0}^ 12345 x12345 x12345
+# x{0}$ 12345 12345x 12345x
+# (x{0}^)|2 12345 x1x345 x1x345
+# (x{0}$)|2 12345 1x345x 1x345 **BUG**
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#
+# Here's the test program I used, a few of the cases use ERE {n[,[m]]}
+# operators so need '-W posix', (although the same results minus
+# those tests came out without POSIX compliance enabled)
+#
+# [ Invocation was 'gawk -W posix -f tregex.awk' ]
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# tregex.awk
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+BEGIN{
+print _=sprintf("%-20s%-10s%-10s%-10s%-10s\n","regex","input","expected","actual","bug?")
+OFS="-"
+$(length(_)+1)=""
+print $0
+
+while(getline <ARGV[1]) # ADR: was testre.dat
+{
+RE=$1;IN=$2;OUT=$3
+$0=IN
+gsub(RE,"x")
+printf "%-20s%-10s%-10s%-10s%-10s\n",RE,IN,OUT,$0,$0==OUT?"":"**BUG**"
+}
+}
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+# This is the test data file used;
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# testre.dat
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# (^) 12345 x12345
+# ($) 12345 12345x
+# (^)|($) 12345 x12345x
+# ($)|(^) 12345 x12345x
+# 2 12345 1x345
+# (^)|2 12345 x1x345
+# 2|(^) 12345 x1x345
+# ($)|2 12345 1x345x
+# 2|($) 12345 1x345x
+# (2)|(^) 12345 x1x345
+# (^)|(2) 12345 x1x345
+# (2)|($) 12345 1x345x
+# ($)|(2) 12345 1x345x
+# ((2)|(^)). 12345 xx45
+# ((^)|(2)). 12345 xx45
+# .((2)|($)) 12345 x34x
+# .(($)|(2)) 12345 x34x
+# (^)|6 12345 x12345
+# 6|(^) 12345 x12345
+# ($)|6 12345 12345x
+# 6|($) 12345 12345x
+# 2|6|(^) 12345 x1x345
+# 2|(^)|6 12345 x1x345
+# 6|2|(^) 12345 x1x345
+# 6|(^)|2 12345 x1x345
+# (^)|6|2 12345 x1x345
+# (^)|2|6 12345 x1x345
+# 2|6|($) 12345 1x345x
+# 2|($)|6 12345 1x345x
+# 6|2|($) 12345 1x345x
+# 6|($)|2 12345 1x345x
+# ($)|6|2 12345 1x345x
+# ($)|2|6 12345 1x345x
+# 2|4|(^) 12345 x1x3x5
+# 2|(^)|4 12345 x1x3x5
+# 4|2|(^) 12345 x1x3x5
+# 4|(^)|2 12345 x1x3x5
+# (^)|4|2 12345 x1x3x5
+# (^)|2|4 12345 x1x3x5
+# 2|4|($) 12345 1x3x5x
+# 2|($)|4 12345 1x3x5x
+# 4|2|($) 12345 1x3x5x
+# 4|($)|2 12345 1x3x5x
+# ($)|4|2 12345 1x3x5x
+# ($)|2|4 12345 1x3x5x
+# x{0}((2)|(^)) 12345 x1x345
+# x{0}((^)|(2)) 12345 x1x345
+# x{0}((2)|($)) 12345 1x345x
+# x{0}(($)|(2)) 12345 1x345x
+# x*((2)|(^)) 12345 x1x345
+# x*((^)|(2)) 12345 x1x345
+# x*((2)|($)) 12345 1x345x
+# x*(($)|(2)) 12345 1x345x
+# x{0}^ 12345 x12345
+# x{0}$ 12345 12345x
+# (x{0}^)|2 12345 x1x345
+# (x{0}$)|2 12345 1x345x
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+# I've attached a full copy of this e-mail in ZIP format
+# in case of e-mail transport errors corrupting the data.
+#
+# I've posted the same bug report to gnu.utils.bug and
+# it's being discussed in this thread on comp.lang.awk;
+#
+# From: laura@madonnaweb.com (laura fairhead)
+# Newsgroups: comp.lang.awk
+# Subject: bug in gawk3.1.0 regex code
+# Date: Wed, 08 May 2002 23:31:40 GMT
+# Message-ID: <3cd9b0f7.29675926@NEWS.CIS.DFN.DE>
+#
+#
+# byefrom
+#
+# Laura Fairhead
+#
+#
+#
+#
+# --------------------
+# talk21 your FREE portable and private address on the net at http://www.talk21.com
+# ----GgOuLpDpIyE--1020998322088--
+# Content-Type: : application/zip;; Name="COPY.ZIP"
+# Content-Transfer-Encoding: base64
+# Content-Disposition: attachment; filename="COPY.ZIP"
+#
+# UEsDBBQAAAAIALoaqiyj8d/bjwMAAKsaAAADAAAARklMrVjfa+JAEH4P5H8ISwrRU9EYfbheKBR6
+# xRcLvevbYbFtzsqJlBrpQr3722+zMWZ31pk1MaG0Q/m+nR87O9kvruM6/5p4XOc9WSTc05/l
+# +m2bSivhb8lzmrx43vw53c5X2f+etourHOc63XMe1wlmLQ8+g3AYjaTFD2ZplY9g+xRbWly3
+# NPastYMrQN9cs4DvHYz+dHbomY8SOTctGDlcQfXND1Uz6cK3EXcVdpY37ltSuB55u339cNtu
+# F76NPTudHYR0zS2RZ/sd1maHVLdYI/cp31b2PvFW72jkvIi2tLTI94nXY/eCfeZK8Ap7GO1b
+# u7QAO8+8FjsLfFx7OowtfW6dLYRv22wZ031uYYc7M/aK5xvEfjp7vDPnQxW2OZuqndDxWeyw
+# dt6y5rXPt5xrqG8bW9a8tm8ZN1q1UyYTXvNT2HjN7VWLLL3GR7pl9nlUkx1Z+5xm2/qcYsu4
+# z2KHtfOWNad6jR92jGN9jvm2sSNbn1vYlj4n2TLus9h4zW1s/tn/e3iHV55MOXumvUarsvVX
+# +OknNGfrr/AK7DbMulLkbZh1VTa8uFSLHF5cqlVt5tW9eWRsH2VbVY10rp+TCu9Q6Rxj2/Ju
+# SJE2KG5TqW57848/jS15fXM7mX66ztv7cp16j/FGGr8DdtEN+5uL7sD49WvNOkwGIv5KaS3+
+# FsJamLmyFkYmrFnLde6+/4hZl7mOH6yS9SJ9DR5bXwatmLHCrd/PivTxulwlwSJJV8t14n1j
+# abIRCfde5mm2iojx/ib2B5eTaeyHl3cPP2N/KNbsx5Op6yw226fg/qbDeIbNc/DoHAR6Mu2I
+# dTp+X/zEsTCvGPvK9j0govsrfxqqdJN9cKhMY0vilwdPOebmRwqIy4+x+Tni+Hrc/PKAAnGZ
+# 7pXH2fyaYK6X4+B9CcPBt/RRt9z8FoDhoOpH/QJ9j+KAkkf9As2O4oA6N/xy6RWo8OMoqLYN
+# 1DDipqo+joIqEGtQqDWJRibXK9oO6igMB1Uu2XeKZwwHlSuO0zue6idVGVE4VQPheeiVIc8F
+# sV6Bg6oRx+knkup3Kl8VR+Vb5qGru2N14SNTx2E4qNhwnH1/+chUYRROvfvjeejK6khdeLm/
+# +HoFDqolHGfdX17sG5WviqPyLXBQ1WB9D/ULjSvHH9ZXUJOgOKA+UL9AZ1A4dThTftXxTOWh
+# qgRs7kI9gF4gwM0fnVfgjo/F19A96T9QSwECFAAUAAAACAC6Gqoso/Hf248DAACrGgAAAwAA
+# AAAAAAABACAAAAAAAAAARklMUEsFBgAAAAABAAEAMQAAALADAAAAAA==
+# ----GgOuLpDpIyE--1020998322088----
+#
+#
+#
diff --git a/test/gsubtst3.in b/test/gsubtst3.in
new file mode 100644
index 00000000..2dcf75af
--- /dev/null
+++ b/test/gsubtst3.in
@@ -0,0 +1,57 @@
+(^) 12345 x12345
+($) 12345 12345x
+(^)|($) 12345 x12345x
+($)|(^) 12345 x12345x
+2 12345 1x345
+(^)|2 12345 x1x345
+2|(^) 12345 x1x345
+($)|2 12345 1x345x
+2|($) 12345 1x345x
+(2)|(^) 12345 x1x345
+(^)|(2) 12345 x1x345
+(2)|($) 12345 1x345x
+($)|(2) 12345 1x345x
+((2)|(^)). 12345 xx45
+((^)|(2)). 12345 xx45
+.((2)|($)) 12345 x34x
+.(($)|(2)) 12345 x34x
+(^)|6 12345 x12345
+6|(^) 12345 x12345
+($)|6 12345 12345x
+6|($) 12345 12345x
+2|6|(^) 12345 x1x345
+2|(^)|6 12345 x1x345
+6|2|(^) 12345 x1x345
+6|(^)|2 12345 x1x345
+(^)|6|2 12345 x1x345
+(^)|2|6 12345 x1x345
+2|6|($) 12345 1x345x
+2|($)|6 12345 1x345x
+6|2|($) 12345 1x345x
+6|($)|2 12345 1x345x
+($)|6|2 12345 1x345x
+($)|2|6 12345 1x345x
+2|4|(^) 12345 x1x3x5
+2|(^)|4 12345 x1x3x5
+4|2|(^) 12345 x1x3x5
+4|(^)|2 12345 x1x3x5
+(^)|4|2 12345 x1x3x5
+(^)|2|4 12345 x1x3x5
+2|4|($) 12345 1x3x5x
+2|($)|4 12345 1x3x5x
+4|2|($) 12345 1x3x5x
+4|($)|2 12345 1x3x5x
+($)|4|2 12345 1x3x5x
+($)|2|4 12345 1x3x5x
+x{0}((2)|(^)) 12345 x1x345
+x{0}((^)|(2)) 12345 x1x345
+x{0}((2)|($)) 12345 1x345x
+x{0}(($)|(2)) 12345 1x345x
+x*((2)|(^)) 12345 x1x345
+x*((^)|(2)) 12345 x1x345
+x*((2)|($)) 12345 1x345x
+x*(($)|(2)) 12345 1x345x
+x{0}^ 12345 x12345
+x{0}$ 12345 12345x
+(x{0}^)|2 12345 x1x345
+(x{0}$)|2 12345 1x345x
diff --git a/test/gsubtst3.ok b/test/gsubtst3.ok
new file mode 100644
index 00000000..190a20ac
--- /dev/null
+++ b/test/gsubtst3.ok
@@ -0,0 +1,60 @@
+regex input expected actual bug?
+
+-------------------------------------------------------------
+(^) 12345 x12345 x12345
+($) 12345 12345x 12345x
+(^)|($) 12345 x12345x x12345x
+($)|(^) 12345 x12345x x12345x
+2 12345 1x345 1x345
+(^)|2 12345 x1x345 x1x345
+2|(^) 12345 x1x345 x1x345
+($)|2 12345 1x345x 1x345x
+2|($) 12345 1x345x 1x345x
+(2)|(^) 12345 x1x345 x1x345
+(^)|(2) 12345 x1x345 x1x345
+(2)|($) 12345 1x345x 1x345x
+($)|(2) 12345 1x345x 1x345x
+((2)|(^)). 12345 xx45 xx45
+((^)|(2)). 12345 xx45 xx45
+.((2)|($)) 12345 x34x x34x
+.(($)|(2)) 12345 x34x x34x
+(^)|6 12345 x12345 x12345
+6|(^) 12345 x12345 x12345
+($)|6 12345 12345x 12345x
+6|($) 12345 12345x 12345x
+2|6|(^) 12345 x1x345 x1x345
+2|(^)|6 12345 x1x345 x1x345
+6|2|(^) 12345 x1x345 x1x345
+6|(^)|2 12345 x1x345 x1x345
+(^)|6|2 12345 x1x345 x1x345
+(^)|2|6 12345 x1x345 x1x345
+2|6|($) 12345 1x345x 1x345x
+2|($)|6 12345 1x345x 1x345x
+6|2|($) 12345 1x345x 1x345x
+6|($)|2 12345 1x345x 1x345x
+($)|6|2 12345 1x345x 1x345x
+($)|2|6 12345 1x345x 1x345x
+2|4|(^) 12345 x1x3x5 x1x3x5
+2|(^)|4 12345 x1x3x5 x1x3x5
+4|2|(^) 12345 x1x3x5 x1x3x5
+4|(^)|2 12345 x1x3x5 x1x3x5
+(^)|4|2 12345 x1x3x5 x1x3x5
+(^)|2|4 12345 x1x3x5 x1x3x5
+2|4|($) 12345 1x3x5x 1x3x5x
+2|($)|4 12345 1x3x5x 1x3x5x
+4|2|($) 12345 1x3x5x 1x3x5x
+4|($)|2 12345 1x3x5x 1x3x5x
+($)|4|2 12345 1x3x5x 1x3x5x
+($)|2|4 12345 1x3x5x 1x3x5x
+x{0}((2)|(^)) 12345 x1x345 x1x345
+x{0}((^)|(2)) 12345 x1x345 x1x345
+x{0}((2)|($)) 12345 1x345x 1x345x
+x{0}(($)|(2)) 12345 1x345x 1x345x
+x*((2)|(^)) 12345 x1x345 x1x345
+x*((^)|(2)) 12345 x1x345 x1x345
+x*((2)|($)) 12345 1x345x 1x345x
+x*(($)|(2)) 12345 1x345x 1x345x
+x{0}^ 12345 x12345 x12345
+x{0}$ 12345 12345x 12345x
+(x{0}^)|2 12345 x1x345 x1x345
+(x{0}$)|2 12345 1x345x 1x345x
diff --git a/test/gsubtst4.awk b/test/gsubtst4.awk
new file mode 100644
index 00000000..48b8413e
--- /dev/null
+++ b/test/gsubtst4.awk
@@ -0,0 +1,242 @@
+# From arnold Thu May 9 17:27:03 2002
+# Return-Path: <arnold@skeeve.com>
+# Received: (from arnold@localhost)
+# by skeeve.com (8.11.6/8.11.6) id g49ER3K27925
+# for arnold; Thu, 9 May 2002 17:27:03 +0300
+# Date: Thu, 9 May 2002 17:27:03 +0300
+# From: Aharon Robbins <arnold@skeeve.com>
+# Message-Id: <200205091427.g49ER3K27925@skeeve.com>
+# To: arnold@skeeve.com
+# Subject: fixme
+# X-SpamBouncer: 1.4 (10/07/01)
+# X-SBRule: Pattern Match (Other Patterns) (Score: 4850)
+# X-SBRule: Pattern Match (Spam Phone #) (Score: 0)
+# X-SBClass: Blocked
+# Status: RO
+#
+# Path: ord-read.news.verio.net!dfw-artgen!iad-peer.news.verio.net!news.verio.net!fu-berlin.de!uni-berlin.de!host213-120-137-48.in-addr.btopenworld.COM!not-for-mail
+# From: laura@madonnaweb.com (laura fairhead)
+# Newsgroups: comp.lang.awk
+# Subject: bug in gawk3.1.0 regex code
+# Date: Wed, 08 May 2002 23:31:40 GMT
+# Organization: that'll be the daewooo :)
+# Lines: 211
+# Message-ID: <3cd9b0f7.29675926@NEWS.CIS.DFN.DE>
+# Reply-To: laura@madonnaweb.com
+# NNTP-Posting-Host: host213-120-137-48.in-addr.btopenworld.com (213.120.137.48)
+# X-Trace: fu-berlin.de 1020900891 18168286 213.120.137.48 (16 [53286])
+# X-Newsreader: Forte Free Agent 1.21/32.243
+# Xref: dfw-artgen comp.lang.awk:13059
+#
+#
+# I believe I've just found a bug in gawk3.1.0 implementation of
+# extended regular expressions. It seems to be down to the alternation
+# operator; when using an end anchor '$' as a subexpression in an
+# alternation and the entire matched RE is a nul-string it fails
+# to match the end of string, for example;
+#
+# gsub(/$|2/,"x")
+# print
+#
+# input = 12345
+# expected output = 1x345x
+# actual output = 1x345
+#
+# The start anchor '^' always works as expected;
+#
+# gsub(/^|2/,"x")
+# print
+#
+# input = 12345
+# expected output = x1x345
+# actual output = x1x345
+#
+# This was with POSIX compliance enabled althought that doesn't
+# effect the result.
+#
+# I checked on gawk3.0.6 and got exactly the same results however
+# gawk2.15.6 gives the expected results.
+#
+# I'm about to post a bug report about this into gnu.utils.bug
+# but I thought I'd post it here first in case anyone has
+# any input/comments/whatever ....
+#
+# Complete test results were as follows;
+#
+# input 12345
+# output gsub(/regex/,"x",input)
+#
+# regex output
+# (^) x12345
+# ($) 12345x
+# (^)|($) x12345x
+# ($)|(^) x12345x
+# (2) 1x345
+# (^)|2 x1x345
+# 2|(^) x1x345
+# ($)|2 1x345
+# 2|($) 1x345
+# (2)|(^) x1x345
+# (^)|(2) x1x345
+# (2)|($) 1x345
+# ($)|(2) 1x345
+# .((2)|(^)) x345
+# .((^)|(2)) x345
+# .((2)|($)) x34x
+# .(($)|(2)) x34x
+# x{0}((2)|(^)) x1x345
+# x{0}((^)|(2)) x1x345
+# x{0}((2)|($)) 1x345
+# x{0}(($)|(2)) 1x345
+# x*((2)|(^)) x1x345
+# x*((^)|(2)) x1x345
+# x*((2)|($)) 1x345
+# x*(($)|(2)) 1x345
+#
+# Here's the test program I used, a few of the cases use ERE {n[,[m]]}
+# operators so that will have to be commented out or have a check
+# added or something (should have put a conditional in I know... ;-)
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+BEGIN{
+
+TESTSTR="12345"
+
+print "input "TESTSTR
+print "output gsub(/regex/,\"x\",input)"
+print ""
+
+print "regex output"
+$0=TESTSTR
+gsub(/(^)/,"x")
+print "(^) "$0
+
+$0=TESTSTR
+gsub(/($)/,"x")
+print "($) "$0
+
+$0=TESTSTR
+gsub(/(^)|($)/,"x")
+print "(^)|($) "$0
+
+$0=TESTSTR
+gsub(/($)|(^)/,"x")
+print "($)|(^) "$0
+
+$0=TESTSTR
+gsub(/2/,"x")
+print "(2) "$0
+
+$0=TESTSTR
+gsub(/(^)|2/,"x")
+print "(^)|2 "$0
+
+$0=TESTSTR
+gsub(/2|(^)/,"x")
+print "2|(^) "$0
+
+$0=TESTSTR
+gsub(/($)|2/,"x")
+print "($)|2 "$0
+
+$0=TESTSTR
+gsub(/2|($)/,"x")
+print "2|($) "$0
+
+$0=TESTSTR
+gsub(/(2)|(^)/,"x")
+print "(2)|(^) "$0
+
+$0=TESTSTR
+gsub(/(^)|(2)/,"x")
+print "(^)|(2) "$0
+
+$0=TESTSTR
+gsub(/(2)|($)/,"x")
+print "(2)|($) "$0
+
+$0=TESTSTR
+gsub(/($)|(2)/,"x")
+print "($)|(2) "$0
+
+$0=TESTSTR
+gsub(/.((2)|(^))/,"x")
+print ".((2)|(^)) "$0
+
+$0=TESTSTR
+gsub(/.((^)|(2))/,"x")
+print ".((^)|(2)) "$0
+
+$0=TESTSTR
+gsub(/.((2)|($))/,"x")
+print ".((2)|($)) "$0
+
+$0=TESTSTR
+gsub(/.(($)|(2))/,"x")
+print ".(($)|(2)) "$0
+
+$0=TESTSTR
+gsub(/x{0}((2)|(^))/,"x")
+print "x{0}((2)|(^)) "$0
+
+$0=TESTSTR
+gsub(/x{0}((^)|(2))/,"x")
+print "x{0}((^)|(2)) "$0
+
+$0=TESTSTR
+gsub(/x{0}((2)|($))/,"x")
+print "x{0}((2)|($)) "$0
+
+$0=TESTSTR
+gsub(/x{0}(($)|(2))/,"x")
+print "x{0}(($)|(2)) "$0
+
+$0=TESTSTR
+gsub(/x*((2)|(^))/,"x")
+print "x*((2)|(^)) "$0
+
+$0=TESTSTR
+gsub(/x*((^)|(2))/,"x")
+print "x*((^)|(2)) "$0
+
+$0=TESTSTR
+gsub(/x*((2)|($))/,"x")
+print "x*((2)|($)) "$0
+
+$0=TESTSTR
+gsub(/x*(($)|(2))/,"x")
+print "x*(($)|(2)) "$0
+
+$0=TESTSTR
+gsub(/x{0}^/,"x")
+print "x{0}^ "$0
+
+$0=TESTSTR
+gsub(/x{0}$/,"x")
+print "x{0}$ "$0
+
+$0=TESTSTR
+gsub(/(x{0}^)|2/,"x")
+print "(x{0}^)|2 "$0
+
+$0=TESTSTR
+gsub(/(x{0}$)|2/,"x")
+print "(x{0}$)|2 "$0
+
+
+}
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+# byefrom
+#
+# --
+# laura fairhead # laura@madonnaweb.com http://lf.8k.com
+# # if you are bored crack my sig.
+# 1F8B0808CABB793C0000666667002D8E410E83300C04EF91F2877D00CA138A7A
+# EAA98F30C494480157B623C4EF1B508FDED1CEFA9152A23DE35D661593C5318E
+# 630C313CD701BE92E390563326EE17A3CA818F5266E4C2461547F1F5267659CA
+# 8EE2092F76C329ED02CA430C5373CC62FF94BAC6210B36D9F9BC4AB53378D978
+# 80F2978A1A6E5D6F5133B67B6113178DC1059526698AFE5C17A5187E7D930492
+#
diff --git a/test/gsubtst4.ok b/test/gsubtst4.ok
new file mode 100644
index 00000000..6d0e490a
--- /dev/null
+++ b/test/gsubtst4.ok
@@ -0,0 +1,33 @@
+input 12345
+output gsub(/regex/,"x",input)
+
+regex output
+(^) x12345
+($) 12345x
+(^)|($) x12345x
+($)|(^) x12345x
+(2) 1x345
+(^)|2 x1x345
+2|(^) x1x345
+($)|2 1x345x
+2|($) 1x345x
+(2)|(^) x1x345
+(^)|(2) x1x345
+(2)|($) 1x345x
+($)|(2) 1x345x
+.((2)|(^)) x345
+.((^)|(2)) x345
+.((2)|($)) x34x
+.(($)|(2)) x34x
+x{0}((2)|(^)) 12345
+x{0}((^)|(2)) 12345
+x{0}((2)|($)) 12345
+x{0}(($)|(2)) 12345
+x*((2)|(^)) x1x345
+x*((^)|(2)) x1x345
+x*((2)|($)) 1x345x
+x*(($)|(2)) 1x345x
+x{0}^ 12345
+x{0}$ 12345
+(x{0}^)|2 1x345
+(x{0}$)|2 1x345
diff --git a/test/icasefs.awk b/test/icasefs.awk
new file mode 100644
index 00000000..86481d86
--- /dev/null
+++ b/test/icasefs.awk
@@ -0,0 +1,43 @@
+BEGIN {
+ # 1. Should print aCa
+ IGNORECASE = 1
+ FS = "[c]"
+ IGNORECASE = 0
+ $0 = "aCa"
+ print $1
+
+ # 2. Should print a
+ IGNORECASE = 1
+ FS = "[c]"
+ $0 = "aCa"
+ print $1
+
+ # 3. Should print a
+ IGNORECASE = 1
+ FS = "C"
+ IGNORECASE = 0
+ $0 = "aCa"
+ print $1
+
+ # 4. Should print aCa
+ IGNORECASE = 1
+ FS = "c"
+ $0 = "aCa"
+ print $1
+
+ # 5. Should print aCa
+ FS = "xy"
+ IGNORECASE = 0
+ FS = "c"
+ IGNORECASE = 1
+ $0 = "aCa"
+ print $1
+
+ # 6. Should print aCa
+ FS = "xy"
+ IGNORECASE = 0
+ FS = "c"
+ IGNORECASE = 1
+ split("aCa",a)
+ print a[1]
+}
diff --git a/test/icasefs.ok b/test/icasefs.ok
new file mode 100644
index 00000000..658fac78
--- /dev/null
+++ b/test/icasefs.ok
@@ -0,0 +1,6 @@
+aCa
+a
+a
+aCa
+aCa
+aCa
diff --git a/test/icasers.awk b/test/icasers.awk
new file mode 100644
index 00000000..933e3bf7
--- /dev/null
+++ b/test/icasers.awk
@@ -0,0 +1,2 @@
+BEGIN { RS = "[[:upper:]]+" }
+{ print ; IGNORECASE = ! IGNORECASE }
diff --git a/test/icasers.in b/test/icasers.in
new file mode 100644
index 00000000..b3476994
--- /dev/null
+++ b/test/icasers.in
@@ -0,0 +1 @@
+1111AAAA2222bbbb \ No newline at end of file
diff --git a/test/icasers.ok b/test/icasers.ok
new file mode 100644
index 00000000..4f142ee3
--- /dev/null
+++ b/test/icasers.ok
@@ -0,0 +1,2 @@
+1111
+2222
diff --git a/test/ignrcase.awk b/test/ignrcase.awk
new file mode 100644
index 00000000..61d7a833
--- /dev/null
+++ b/test/ignrcase.awk
@@ -0,0 +1,2 @@
+BEGIN { IGNORECASE = 1 }
+{ sub(/y/, ""); print }
diff --git a/test/ignrcase.in b/test/ignrcase.in
new file mode 100644
index 00000000..aba8e51e
--- /dev/null
+++ b/test/ignrcase.in
@@ -0,0 +1 @@
+xYz
diff --git a/test/inputred.awk b/test/inputred.awk
new file mode 100644
index 00000000..6524df62
--- /dev/null
+++ b/test/inputred.awk
@@ -0,0 +1 @@
+BEGIN { print getline < "file" ".txt" }
diff --git a/test/inputred.ok b/test/inputred.ok
new file mode 100644
index 00000000..7de4d5d7
--- /dev/null
+++ b/test/inputred.ok
@@ -0,0 +1 @@
+-1.txt
diff --git a/test/longwrds.awk b/test/longwrds.awk
index f6a7816d..d496ac79 100644
--- a/test/longwrds.awk
+++ b/test/longwrds.awk
@@ -14,7 +14,8 @@ END {
for (x in used)
if (length(x) > 10) {
++num_long_words
- print x
+ print x | "LC_ALL=C sort"
}
- print num_long_words, "long words"
+ print(num_long_words, "long words") | "LC_ALL=C sort"
+ close("LC_ALL=C sort")
}
diff --git a/test/manpage b/test/longwrds.in
index 09c39485..09c39485 100644
--- a/test/manpage
+++ b/test/longwrds.in
diff --git a/test/manyfiles.ok b/test/manyfiles.ok
new file mode 100644
index 00000000..d00491fd
--- /dev/null
+++ b/test/manyfiles.ok
@@ -0,0 +1 @@
+1
diff --git a/test/match1.awk b/test/match1.awk
new file mode 100644
index 00000000..6d4791be
--- /dev/null
+++ b/test/match1.awk
@@ -0,0 +1,9 @@
+BEGIN {
+ data = "foooobazbarrrrr"
+ match(data, /(fo+).+(bar*)/, arr)
+ for (i = 0; i in arr; i++) {
+ printf("arr[%d] = \"%s\"\n", i, arr[i])
+ printf("arr[%d, \"start\"] = %s, arr[%d, \"length\"] = %s\n",
+ i, arr[i, "start"], i, arr[i, "length"])
+ }
+}
diff --git a/test/match1.ok b/test/match1.ok
new file mode 100644
index 00000000..4490db2a
--- /dev/null
+++ b/test/match1.ok
@@ -0,0 +1,6 @@
+arr[0] = "foooobazbarrrrr"
+arr[0, "start"] = 1, arr[0, "length"] = 15
+arr[1] = "foooo"
+arr[1, "start"] = 1, arr[1, "length"] = 5
+arr[2] = "barrrrr"
+arr[2, "start"] = 9, arr[2, "length"] = 7
diff --git a/test/negexp.awk b/test/negexp.awk
new file mode 100644
index 00000000..3b3a3c06
--- /dev/null
+++ b/test/negexp.awk
@@ -0,0 +1 @@
+BEGIN { a = -2; print 10^a }
diff --git a/test/nfldstr.awk b/test/nfldstr.awk
new file mode 100644
index 00000000..09b4a2b8
--- /dev/null
+++ b/test/nfldstr.awk
@@ -0,0 +1,13 @@
+$1 == 0 {
+ print "bug"
+}
+{
+ $0 = "0"
+ if (!$0)
+ print "another bug"
+ $0 = a = "0"
+ if (!$0)
+ print "yet another bug"
+ if ($1)
+ print "a buggie"
+}
diff --git a/test/nfldstr.in b/test/nfldstr.in
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/test/nfldstr.in
@@ -0,0 +1 @@
+
diff --git a/test/nfneg.awk b/test/nfneg.awk
new file mode 100644
index 00000000..6d54ee0c
--- /dev/null
+++ b/test/nfneg.awk
@@ -0,0 +1 @@
+BEGIN { NF -= 2 ; print }
diff --git a/test/nfneg.ok b/test/nfneg.ok
new file mode 100644
index 00000000..bcdb0376
--- /dev/null
+++ b/test/nfneg.ok
@@ -0,0 +1,2 @@
+gawk: nfneg.awk:1: fatal: NF set to negative value
+EXIT CODE: 2
diff --git a/test/noeffect.awk b/test/noeffect.awk
index b375a4c2..b67a5c57 100644
--- a/test/noeffect.awk
+++ b/test/noeffect.awk
@@ -1,4 +1,5 @@
BEGIN {
s == "hello, world";
- print s
+ s + 1
+ ;;
}
diff --git a/test/noeffect.ok b/test/noeffect.ok
index ea2d0965..d2da47a2 100644
--- a/test/noeffect.ok
+++ b/test/noeffect.ok
@@ -1,4 +1,4 @@
gawk: noeffect.awk:3: warning: statement may have no effect
+gawk: noeffect.awk:4: warning: statement may have no effect
gawk: noeffect.awk:2: warning: reference to uninitialized variable `s'
gawk: noeffect.awk:3: warning: reference to uninitialized variable `s'
-
diff --git a/test/noloop1.awk b/test/noloop1.awk
new file mode 100644
index 00000000..ae461e34
--- /dev/null
+++ b/test/noloop1.awk
@@ -0,0 +1,70 @@
+# From jhart@avcnet.bates.edu Sun Oct 6 16:05:21 2002
+# Return-Path: <jhart@avcnet.bates.edu>
+# Received: from localhost (skeeve [127.0.0.1])
+# by skeeve.com (8.11.6/8.11.6) with ESMTP id g96D5Jf28053
+# for <arnold@localhost>; Sun, 6 Oct 2002 16:05:21 +0300
+# Received: from actcom.co.il [192.114.47.1]
+# by localhost with POP3 (fetchmail-5.9.0)
+# for arnold@localhost (single-drop); Sun, 06 Oct 2002 16:05:21 +0300 (IDT)
+# Received: by actcom.co.il (mbox arobbins)
+# (with Cubic Circle's cucipop (v1.31 1998/05/13) Sun Oct 6 16:06:39 2002)
+# X-From_: jhart@avcnet.bates.edu Sun Oct 6 15:31:59 2002
+# Received: from lmail.actcom.co.il by actcom.co.il with ESMTP
+# (8.11.6/actcom-0.2) id g96CVrS27315 for <arobbins@actcom.co.il>;
+# Sun, 6 Oct 2002 15:31:54 +0300 (EET DST)
+# (rfc931-sender: mail.actcom.co.il [192.114.47.13])
+# Received: from f7.net (consort.superb.net [209.61.216.22])
+# by lmail.actcom.co.il (8.11.6/8.11.6) with ESMTP id g96CVqY01629
+# for <arobbins@actcom.co.il>; Sun, 6 Oct 2002 15:31:52 +0300
+# Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
+# by f7.net (8.11.6/8.11.6) with ESMTP id g96CVp418974
+# for <arnold@skeeve.com>; Sun, 6 Oct 2002 08:31:51 -0400
+# Received: from monty-python.gnu.org ([199.232.76.173])
+# by fencepost.gnu.org with esmtp (Exim 4.10)
+# id 17yAZa-00055o-00
+# for bug-gawk@gnu.org; Sun, 06 Oct 2002 08:31:50 -0400
+# Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10)
+# id 17yAZE-0007eB-00
+# for bug-gawk@gnu.org; Sun, 06 Oct 2002 08:31:29 -0400
+# Received: from avcnet.bates.edu ([134.181.128.62])
+# by monty-python.gnu.org with esmtp (Exim 4.10)
+# id 17yAZ9-0007X3-00
+# for bug-gawk@gnu.org; Sun, 06 Oct 2002 08:31:23 -0400
+# Received: from a5514a.bates.edu (www.bates.edu [134.181.128.62])
+# by avcnet.bates.edu (8.9.3/8.9.3) with ESMTP id IAA05400
+# for <bug-gawk@gnu.org>; Sun, 6 Oct 2002 08:31:20 -0400
+# Date: Sun, 6 Oct 2002 08:36:54 -0400
+# Mime-Version: 1.0 (Apple Message framework v482)
+# Content-Type: text/plain; charset=US-ASCII; format=flowed
+# Subject: Infinite loop in sub/gsub
+# From: jhart@avcnet.bates.edu
+# To: bug-gawk@gnu.org
+# Content-Transfer-Encoding: 7bit
+# Message-Id: <4BC4A4F0-D928-11D6-8E78-00039384A9CC@mail.avcnet.org>
+# X-Mailer: Apple Mail (2.482)
+# X-Spam-Status: No, hits=0.3 required=5.0
+# tests=NO_REAL_NAME,SPAM_PHRASE_00_01,USER_AGENT_APPLEMAIL
+# version=2.41
+# X-Spam-Level:
+# X-SpamBouncer: 1.4 (10/07/01)
+# X-SBClass: OK
+# Status: RO
+#
+# This command line:
+#
+# echo "''Italics with an apostrophe'' embedded''"|gawk -f test.awk
+#
+# where test.awk contains this instruction:
+#
+/''/ { sub(/''(.?[^']+)*''/, "<em>&</em>"); }
+#
+# puts gawk 3.11 into an infinite loop. Whereas, this command works:
+#
+# echo "''Italics with an apostrophe' embedded''"|gawk -f test.awk
+#
+#
+#
+# Platform: Mac OS X 10.1.5/Darwin Kernel Version 5.5: Thu May 30 14:51:26
+# PDT 2002; root:xnu/xnu-201.42.3.obj~1/RELEASE_PPC
+#
+#
diff --git a/test/noloop1.in b/test/noloop1.in
new file mode 100644
index 00000000..da2c2f24
--- /dev/null
+++ b/test/noloop1.in
@@ -0,0 +1 @@
+''Italics with an apostrophe'' embedded''
diff --git a/test/noloop1.ok b/test/noloop1.ok
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/noloop1.ok
diff --git a/test/noloop2.awk b/test/noloop2.awk
new file mode 100644
index 00000000..ae461e34
--- /dev/null
+++ b/test/noloop2.awk
@@ -0,0 +1,70 @@
+# From jhart@avcnet.bates.edu Sun Oct 6 16:05:21 2002
+# Return-Path: <jhart@avcnet.bates.edu>
+# Received: from localhost (skeeve [127.0.0.1])
+# by skeeve.com (8.11.6/8.11.6) with ESMTP id g96D5Jf28053
+# for <arnold@localhost>; Sun, 6 Oct 2002 16:05:21 +0300
+# Received: from actcom.co.il [192.114.47.1]
+# by localhost with POP3 (fetchmail-5.9.0)
+# for arnold@localhost (single-drop); Sun, 06 Oct 2002 16:05:21 +0300 (IDT)
+# Received: by actcom.co.il (mbox arobbins)
+# (with Cubic Circle's cucipop (v1.31 1998/05/13) Sun Oct 6 16:06:39 2002)
+# X-From_: jhart@avcnet.bates.edu Sun Oct 6 15:31:59 2002
+# Received: from lmail.actcom.co.il by actcom.co.il with ESMTP
+# (8.11.6/actcom-0.2) id g96CVrS27315 for <arobbins@actcom.co.il>;
+# Sun, 6 Oct 2002 15:31:54 +0300 (EET DST)
+# (rfc931-sender: mail.actcom.co.il [192.114.47.13])
+# Received: from f7.net (consort.superb.net [209.61.216.22])
+# by lmail.actcom.co.il (8.11.6/8.11.6) with ESMTP id g96CVqY01629
+# for <arobbins@actcom.co.il>; Sun, 6 Oct 2002 15:31:52 +0300
+# Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
+# by f7.net (8.11.6/8.11.6) with ESMTP id g96CVp418974
+# for <arnold@skeeve.com>; Sun, 6 Oct 2002 08:31:51 -0400
+# Received: from monty-python.gnu.org ([199.232.76.173])
+# by fencepost.gnu.org with esmtp (Exim 4.10)
+# id 17yAZa-00055o-00
+# for bug-gawk@gnu.org; Sun, 06 Oct 2002 08:31:50 -0400
+# Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10)
+# id 17yAZE-0007eB-00
+# for bug-gawk@gnu.org; Sun, 06 Oct 2002 08:31:29 -0400
+# Received: from avcnet.bates.edu ([134.181.128.62])
+# by monty-python.gnu.org with esmtp (Exim 4.10)
+# id 17yAZ9-0007X3-00
+# for bug-gawk@gnu.org; Sun, 06 Oct 2002 08:31:23 -0400
+# Received: from a5514a.bates.edu (www.bates.edu [134.181.128.62])
+# by avcnet.bates.edu (8.9.3/8.9.3) with ESMTP id IAA05400
+# for <bug-gawk@gnu.org>; Sun, 6 Oct 2002 08:31:20 -0400
+# Date: Sun, 6 Oct 2002 08:36:54 -0400
+# Mime-Version: 1.0 (Apple Message framework v482)
+# Content-Type: text/plain; charset=US-ASCII; format=flowed
+# Subject: Infinite loop in sub/gsub
+# From: jhart@avcnet.bates.edu
+# To: bug-gawk@gnu.org
+# Content-Transfer-Encoding: 7bit
+# Message-Id: <4BC4A4F0-D928-11D6-8E78-00039384A9CC@mail.avcnet.org>
+# X-Mailer: Apple Mail (2.482)
+# X-Spam-Status: No, hits=0.3 required=5.0
+# tests=NO_REAL_NAME,SPAM_PHRASE_00_01,USER_AGENT_APPLEMAIL
+# version=2.41
+# X-Spam-Level:
+# X-SpamBouncer: 1.4 (10/07/01)
+# X-SBClass: OK
+# Status: RO
+#
+# This command line:
+#
+# echo "''Italics with an apostrophe'' embedded''"|gawk -f test.awk
+#
+# where test.awk contains this instruction:
+#
+/''/ { sub(/''(.?[^']+)*''/, "<em>&</em>"); }
+#
+# puts gawk 3.11 into an infinite loop. Whereas, this command works:
+#
+# echo "''Italics with an apostrophe' embedded''"|gawk -f test.awk
+#
+#
+#
+# Platform: Mac OS X 10.1.5/Darwin Kernel Version 5.5: Thu May 30 14:51:26
+# PDT 2002; root:xnu/xnu-201.42.3.obj~1/RELEASE_PPC
+#
+#
diff --git a/test/noloop2.in b/test/noloop2.in
new file mode 100644
index 00000000..b5cb226a
--- /dev/null
+++ b/test/noloop2.in
@@ -0,0 +1 @@
+''Italics with an apostrophe' embedded''
diff --git a/test/noloop2.ok b/test/noloop2.ok
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/noloop2.ok
diff --git a/test/noparms.ok b/test/noparms.ok
index 4c934c38..504c4e41 100644
--- a/test/noparms.ok
+++ b/test/noparms.ok
@@ -1,4 +1,5 @@
gawk: noparms.awk:1: function x(a, b, c , ,) {}
-gawk: noparms.awk:1: ^ parse error
+gawk: noparms.awk:1: ^ syntax error
gawk: noparms.awk:1: function x(a, b, c , ,) {}
-gawk: noparms.awk:1: ^ parse error
+gawk: noparms.awk:1: ^ syntax error
+EXIT CODE: 1
diff --git a/test/nulrsend.awk b/test/nulrsend.awk
new file mode 100644
index 00000000..ef70b81b
--- /dev/null
+++ b/test/nulrsend.awk
@@ -0,0 +1,112 @@
+# From murata@nips.ac.jp Tue Aug 6 08:02:14 2002
+# Return-Path: <murata@nips.ac.jp>
+# Received: from localhost (aahz [127.0.0.1])
+# by skeeve.com (8.11.2/8.11.2) with ESMTP id g7652Ej01784
+# for <arnold@localhost>; Tue, 6 Aug 2002 08:02:14 +0300
+# Received: from actcom.co.il [192.114.47.1]
+# by localhost with POP3 (fetchmail-5.7.4)
+# for arnold@localhost (single-drop); Mon, 05 Aug 2002 22:02:14 -0700 (PDT)
+# Received: by actcom.co.il (mbox arobbins)
+# (with Cubic Circle's cucipop (v1.31 1998/05/13) Tue Aug 6 08:13:06 2002)
+# X-From_: murata@nips.ac.jp Tue Aug 6 07:26:32 2002
+# Received: from lmail.actcom.co.il by actcom.co.il with ESMTP
+# (8.11.6/actcom-0.2) id g764QTu27770 for <arobbins@actcom.co.il>;
+# Tue, 6 Aug 2002 07:26:30 +0300 (EET DST)
+# (rfc931-sender: mail.actcom.co.il [192.114.47.13])
+# Received: from f7.net (consort.superb.net [209.61.216.22])
+# by lmail.actcom.co.il (8.11.6/8.11.6) with ESMTP id g764QRi04673
+# for <arobbins@actcom.co.il>; Tue, 6 Aug 2002 07:26:28 +0300
+# Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
+# by f7.net (8.11.6/8.11.6) with ESMTP id g764QQ920486
+# for <arnold@skeeve.com>; Tue, 6 Aug 2002 00:26:26 -0400
+# Received: from ccms.nips.ac.jp ([133.48.72.2])
+# by fencepost.gnu.org with smtp (Exim 3.35 #1 (Debian))
+# id 17bvvL-00011b-00
+# for <bug-gawk@gnu.org>; Tue, 06 Aug 2002 00:26:23 -0400
+# Received: (from murata@localhost)
+# by ccms.nips.ac.jp (8.9.3+3.2W/3.7W) id NAA01026;
+# Tue, 6 Aug 2002 13:26:21 +0900
+# Date: Tue, 6 Aug 2002 13:26:21 +0900
+# Message-Id: <200208060426.NAA01026@ccms.nips.ac.jp>
+# To: bug-gawk@gnu.org
+# Cc: murata@nips.ac.jp
+# Subject: Bug Report (gawk)
+# From: murata@nips.ac.jp (MURATA Yasuhisa)
+# Mime-Version: 1.0
+# Content-Type: text/plain; charset=US-ASCII
+# X-Mailer: mnews [version 1.21PL5] 1999-04/04(Sun)
+#
+# Hello, I report a bug.
+#
+#
+# == PROGRAM (filename: atest.awk) ==
+BEGIN {
+ RS=""
+}
+
+NR==1 {
+ print 1
+ RS="\n"
+ next
+}
+
+NR==2 {
+ print 2
+ RS=""
+ next
+}
+
+NR==3 {
+ print 3
+ RS="\n"
+ next
+}
+# ====
+#
+# == DATA (filename: atest.txt) ==
+# 1111
+#
+# 2222
+#
+# ====
+# note: last line is "\n".
+#
+#
+# == RUN (gawk) ==
+# > gawk -f atest.awk atest.txt
+# 1
+# 2
+# (no stop!)
+# ====
+#
+# == RUN (nawk) ==
+# > nawk -f atest.awk atest.txt
+# 1
+# 2
+# 3
+# ====
+#
+# == VERSION ==
+# > gawk --version
+# GNU Awk 3.1.1
+# Copyright (C) 1989, 1991-2002 Free Software Foundation.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# ==
+#
+# --
+# MURATA Yasuhisa, Technical Staff
+# National Institute for Physiological Sciences
+# E-mail: murata@nips.ac.jp
diff --git a/test/nulrsend.in b/test/nulrsend.in
new file mode 100644
index 00000000..af3eba16
--- /dev/null
+++ b/test/nulrsend.in
@@ -0,0 +1,4 @@
+1111
+
+2222
+
diff --git a/test/nulrsend.ok b/test/nulrsend.ok
new file mode 100644
index 00000000..1191247b
--- /dev/null
+++ b/test/nulrsend.ok
@@ -0,0 +1,2 @@
+1
+2
diff --git a/test/paramdup.ok b/test/paramdup.ok
index 0308cc8c..9a9df807 100644
--- a/test/paramdup.ok
+++ b/test/paramdup.ok
@@ -1,2 +1,3 @@
gawk: paramdup.awk:4: error: function `foo': parameter #4, `b', duplicates parameter #2
gawk: paramdup.awk:4: error: function `foo': parameter #5, `a', duplicates parameter #1
+EXIT CODE: 1
diff --git a/test/parseme.ok b/test/parseme.ok
index f08fee66..5e6552a3 100644
--- a/test/parseme.ok
+++ b/test/parseme.ok
@@ -1,3 +1,4 @@
gawk: parseme.awk:1: BEGIN { toupper(substr*line,1,12)) }
-gawk: parseme.awk:1: ^ parse error
+gawk: parseme.awk:1: ^ syntax error
gawk: parseme.awk:1: fatal: 0 is invalid as number of arguments for toupper
+EXIT CODE: 2
diff --git a/test/posix.in b/test/posix.in
new file mode 100644
index 00000000..c16777b8
--- /dev/null
+++ b/test/posix.in
@@ -0,0 +1 @@
+1:2,3 4
diff --git a/test/poundbang.awk b/test/poundbang.awk
index d60652e3..a6440fff 100755
--- a/test/poundbang.awk
+++ b/test/poundbang.awk
@@ -1,3 +1,2 @@
#! /tmp/gawk -f
- { ccount += length($0) }
-END { printf "average line length is %2.4f\n", ccount/NR}
+{ print }
diff --git a/test/poundbang.ok b/test/poundbang.ok
deleted file mode 100644
index 143e28dd..00000000
--- a/test/poundbang.ok
+++ /dev/null
@@ -1 +0,0 @@
-average line length is 32.6667
diff --git a/test/prec.awk b/test/prec.awk
new file mode 100644
index 00000000..8b377348
--- /dev/null
+++ b/test/prec.awk
@@ -0,0 +1,7 @@
+# check the precedence of operators:
+BEGIN {
+ $1 = i = 1
+ $+i++
+ $- -i++
+ print
+}
diff --git a/test/prec.ok b/test/prec.ok
new file mode 100644
index 00000000..d00491fd
--- /dev/null
+++ b/test/prec.ok
@@ -0,0 +1 @@
+1
diff --git a/test/printf0.awk b/test/printf0.awk
new file mode 100644
index 00000000..ac8ad3c2
--- /dev/null
+++ b/test/printf0.awk
@@ -0,0 +1,5 @@
+BEGIN {
+ # bwk accepts this silently:
+ printf
+ print "X"
+}
diff --git a/test/printf0.ok b/test/printf0.ok
new file mode 100644
index 00000000..62d8fe9f
--- /dev/null
+++ b/test/printf0.ok
@@ -0,0 +1 @@
+X
diff --git a/test/prmarscl.ok b/test/prmarscl.ok
index 1c8db51e..a0f7ab81 100644
--- a/test/prmarscl.ok
+++ b/test/prmarscl.ok
@@ -1 +1,2 @@
gawk: prmarscl.awk:3: fatal: attempt to use scalar parameter `a' as an array
+EXIT CODE: 2
diff --git a/test/prmreuse.awk b/test/prmreuse.awk
index 37e06f59..c1ffa179 100644
--- a/test/prmreuse.awk
+++ b/test/prmreuse.awk
@@ -1,4 +1,4 @@
-# from Pat Rankin, rankin@eql.caltech.edu
+# from Pat Rankin, rankin@eql.caltech.edu, now rankin@pactechdata.com
BEGIN { dummy(1); legit(); exit }
diff --git a/test/rebuf.awk b/test/rebuf.awk
new file mode 100644
index 00000000..69b5f057
--- /dev/null
+++ b/test/rebuf.awk
@@ -0,0 +1,73 @@
+# From lole@epost.de Wed Sep 4 09:54:19 IDT 2002
+# Article: 14288 of comp.lang.awk
+# Path: iad-read.news.verio.net!dfw-artgen!iad-peer.news.verio.net!news.verio.net!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!213.70.124.113!not-for-mail
+# From: LorenzAtWork <familie.lenhardt@epost.de>
+# Newsgroups: comp.lang.awk
+# Subject: bug in gawk 3.1.1?
+# Date: Wed, 28 Aug 2002 10:34:50 +0200
+# Lines: 45
+# Message-ID: <7g1pmukv07c56ep3qav3uebnipdaohqh2l@4ax.com>
+# Reply-To: lole@epost.de
+# NNTP-Posting-Host: 213.70.124.113
+# Mime-Version: 1.0
+# Content-Type: text/plain; charset=us-ascii
+# Content-Transfer-Encoding: 7bit
+# X-Trace: fu-berlin.de 1030523788 53278293 213.70.124.113 (16 [68559])
+# X-Newsreader: Forte Agent 1.91/32.564
+# Xref: dfw-artgen comp.lang.awk:14288
+#
+# hello all,
+#
+# I'm using the following script
+#
+BEGIN {
+ RS="ti1\n(dwv,)?"
+ s = 0
+ i = 0
+}
+{
+ if ($1 != "")
+ s = $1
+ print ++i, s
+}
+#
+# to extract values from a file of the form
+#
+# ti1
+# dwv,98.22
+# ti1
+# dwv,103.08
+# ti1
+# ti1
+# dwv,196.25
+# ti1
+# dwv,210.62
+# ti1
+# dwv,223.53
+#
+# The desired result for this example looks like
+#
+# 1 0
+# 2 98.22
+# 3 103.08
+# 4 103.08
+# 5 196.25
+# 6 210.62
+# 7 223.53
+#
+# The script work fine the most time, but when run on the attached file
+# (sorry for the size, but the error would not appear with less data) I
+# get some (three with the attached file) lines that look like
+#
+# 1262 dwv,212.97
+# 1277 dwv,174.33
+# 1279 dwv,151.79
+#
+# I can't think of a other reason for this than a bug in gawk!
+#
+# I'm running gawk 3.1.1 on winnt 4.0
+#
+# best regards
+# Lorenz
+#
+#
diff --git a/test/rebuf.in b/test/rebuf.in
new file mode 100644
index 00000000..46d22107
--- /dev/null
+++ b/test/rebuf.in
@@ -0,0 +1,2350 @@
+ti1
+dwv,214.59
+ti1
+dwv,230.31
+ti1
+dwv,242.64
+ti1
+dwv,253.94
+ti1
+dwv,264.33
+ti1
+dwv,270.94
+ti1
+dwv,273.52
+ti1
+dwv,270.08
+ti1
+dwv,263.19
+ti1
+dwv,254.45
+ti1
+dwv,244.91
+ti1
+dwv,234.55
+ti1
+dwv,222.49
+ti1
+dwv,209.94
+ti1
+dwv,197.17
+ti1
+dwv,182.89
+ti1
+dwv,169.76
+ti1
+dwv,158.59
+ti1
+dwv,145.37
+ti1
+dwv,135.46
+ti1
+dwv,124.77
+ti1
+dwv,115.98
+ti1
+dwv,108.77
+ti1
+dwv,101.12
+ti1
+dwv,94.45
+ti1
+dwv,89.08
+ti1
+dwv,84.63
+ti1
+dwv,81.05
+ti1
+dwv,78.93
+ti1
+dwv,76.65
+ti1
+dwv,75.59
+ti1
+ti1
+ti1
+dwv,77.47
+ti1
+dwv,80.17
+ti1
+dwv,83.90
+ti1
+dwv,88.56
+ti1
+dwv,95.69
+ti1
+dwv,97.48
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,203.08
+ti1
+dwv,218.22
+ti1
+dwv,229.37
+ti1
+dwv,238.49
+ti1
+dwv,247.43
+ti1
+dwv,255.22
+ti1
+dwv,261.31
+ti1
+dwv,262.36
+ti1
+dwv,260.66
+ti1
+dwv,256.33
+ti1
+dwv,249.34
+ti1
+dwv,240.03
+ti1
+dwv,228.55
+ti1
+dwv,215.42
+ti1
+dwv,203.37
+ti1
+dwv,190.01
+ti1
+dwv,177.81
+ti1
+dwv,165.44
+ti1
+dwv,152.92
+ti1
+dwv,142.03
+ti1
+dwv,132.91
+ti1
+dwv,124.48
+ti1
+dwv,116.45
+ti1
+dwv,109.06
+ti1
+dwv,103.27
+ti1
+dwv,98.87
+ti1
+dwv,94.95
+ti1
+dwv,92.56
+ti1
+dwv,90.47
+ti1
+dwv,89.48
+ti1
+ti1
+dwv,90.53
+ti1
+dwv,93.07
+ti1
+dwv,97.12
+ti1
+dwv,101.82
+ti1
+dwv,108.18
+ti1
+dwv,109.73
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,202.97
+ti1
+dwv,217.38
+ti1
+dwv,231.73
+ti1
+dwv,243.11
+ti1
+dwv,255.37
+ti1
+dwv,264.12
+ti1
+dwv,269.64
+ti1
+dwv,270.98
+ti1
+dwv,269.65
+ti1
+dwv,264.55
+ti1
+dwv,257.16
+ti1
+dwv,246.01
+ti1
+dwv,232.88
+ti1
+dwv,219.85
+ti1
+dwv,208.79
+ti1
+dwv,197.00
+ti1
+dwv,183.93
+ti1
+dwv,172.00
+ti1
+dwv,160.55
+ti1
+dwv,150.59
+ti1
+dwv,141.47
+ti1
+dwv,133.02
+ti1
+dwv,126.21
+ti1
+dwv,120.64
+ti1
+dwv,115.79
+ti1
+dwv,111.62
+ti1
+dwv,108.41
+ti1
+dwv,106.41
+ti1
+ti1
+ti1
+dwv,109.08
+ti1
+dwv,113.23
+ti1
+dwv,118.57
+ti1
+dwv,122.57
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,208.07
+ti1
+dwv,224.14
+ti1
+dwv,236.28
+ti1
+dwv,248.12
+ti1
+dwv,258.97
+ti1
+dwv,267.74
+ti1
+dwv,272.47
+ti1
+dwv,271.52
+ti1
+dwv,266.80
+ti1
+dwv,258.61
+ti1
+dwv,249.30
+ti1
+dwv,239.19
+ti1
+dwv,228.28
+ti1
+dwv,215.79
+ti1
+dwv,203.86
+ti1
+dwv,190.08
+ti1
+dwv,177.40
+ti1
+dwv,163.81
+ti1
+dwv,152.60
+ti1
+dwv,141.33
+ti1
+dwv,130.98
+ti1
+dwv,121.98
+ti1
+dwv,114.08
+ti1
+dwv,106.61
+ti1
+dwv,99.75
+ti1
+dwv,93.10
+ti1
+dwv,86.57
+ti1
+dwv,80.62
+ti1
+dwv,76.05
+ti1
+dwv,71.52
+ti1
+dwv,68.85
+ti1
+dwv,67.46
+ti1
+dwv,66.86
+ti1
+dwv,67.51
+ti1
+dwv,69.75
+ti1
+dwv,72.85
+ti1
+dwv,76.23
+ti1
+dwv,82.85
+ti1
+dwv,89.33
+ti1
+dwv,93.39
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,188.37
+ti1
+dwv,204.42
+ti1
+dwv,217.16
+ti1
+dwv,228.89
+ti1
+dwv,238.83
+ti1
+dwv,247.70
+ti1
+dwv,253.59
+ti1
+dwv,257.17
+ti1
+ti1
+dwv,254.00
+ti1
+dwv,248.24
+ti1
+dwv,240.14
+ti1
+dwv,229.42
+ti1
+dwv,218.97
+ti1
+dwv,205.09
+ti1
+dwv,192.61
+ti1
+dwv,179.74
+ti1
+dwv,166.76
+ti1
+dwv,155.36
+ti1
+dwv,143.58
+ti1
+dwv,131.40
+ti1
+dwv,121.84
+ti1
+dwv,112.46
+ti1
+dwv,105.41
+ti1
+dwv,97.15
+ti1
+dwv,90.09
+ti1
+dwv,84.79
+ti1
+dwv,80.52
+ti1
+dwv,75.58
+ti1
+dwv,72.59
+ti1
+dwv,69.39
+ti1
+dwv,67.51
+ti1
+dwv,66.42
+ti1
+ti1
+ti1
+dwv,67.82
+ti1
+dwv,69.76
+ti1
+dwv,73.19
+ti1
+dwv,77.35
+ti1
+dwv,82.36
+ti1
+dwv,87.82
+ti1
+dwv,93.30
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,190.58
+ti1
+dwv,203.43
+ti1
+dwv,216.48
+ti1
+dwv,228.89
+ti1
+dwv,241.91
+ti1
+dwv,251.60
+ti1
+dwv,257.78
+ti1
+dwv,262.18
+ti1
+dwv,263.13
+ti1
+dwv,260.91
+ti1
+dwv,255.34
+ti1
+dwv,247.17
+ti1
+dwv,236.85
+ti1
+dwv,225.24
+ti1
+dwv,213.39
+ti1
+dwv,201.46
+ti1
+dwv,187.77
+ti1
+dwv,175.31
+ti1
+dwv,162.95
+ti1
+dwv,152.55
+ti1
+dwv,142.56
+ti1
+dwv,132.94
+ti1
+dwv,125.00
+ti1
+dwv,117.69
+ti1
+dwv,110.96
+ti1
+dwv,105.02
+ti1
+dwv,101.78
+ti1
+dwv,98.48
+ti1
+dwv,97.06
+ti1
+dwv,96.50
+ti1
+ti1
+dwv,98.48
+ti1
+dwv,101.18
+ti1
+dwv,104.56
+ti1
+dwv,109.67
+ti1
+dwv,115.86
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,200.02
+ti1
+dwv,217.51
+ti1
+dwv,233.21
+ti1
+dwv,245.72
+ti1
+dwv,258.21
+ti1
+dwv,267.24
+ti1
+dwv,273.79
+ti1
+dwv,273.20
+ti1
+dwv,270.38
+ti1
+dwv,260.76
+ti1
+dwv,250.05
+ti1
+dwv,241.32
+ti1
+dwv,231.14
+ti1
+dwv,219.83
+ti1
+dwv,206.13
+ti1
+dwv,193.24
+ti1
+dwv,180.73
+ti1
+dwv,167.82
+ti1
+dwv,156.94
+ti1
+dwv,144.13
+ti1
+dwv,134.40
+ti1
+dwv,125.23
+ti1
+dwv,116.13
+ti1
+dwv,107.34
+ti1
+dwv,99.71
+ti1
+dwv,94.11
+ti1
+dwv,88.91
+ti1
+dwv,84.51
+ti1
+dwv,81.50
+ti1
+dwv,78.66
+ti1
+dwv,76.57
+ti1
+dwv,75.82
+ti1
+ti1
+dwv,76.88
+ti1
+dwv,79.03
+ti1
+dwv,82.12
+ti1
+dwv,85.73
+ti1
+dwv,91.05
+ti1
+dwv,96.31
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,184.18
+ti1
+dwv,201.10
+ti1
+dwv,214.21
+ti1
+dwv,226.18
+ti1
+dwv,237.72
+ti1
+dwv,247.57
+ti1
+dwv,254.36
+ti1
+dwv,258.34
+ti1
+dwv,259.80
+ti1
+dwv,257.76
+ti1
+dwv,253.17
+ti1
+dwv,246.51
+ti1
+dwv,237.92
+ti1
+dwv,227.09
+ti1
+dwv,214.13
+ti1
+dwv,202.20
+ti1
+dwv,189.21
+ti1
+dwv,177.65
+ti1
+dwv,166.18
+ti1
+dwv,154.03
+ti1
+dwv,142.21
+ti1
+dwv,131.51
+ti1
+dwv,121.28
+ti1
+dwv,111.80
+ti1
+dwv,104.47
+ti1
+dwv,98.80
+ti1
+dwv,94.76
+ti1
+dwv,91.81
+ti1
+dwv,89.17
+ti1
+dwv,88.00
+ti1
+ti1
+ti1
+dwv,89.20
+ti1
+dwv,91.17
+ti1
+dwv,94.35
+ti1
+dwv,99.00
+ti1
+dwv,105.43
+ti1
+dwv,109.34
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,194.84
+ti1
+dwv,212.05
+ti1
+dwv,226.30
+ti1
+dwv,239.03
+ti1
+dwv,250.94
+ti1
+dwv,259.73
+ti1
+dwv,266.64
+ti1
+dwv,269.67
+ti1
+dwv,269.03
+ti1
+dwv,265.03
+ti1
+dwv,258.23
+ti1
+dwv,249.32
+ti1
+dwv,238.03
+ti1
+dwv,226.20
+ti1
+dwv,213.46
+ti1
+dwv,200.53
+ti1
+dwv,187.65
+ti1
+dwv,174.89
+ti1
+dwv,163.22
+ti1
+dwv,152.47
+ti1
+dwv,142.65
+ti1
+dwv,133.97
+ti1
+dwv,126.59
+ti1
+dwv,120.52
+ti1
+dwv,115.57
+ti1
+dwv,111.49
+ti1
+dwv,108.03
+ti1
+dwv,106.01
+ti1
+dwv,105.28
+ti1
+ti1
+dwv,106.91
+ti1
+dwv,109.73
+ti1
+dwv,114.91
+ti1
+dwv,120.66
+ti1
+dwv,123.74
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,211.57
+ti1
+dwv,227.06
+ti1
+dwv,240.57
+ti1
+dwv,252.26
+ti1
+dwv,262.67
+ti1
+dwv,270.66
+ti1
+dwv,273.40
+ti1
+dwv,270.25
+ti1
+dwv,263.76
+ti1
+dwv,256.03
+ti1
+dwv,246.87
+ti1
+dwv,237.10
+ti1
+dwv,225.11
+ti1
+dwv,211.53
+ti1
+dwv,197.77
+ti1
+dwv,185.75
+ti1
+dwv,173.00
+ti1
+dwv,159.31
+ti1
+dwv,147.18
+ti1
+dwv,134.84
+ti1
+dwv,125.07
+ti1
+dwv,115.82
+ti1
+dwv,107.33
+ti1
+dwv,100.07
+ti1
+dwv,93.55
+ti1
+dwv,87.60
+ti1
+dwv,81.75
+ti1
+dwv,77.03
+ti1
+dwv,73.39
+ti1
+dwv,70.97
+ti1
+dwv,67.94
+ti1
+dwv,66.64
+ti1
+dwv,65.80
+ti1
+ti1
+dwv,66.85
+ti1
+dwv,68.78
+ti1
+dwv,71.47
+ti1
+dwv,74.20
+ti1
+dwv,78.68
+ti1
+dwv,85.08
+ti1
+dwv,87.47
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,185.81
+ti1
+dwv,201.66
+ti1
+dwv,215.07
+ti1
+dwv,227.26
+ti1
+dwv,238.00
+ti1
+dwv,247.64
+ti1
+dwv,255.03
+ti1
+dwv,257.12
+ti1
+dwv,256.17
+ti1
+dwv,253.47
+ti1
+dwv,248.93
+ti1
+dwv,241.39
+ti1
+dwv,231.45
+ti1
+dwv,220.49
+ti1
+dwv,208.48
+ti1
+dwv,196.04
+ti1
+dwv,182.73
+ti1
+dwv,169.40
+ti1
+dwv,157.24
+ti1
+dwv,145.56
+ti1
+dwv,133.54
+ti1
+dwv,124.01
+ti1
+dwv,114.55
+ti1
+dwv,105.75
+ti1
+dwv,98.32
+ti1
+dwv,91.91
+ti1
+dwv,86.08
+ti1
+dwv,81.35
+ti1
+dwv,77.78
+ti1
+dwv,73.85
+ti1
+dwv,71.12
+ti1
+dwv,68.53
+ti1
+dwv,67.09
+ti1
+dwv,66.34
+ti1
+ti1
+ti1
+dwv,67.92
+ti1
+dwv,70.08
+ti1
+dwv,73.78
+ti1
+dwv,78.68
+ti1
+dwv,84.33
+ti1
+dwv,90.25
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,183.19
+ti1
+dwv,198.96
+ti1
+dwv,213.55
+ti1
+dwv,225.91
+ti1
+dwv,237.33
+ti1
+dwv,246.66
+ti1
+dwv,254.98
+ti1
+dwv,259.46
+ti1
+dwv,261.02
+ti1
+dwv,260.02
+ti1
+dwv,255.96
+ti1
+dwv,249.08
+ti1
+dwv,240.15
+ti1
+dwv,229.51
+ti1
+dwv,217.21
+ti1
+dwv,205.06
+ti1
+dwv,192.62
+ti1
+dwv,177.43
+ti1
+dwv,165.06
+ti1
+dwv,152.36
+ti1
+dwv,142.35
+ti1
+dwv,134.58
+ti1
+dwv,126.20
+ti1
+dwv,119.86
+ti1
+dwv,113.67
+ti1
+dwv,108.20
+ti1
+dwv,104.71
+ti1
+dwv,100.83
+ti1
+dwv,98.96
+ti1
+dwv,98.38
+ti1
+ti1
+dwv,100.29
+ti1
+dwv,103.47
+ti1
+dwv,107.73
+ti1
+dwv,113.04
+ti1
+dwv,118.90
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,200.70
+ti1
+dwv,217.77
+ti1
+dwv,232.45
+ti1
+dwv,244.28
+ti1
+dwv,256.61
+ti1
+dwv,265.93
+ti1
+dwv,272.01
+ti1
+ti1
+dwv,268.67
+ti1
+dwv,260.53
+ti1
+dwv,252.09
+ti1
+dwv,243.72
+ti1
+dwv,232.68
+ti1
+dwv,220.49
+ti1
+dwv,206.88
+ti1
+dwv,193.98
+ti1
+dwv,181.33
+ti1
+dwv,168.61
+ti1
+dwv,156.50
+ti1
+dwv,145.54
+ti1
+dwv,136.43
+ti1
+dwv,125.95
+ti1
+dwv,117.26
+ti1
+dwv,109.81
+ti1
+dwv,103.36
+ti1
+dwv,97.15
+ti1
+dwv,92.86
+ti1
+dwv,89.02
+ti1
+dwv,86.39
+ti1
+dwv,84.44
+ti1
+dwv,83.72
+ti1
+ti1
+dwv,85.89
+ti1
+dwv,88.39
+ti1
+dwv,92.31
+ti1
+dwv,96.00
+ti1
+dwv,100.24
+ti1
+dwv,102.55
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,197.15
+ti1
+dwv,212.33
+ti1
+dwv,225.48
+ti1
+dwv,236.75
+ti1
+dwv,247.52
+ti1
+dwv,255.21
+ti1
+dwv,260.74
+ti1
+dwv,262.81
+ti1
+dwv,262.09
+ti1
+dwv,258.08
+ti1
+dwv,250.83
+ti1
+dwv,242.39
+ti1
+dwv,230.86
+ti1
+dwv,219.62
+ti1
+dwv,206.80
+ti1
+dwv,193.41
+ti1
+dwv,180.60
+ti1
+dwv,168.20
+ti1
+dwv,157.77
+ti1
+dwv,145.25
+ti1
+dwv,136.23
+ti1
+dwv,126.28
+ti1
+dwv,118.10
+ti1
+dwv,110.74
+ti1
+dwv,105.29
+ti1
+dwv,99.75
+ti1
+dwv,95.61
+ti1
+dwv,92.16
+ti1
+dwv,89.93
+ti1
+dwv,88.45
+ti1
+ti1
+dwv,89.11
+ti1
+dwv,90.87
+ti1
+dwv,94.21
+ti1
+dwv,98.16
+ti1
+dwv,104.24
+ti1
+dwv,108.98
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,195.81
+ti1
+dwv,211.95
+ti1
+dwv,226.36
+ti1
+dwv,240.61
+ti1
+dwv,251.93
+ti1
+dwv,259.13
+ti1
+dwv,265.36
+ti1
+dwv,269.71
+ti1
+dwv,270.27
+ti1
+dwv,266.44
+ti1
+dwv,260.44
+ti1
+dwv,251.94
+ti1
+dwv,240.79
+ti1
+dwv,228.95
+ti1
+dwv,215.90
+ti1
+dwv,203.25
+ti1
+dwv,190.01
+ti1
+dwv,177.92
+ti1
+dwv,165.60
+ti1
+dwv,155.49
+ti1
+dwv,144.32
+ti1
+dwv,136.07
+ti1
+dwv,127.64
+ti1
+dwv,120.28
+ti1
+dwv,114.57
+ti1
+dwv,109.99
+ti1
+dwv,106.36
+ti1
+dwv,104.49
+ti1
+dwv,103.84
+ti1
+ti1
+dwv,105.77
+ti1
+dwv,107.83
+ti1
+dwv,112.41
+ti1
+dwv,117.71
+ti1
+dwv,120.66
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,210.13
+ti1
+dwv,225.03
+ti1
+dwv,238.76
+ti1
+dwv,250.50
+ti1
+dwv,261.18
+ti1
+dwv,269.22
+ti1
+dwv,274.18
+ti1
+dwv,272.28
+ti1
+dwv,266.66
+ti1
+dwv,258.68
+ti1
+dwv,249.88
+ti1
+dwv,239.94
+ti1
+dwv,227.14
+ti1
+dwv,213.22
+ti1
+dwv,197.58
+ti1
+dwv,184.86
+ti1
+dwv,172.52
+ti1
+dwv,160.19
+ti1
+dwv,149.20
+ti1
+dwv,137.49
+ti1
+dwv,127.86
+ti1
+dwv,118.91
+ti1
+dwv,110.49
+ti1
+dwv,102.73
+ti1
+dwv,96.33
+ti1
+dwv,90.95
+ti1
+dwv,86.38
+ti1
+dwv,82.72
+ti1
+dwv,79.65
+ti1
+dwv,77.61
+ti1
+dwv,75.70
+ti1
+dwv,74.49
+ti1
+ti1
+ti1
+dwv,76.48
+ti1
+dwv,79.14
+ti1
+dwv,82.84
+ti1
+dwv,87.86
+ti1
+dwv,92.69
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,181.33
+ti1
+dwv,196.86
+ti1
+dwv,210.98
+ti1
+dwv,223.13
+ti1
+dwv,233.90
+ti1
+dwv,243.19
+ti1
+dwv,250.57
+ti1
+dwv,255.00
+ti1
+dwv,256.36
+ti1
+dwv,255.16
+ti1
+dwv,250.15
+ti1
+dwv,242.80
+ti1
+dwv,233.82
+ti1
+dwv,223.41
+ti1
+dwv,210.81
+ti1
+dwv,199.04
+ti1
+dwv,187.39
+ti1
+dwv,174.14
+ti1
+dwv,162.62
+ti1
+dwv,151.39
+ti1
+dwv,139.59
+ti1
+dwv,128.71
+ti1
+dwv,119.17
+ti1
+dwv,111.02
+ti1
+dwv,103.91
+ti1
+dwv,96.78
+ti1
+dwv,91.56
+ti1
+dwv,87.13
+ti1
+dwv,83.22
+ti1
+dwv,80.50
+ti1
+dwv,76.83
+ti1
+dwv,74.24
+ti1
+dwv,70.80
+ti1
+dwv,69.04
+ti1
+dwv,67.12
+ti1
+dwv,66.51
+ti1
+ti1
+dwv,68.77
+ti1
+dwv,72.19
+ti1
+dwv,77.34
+ti1
+dwv,84.04
+ti1
+dwv,88.55
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,190.51
+ti1
+dwv,207.14
+ti1
+dwv,220.57
+ti1
+dwv,232.51
+ti1
+dwv,243.35
+ti1
+dwv,252.41
+ti1
+dwv,258.62
+ti1
+dwv,262.18
+ti1
+ti1
+dwv,259.10
+ti1
+dwv,253.54
+ti1
+dwv,245.44
+ti1
+dwv,235.55
+ti1
+dwv,223.43
+ti1
+dwv,209.91
+ti1
+dwv,197.52
+ti1
+dwv,185.90
+ti1
+dwv,172.13
+ti1
+dwv,161.09
+ti1
+dwv,150.58
+ti1
+dwv,140.37
+ti1
+dwv,130.27
+ti1
+dwv,122.13
+ti1
+dwv,114.99
+ti1
+dwv,108.76
+ti1
+dwv,104.67
+ti1
+dwv,100.36
+ti1
+dwv,97.61
+ti1
+dwv,95.48
+ti1
+dwv,94.83
+ti1
+dwv,95.45
+ti1
+dwv,97.15
+ti1
+dwv,100.73
+ti1
+dwv,105.10
+ti1
+dwv,111.46
+ti1
+dwv,118.27
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,202.92
+ti1
+dwv,220.25
+ti1
+dwv,233.35
+ti1
+dwv,243.48
+ti1
+dwv,254.85
+ti1
+dwv,265.75
+ti1
+dwv,272.62
+ti1
+ti1
+dwv,269.36
+ti1
+dwv,261.82
+ti1
+dwv,252.85
+ti1
+dwv,244.08
+ti1
+dwv,232.96
+ti1
+dwv,219.59
+ti1
+dwv,207.32
+ti1
+dwv,193.87
+ti1
+dwv,181.77
+ti1
+dwv,168.60
+ti1
+dwv,155.76
+ti1
+dwv,144.03
+ti1
+dwv,134.07
+ti1
+dwv,123.46
+ti1
+dwv,114.47
+ti1
+dwv,107.64
+ti1
+dwv,100.46
+ti1
+dwv,94.53
+ti1
+dwv,89.28
+ti1
+dwv,84.59
+ti1
+dwv,80.96
+ti1
+dwv,78.54
+ti1
+dwv,76.28
+ti1
+dwv,75.51
+ti1
+ti1
+dwv,76.55
+ti1
+dwv,78.55
+ti1
+dwv,81.57
+ti1
+dwv,85.18
+ti1
+dwv,90.61
+ti1
+dwv,96.01
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,184.51
+ti1
+dwv,201.57
+ti1
+dwv,216.33
+ti1
+dwv,228.69
+ti1
+dwv,239.90
+ti1
+dwv,250.41
+ti1
+dwv,257.91
+ti1
+dwv,262.29
+ti1
+dwv,263.41
+ti1
+dwv,261.70
+ti1
+dwv,256.75
+ti1
+dwv,246.82
+ti1
+dwv,236.35
+ti1
+dwv,225.17
+ti1
+dwv,212.90
+ti1
+dwv,201.61
+ti1
+dwv,188.42
+ti1
+dwv,175.92
+ti1
+dwv,163.70
+ti1
+dwv,153.18
+ti1
+dwv,142.89
+ti1
+dwv,132.95
+ti1
+dwv,125.18
+ti1
+dwv,117.61
+ti1
+dwv,110.36
+ti1
+dwv,104.56
+ti1
+dwv,100.13
+ti1
+dwv,96.64
+ti1
+dwv,93.52
+ti1
+dwv,91.91
+ti1
+ti1
+ti1
+dwv,93.84
+ti1
+dwv,97.13
+ti1
+dwv,101.08
+ti1
+dwv,107.19
+ti1
+dwv,111.89
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,195.89
+ti1
+dwv,212.65
+ti1
+dwv,226.60
+ti1
+dwv,239.28
+ti1
+dwv,251.28
+ti1
+dwv,259.92
+ti1
+dwv,266.03
+ti1
+dwv,269.76
+ti1
+ti1
+dwv,265.55
+ti1
+dwv,258.92
+ti1
+dwv,250.42
+ti1
+dwv,240.04
+ti1
+dwv,229.03
+ti1
+dwv,216.69
+ti1
+dwv,204.21
+ti1
+dwv,191.25
+ti1
+dwv,178.40
+ti1
+dwv,168.31
+ti1
+dwv,157.47
+ti1
+dwv,148.62
+ti1
+dwv,139.12
+ti1
+dwv,129.54
+ti1
+dwv,121.65
+ti1
+dwv,114.59
+ti1
+dwv,109.30
+ti1
+dwv,106.39
+ti1
+dwv,104.71
+ti1
+ti1
+dwv,106.41
+ti1
+dwv,109.22
+ti1
+dwv,113.62
+ti1
+dwv,118.31
+ti1
+dwv,124.34
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,205.67
+ti1
+dwv,221.25
+ti1
+dwv,235.02
+ti1
+dwv,247.47
+ti1
+dwv,258.37
+ti1
+dwv,267.42
+ti1
+dwv,272.60
+ti1
+dwv,272.00
+ti1
+dwv,267.91
+ti1
+dwv,260.38
+ti1
+dwv,251.10
+ti1
+dwv,241.32
+ti1
+dwv,230.96
+ti1
+dwv,217.34
+ti1
+dwv,204.99
+ti1
+dwv,191.24
+ti1
+dwv,178.58
+ti1
+dwv,164.79
+ti1
+dwv,153.07
+ti1
+dwv,141.06
+ti1
+dwv,129.86
+ti1
+dwv,119.79
+ti1
+dwv,111.13
+ti1
+dwv,103.53
+ti1
+dwv,96.95
+ti1
+dwv,89.42
+ti1
+dwv,85.22
+ti1
+dwv,80.54
+ti1
+dwv,76.85
+ti1
+dwv,74.41
+ti1
+dwv,72.12
+ti1
+dwv,71.21
+ti1
+ti1
+ti1
+dwv,72.13
+ti1
+dwv,74.22
+ti1
+dwv,76.95
+ti1
+dwv,80.65
+ti1
+dwv,85.36
+ti1
+dwv,90.60
+ti1
+dwv,92.36
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,191.27
+ti1
+dwv,205.03
+ti1
+dwv,218.89
+ti1
+dwv,230.87
+ti1
+dwv,241.63
+ti1
+dwv,249.83
+ti1
+dwv,255.42
+ti1
+dwv,257.98
+ti1
+dwv,257.33
+ti1
+dwv,252.87
+ti1
+dwv,245.90
+ti1
+dwv,237.78
+ti1
+dwv,227.14
+ti1
+dwv,214.67
+ti1
+dwv,202.31
+ti1
+dwv,188.68
+ti1
+dwv,175.96
+ti1
+dwv,163.25
+ti1
+dwv,151.43
+ti1
+dwv,139.79
+ti1
+dwv,130.40
+ti1
+dwv,118.92
+ti1
+dwv,110.88
+ti1
+dwv,101.92
+ti1
+dwv,94.45
+ti1
+dwv,88.13
+ti1
+dwv,83.19
+ti1
+dwv,79.11
+ti1
+dwv,74.60
+ti1
+dwv,71.86
+ti1
+dwv,68.77
+ti1
+dwv,66.57
+ti1
+dwv,65.24
+ti1
+dwv,64.41
+ti1
+ti1
+dwv,64.92
+ti1
+dwv,66.62
+ti1
+dwv,68.93
+ti1
+dwv,72.77
+ti1
+dwv,77.76
+ti1
+dwv,83.41
+ti1
+dwv,89.19
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,182.68
+ti1
+dwv,199.88
+ti1
+dwv,214.62
+ti1
+dwv,227.29
+ti1
+dwv,238.62
+ti1
+dwv,249.01
+ti1
+dwv,256.68
+ti1
+dwv,262.71
+ti1
+dwv,263.44
+ti1
+dwv,259.87
+ti1
+dwv,254.66
+ti1
+dwv,248.11
+ti1
+dwv,240.01
+ti1
+dwv,229.30
+ti1
+dwv,216.52
+ti1
+dwv,205.15
+ti1
+dwv,192.49
+ti1
+dwv,179.70
+ti1
+dwv,167.51
+ti1
+dwv,156.31
+ti1
+dwv,145.97
+ti1
+dwv,135.93
+ti1
+dwv,128.06
+ti1
+dwv,119.45
+ti1
+dwv,113.01
+ti1
+dwv,108.31
+ti1
+dwv,103.79
+ti1
+dwv,100.92
+ti1
+dwv,98.90
+ti1
+dwv,98.28
+ti1
+ti1
+dwv,100.12
+ti1
+dwv,102.38
+ti1
+dwv,106.07
+ti1
+dwv,111.06
+ti1
+dwv,117.00
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,202.42
+ti1
+dwv,217.46
+ti1
+dwv,232.83
+ti1
+dwv,245.05
+ti1
+dwv,256.39
+ti1
+dwv,265.28
+ti1
+dwv,271.80
+ti1
+ti1
+dwv,268.63
+ti1
+dwv,261.21
+ti1
+dwv,253.57
+ti1
+dwv,244.41
+ti1
+dwv,233.79
+ti1
+dwv,220.80
+ti1
+dwv,209.24
+ti1
+dwv,196.54
+ti1
+dwv,183.38
+ti1
+dwv,170.14
+ti1
+dwv,157.79
+ti1
+dwv,144.31
+ti1
+dwv,131.53
+ti1
+dwv,122.20
+ti1
+dwv,113.46
+ti1
+dwv,106.57
+ti1
+dwv,100.93
+ti1
+dwv,96.80
+ti1
+dwv,92.10
+ti1
+dwv,88.77
+ti1
+dwv,86.07
+ti1
+dwv,83.75
+ti1
+dwv,82.40
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,84.82
+ti1
+dwv,88.34
+ti1
+dwv,92.06
+ti1
+dwv,98.22
+ti1
+dwv,103.08
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,196.25
+ti1
+dwv,210.62
+ti1
+dwv,223.53
+ti1
+dwv,235.01
+ti1
+dwv,245.30
+ti1
+dwv,253.56
+ti1
+dwv,259.86
+ti1
+dwv,261.87
+ti1
+ti1
+dwv,257.71
+ti1
+dwv,251.10
+ti1
+dwv,242.25
+ti1
+dwv,232.00
+ti1
+dwv,219.62
+ti1
+dwv,207.54
+ti1
+dwv,194.54
+ti1
+dwv,182.85
+ti1
+dwv,170.49
+ti1
+dwv,158.24
+ti1
+dwv,147.54
+ti1
+dwv,137.40
+ti1
+dwv,129.81
+ti1
+dwv,121.07
+ti1
+dwv,114.39
+ti1
+dwv,109.32
+ti1
+dwv,103.67
+ti1
+dwv,99.51
+ti1
+dwv,96.53
+ti1
+dwv,94.67
+ti1
+dwv,93.79
+ti1
+ti1
+dwv,95.31
+ti1
+dwv,98.43
+ti1
+dwv,102.95
+ti1
+dwv,109.01
+ti1
+dwv,115.86
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,209.63
+ti1
+dwv,224.03
+ti1
+dwv,236.93
+ti1
+dwv,249.17
+ti1
+dwv,259.34
+ti1
+dwv,267.41
+ti1
+dwv,271.07
+ti1
+dwv,270.51
+ti1
+dwv,263.93
+ti1
+dwv,255.80
+ti1
+dwv,246.03
+ti1
+dwv,235.96
+ti1
+dwv,223.79
+ti1
+dwv,209.68
+ti1
+dwv,196.98
+ti1
+dwv,184.70
+ti1
+dwv,171.16
+ti1
+dwv,157.06
+ti1
+dwv,145.05
+ti1
+dwv,133.80
+ti1
+dwv,123.45
+ti1
+dwv,114.06
+ti1
+dwv,106.78
+ti1
+dwv,98.12
+ti1
+dwv,91.19
+ti1
+dwv,84.78
+ti1
+dwv,80.10
+ti1
+dwv,74.95
+ti1
+dwv,71.88
+ti1
+dwv,68.51
+ti1
+dwv,66.13
+ti1
+dwv,64.64
+ti1
+dwv,63.65
+ti1
+dwv,63.06
+ti1
+ti1
+dwv,64.29
+ti1
+dwv,66.41
+ti1
+dwv,68.95
+ti1
+dwv,73.12
+ti1
+dwv,78.00
+ti1
+dwv,83.67
+ti1
+dwv,85.55
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,187.86
+ti1
+dwv,202.65
+ti1
+dwv,216.23
+ti1
+dwv,228.24
+ti1
+dwv,239.81
+ti1
+dwv,248.77
+ti1
+dwv,252.97
+ti1
+dwv,254.72
+ti1
+ti1
+dwv,253.22
+ti1
+dwv,247.80
+ti1
+dwv,239.99
+ti1
+dwv,229.87
+ti1
+dwv,218.26
+ti1
+dwv,205.99
+ti1
+dwv,193.09
+ti1
+dwv,180.59
+ti1
+dwv,167.42
+ti1
+dwv,154.33
+ti1
+dwv,142.32
+ti1
+dwv,131.88
+ti1
+dwv,122.32
+ti1
+dwv,112.84
+ti1
+dwv,104.07
+ti1
+dwv,96.62
+ti1
+dwv,90.02
+ti1
+dwv,84.43
+ti1
+dwv,79.90
+ti1
+dwv,74.59
+ti1
+dwv,71.27
+ti1
+dwv,67.37
+ti1
+dwv,64.97
+ti1
+dwv,62.82
+ti1
+dwv,61.60
+ti1
+ti1
+ti1
+dwv,62.99
+ti1
+dwv,64.80
+ti1
+dwv,68.51
+ti1
+dwv,72.70
+ti1
+dwv,77.97
+ti1
+dwv,84.10
+ti1
+dwv,88.07
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+ti1
+dwv,184.25
+ti1
+dwv,199.56
+ti1
+dwv,212.97
+ti1
+dwv,226.37
+ti1
+dwv,237.23
+ti1
+dwv,247.66
+ti1
+dwv,254.97
+ti1
+dwv,259.77
+ti1
+dwv,261.89
+ti1
+dwv,260.39
+ti1
+dwv,255.67
+ti1
+dwv,248.49
+ti1
+dwv,238.75
+ti1
+dwv,228.34
+ti1
+dwv,215.95
+ti1
+dwv,201.71
+ti1
+dwv,187.12
+ti1
+dwv,174.33
+ti1
+dwv,162.05
+ti1
+dwv,151.79
+ti1
+dwv,142.67
+ti1
+dwv,134.03
+ti1
+dwv,126.03
+ti1
+dwv,118.64
+ti1
+dwv,112.00
+ti1
+dwv,107.16
+ti1
+dwv,103.71
+ti1
+dwv,100.06
+ti1
+dwv,98.59
+ti1
+dwv,97.68
+ti1
+ti1
diff --git a/test/rebuf.ok b/test/rebuf.ok
new file mode 100644
index 00000000..f452f553
--- /dev/null
+++ b/test/rebuf.ok
@@ -0,0 +1,1290 @@
+1 0
+2 214.59
+3 230.31
+4 242.64
+5 253.94
+6 264.33
+7 270.94
+8 273.52
+9 270.08
+10 263.19
+11 254.45
+12 244.91
+13 234.55
+14 222.49
+15 209.94
+16 197.17
+17 182.89
+18 169.76
+19 158.59
+20 145.37
+21 135.46
+22 124.77
+23 115.98
+24 108.77
+25 101.12
+26 94.45
+27 89.08
+28 84.63
+29 81.05
+30 78.93
+31 76.65
+32 75.59
+33 75.59
+34 75.59
+35 77.47
+36 80.17
+37 83.90
+38 88.56
+39 95.69
+40 97.48
+41 97.48
+42 97.48
+43 97.48
+44 97.48
+45 97.48
+46 97.48
+47 97.48
+48 203.08
+49 218.22
+50 229.37
+51 238.49
+52 247.43
+53 255.22
+54 261.31
+55 262.36
+56 260.66
+57 256.33
+58 249.34
+59 240.03
+60 228.55
+61 215.42
+62 203.37
+63 190.01
+64 177.81
+65 165.44
+66 152.92
+67 142.03
+68 132.91
+69 124.48
+70 116.45
+71 109.06
+72 103.27
+73 98.87
+74 94.95
+75 92.56
+76 90.47
+77 89.48
+78 89.48
+79 90.53
+80 93.07
+81 97.12
+82 101.82
+83 108.18
+84 109.73
+85 109.73
+86 109.73
+87 109.73
+88 109.73
+89 109.73
+90 109.73
+91 202.97
+92 217.38
+93 231.73
+94 243.11
+95 255.37
+96 264.12
+97 269.64
+98 270.98
+99 269.65
+100 264.55
+101 257.16
+102 246.01
+103 232.88
+104 219.85
+105 208.79
+106 197.00
+107 183.93
+108 172.00
+109 160.55
+110 150.59
+111 141.47
+112 133.02
+113 126.21
+114 120.64
+115 115.79
+116 111.62
+117 108.41
+118 106.41
+119 106.41
+120 106.41
+121 109.08
+122 113.23
+123 118.57
+124 122.57
+125 122.57
+126 122.57
+127 122.57
+128 122.57
+129 122.57
+130 122.57
+131 208.07
+132 224.14
+133 236.28
+134 248.12
+135 258.97
+136 267.74
+137 272.47
+138 271.52
+139 266.80
+140 258.61
+141 249.30
+142 239.19
+143 228.28
+144 215.79
+145 203.86
+146 190.08
+147 177.40
+148 163.81
+149 152.60
+150 141.33
+151 130.98
+152 121.98
+153 114.08
+154 106.61
+155 99.75
+156 93.10
+157 86.57
+158 80.62
+159 76.05
+160 71.52
+161 68.85
+162 67.46
+163 66.86
+164 67.51
+165 69.75
+166 72.85
+167 76.23
+168 82.85
+169 89.33
+170 93.39
+171 93.39
+172 93.39
+173 93.39
+174 93.39
+175 93.39
+176 93.39
+177 93.39
+178 188.37
+179 204.42
+180 217.16
+181 228.89
+182 238.83
+183 247.70
+184 253.59
+185 257.17
+186 257.17
+187 254.00
+188 248.24
+189 240.14
+190 229.42
+191 218.97
+192 205.09
+193 192.61
+194 179.74
+195 166.76
+196 155.36
+197 143.58
+198 131.40
+199 121.84
+200 112.46
+201 105.41
+202 97.15
+203 90.09
+204 84.79
+205 80.52
+206 75.58
+207 72.59
+208 69.39
+209 67.51
+210 66.42
+211 66.42
+212 66.42
+213 67.82
+214 69.76
+215 73.19
+216 77.35
+217 82.36
+218 87.82
+219 93.30
+220 93.30
+221 93.30
+222 93.30
+223 93.30
+224 93.30
+225 93.30
+226 93.30
+227 190.58
+228 203.43
+229 216.48
+230 228.89
+231 241.91
+232 251.60
+233 257.78
+234 262.18
+235 263.13
+236 260.91
+237 255.34
+238 247.17
+239 236.85
+240 225.24
+241 213.39
+242 201.46
+243 187.77
+244 175.31
+245 162.95
+246 152.55
+247 142.56
+248 132.94
+249 125.00
+250 117.69
+251 110.96
+252 105.02
+253 101.78
+254 98.48
+255 97.06
+256 96.50
+257 96.50
+258 98.48
+259 101.18
+260 104.56
+261 109.67
+262 115.86
+263 115.86
+264 115.86
+265 115.86
+266 115.86
+267 115.86
+268 115.86
+269 200.02
+270 217.51
+271 233.21
+272 245.72
+273 258.21
+274 267.24
+275 273.79
+276 273.20
+277 270.38
+278 260.76
+279 250.05
+280 241.32
+281 231.14
+282 219.83
+283 206.13
+284 193.24
+285 180.73
+286 167.82
+287 156.94
+288 144.13
+289 134.40
+290 125.23
+291 116.13
+292 107.34
+293 99.71
+294 94.11
+295 88.91
+296 84.51
+297 81.50
+298 78.66
+299 76.57
+300 75.82
+301 75.82
+302 76.88
+303 79.03
+304 82.12
+305 85.73
+306 91.05
+307 96.31
+308 96.31
+309 96.31
+310 96.31
+311 96.31
+312 96.31
+313 96.31
+314 96.31
+315 184.18
+316 201.10
+317 214.21
+318 226.18
+319 237.72
+320 247.57
+321 254.36
+322 258.34
+323 259.80
+324 257.76
+325 253.17
+326 246.51
+327 237.92
+328 227.09
+329 214.13
+330 202.20
+331 189.21
+332 177.65
+333 166.18
+334 154.03
+335 142.21
+336 131.51
+337 121.28
+338 111.80
+339 104.47
+340 98.80
+341 94.76
+342 91.81
+343 89.17
+344 88.00
+345 88.00
+346 88.00
+347 89.20
+348 91.17
+349 94.35
+350 99.00
+351 105.43
+352 109.34
+353 109.34
+354 109.34
+355 109.34
+356 109.34
+357 109.34
+358 109.34
+359 194.84
+360 212.05
+361 226.30
+362 239.03
+363 250.94
+364 259.73
+365 266.64
+366 269.67
+367 269.03
+368 265.03
+369 258.23
+370 249.32
+371 238.03
+372 226.20
+373 213.46
+374 200.53
+375 187.65
+376 174.89
+377 163.22
+378 152.47
+379 142.65
+380 133.97
+381 126.59
+382 120.52
+383 115.57
+384 111.49
+385 108.03
+386 106.01
+387 105.28
+388 105.28
+389 106.91
+390 109.73
+391 114.91
+392 120.66
+393 123.74
+394 123.74
+395 123.74
+396 123.74
+397 123.74
+398 123.74
+399 123.74
+400 211.57
+401 227.06
+402 240.57
+403 252.26
+404 262.67
+405 270.66
+406 273.40
+407 270.25
+408 263.76
+409 256.03
+410 246.87
+411 237.10
+412 225.11
+413 211.53
+414 197.77
+415 185.75
+416 173.00
+417 159.31
+418 147.18
+419 134.84
+420 125.07
+421 115.82
+422 107.33
+423 100.07
+424 93.55
+425 87.60
+426 81.75
+427 77.03
+428 73.39
+429 70.97
+430 67.94
+431 66.64
+432 65.80
+433 65.80
+434 66.85
+435 68.78
+436 71.47
+437 74.20
+438 78.68
+439 85.08
+440 87.47
+441 87.47
+442 87.47
+443 87.47
+444 87.47
+445 87.47
+446 87.47
+447 87.47
+448 185.81
+449 201.66
+450 215.07
+451 227.26
+452 238.00
+453 247.64
+454 255.03
+455 257.12
+456 256.17
+457 253.47
+458 248.93
+459 241.39
+460 231.45
+461 220.49
+462 208.48
+463 196.04
+464 182.73
+465 169.40
+466 157.24
+467 145.56
+468 133.54
+469 124.01
+470 114.55
+471 105.75
+472 98.32
+473 91.91
+474 86.08
+475 81.35
+476 77.78
+477 73.85
+478 71.12
+479 68.53
+480 67.09
+481 66.34
+482 66.34
+483 66.34
+484 67.92
+485 70.08
+486 73.78
+487 78.68
+488 84.33
+489 90.25
+490 90.25
+491 90.25
+492 90.25
+493 90.25
+494 90.25
+495 90.25
+496 90.25
+497 183.19
+498 198.96
+499 213.55
+500 225.91
+501 237.33
+502 246.66
+503 254.98
+504 259.46
+505 261.02
+506 260.02
+507 255.96
+508 249.08
+509 240.15
+510 229.51
+511 217.21
+512 205.06
+513 192.62
+514 177.43
+515 165.06
+516 152.36
+517 142.35
+518 134.58
+519 126.20
+520 119.86
+521 113.67
+522 108.20
+523 104.71
+524 100.83
+525 98.96
+526 98.38
+527 98.38
+528 100.29
+529 103.47
+530 107.73
+531 113.04
+532 118.90
+533 118.90
+534 118.90
+535 118.90
+536 118.90
+537 118.90
+538 118.90
+539 200.70
+540 217.77
+541 232.45
+542 244.28
+543 256.61
+544 265.93
+545 272.01
+546 272.01
+547 268.67
+548 260.53
+549 252.09
+550 243.72
+551 232.68
+552 220.49
+553 206.88
+554 193.98
+555 181.33
+556 168.61
+557 156.50
+558 145.54
+559 136.43
+560 125.95
+561 117.26
+562 109.81
+563 103.36
+564 97.15
+565 92.86
+566 89.02
+567 86.39
+568 84.44
+569 83.72
+570 83.72
+571 85.89
+572 88.39
+573 92.31
+574 96.00
+575 100.24
+576 102.55
+577 102.55
+578 102.55
+579 102.55
+580 102.55
+581 102.55
+582 102.55
+583 102.55
+584 197.15
+585 212.33
+586 225.48
+587 236.75
+588 247.52
+589 255.21
+590 260.74
+591 262.81
+592 262.09
+593 258.08
+594 250.83
+595 242.39
+596 230.86
+597 219.62
+598 206.80
+599 193.41
+600 180.60
+601 168.20
+602 157.77
+603 145.25
+604 136.23
+605 126.28
+606 118.10
+607 110.74
+608 105.29
+609 99.75
+610 95.61
+611 92.16
+612 89.93
+613 88.45
+614 88.45
+615 89.11
+616 90.87
+617 94.21
+618 98.16
+619 104.24
+620 108.98
+621 108.98
+622 108.98
+623 108.98
+624 108.98
+625 108.98
+626 108.98
+627 195.81
+628 211.95
+629 226.36
+630 240.61
+631 251.93
+632 259.13
+633 265.36
+634 269.71
+635 270.27
+636 266.44
+637 260.44
+638 251.94
+639 240.79
+640 228.95
+641 215.90
+642 203.25
+643 190.01
+644 177.92
+645 165.60
+646 155.49
+647 144.32
+648 136.07
+649 127.64
+650 120.28
+651 114.57
+652 109.99
+653 106.36
+654 104.49
+655 103.84
+656 103.84
+657 105.77
+658 107.83
+659 112.41
+660 117.71
+661 120.66
+662 120.66
+663 120.66
+664 120.66
+665 120.66
+666 120.66
+667 120.66
+668 210.13
+669 225.03
+670 238.76
+671 250.50
+672 261.18
+673 269.22
+674 274.18
+675 272.28
+676 266.66
+677 258.68
+678 249.88
+679 239.94
+680 227.14
+681 213.22
+682 197.58
+683 184.86
+684 172.52
+685 160.19
+686 149.20
+687 137.49
+688 127.86
+689 118.91
+690 110.49
+691 102.73
+692 96.33
+693 90.95
+694 86.38
+695 82.72
+696 79.65
+697 77.61
+698 75.70
+699 74.49
+700 74.49
+701 74.49
+702 76.48
+703 79.14
+704 82.84
+705 87.86
+706 92.69
+707 92.69
+708 92.69
+709 92.69
+710 92.69
+711 92.69
+712 92.69
+713 92.69
+714 181.33
+715 196.86
+716 210.98
+717 223.13
+718 233.90
+719 243.19
+720 250.57
+721 255.00
+722 256.36
+723 255.16
+724 250.15
+725 242.80
+726 233.82
+727 223.41
+728 210.81
+729 199.04
+730 187.39
+731 174.14
+732 162.62
+733 151.39
+734 139.59
+735 128.71
+736 119.17
+737 111.02
+738 103.91
+739 96.78
+740 91.56
+741 87.13
+742 83.22
+743 80.50
+744 76.83
+745 74.24
+746 70.80
+747 69.04
+748 67.12
+749 66.51
+750 66.51
+751 68.77
+752 72.19
+753 77.34
+754 84.04
+755 88.55
+756 88.55
+757 88.55
+758 88.55
+759 88.55
+760 88.55
+761 88.55
+762 88.55
+763 190.51
+764 207.14
+765 220.57
+766 232.51
+767 243.35
+768 252.41
+769 258.62
+770 262.18
+771 262.18
+772 259.10
+773 253.54
+774 245.44
+775 235.55
+776 223.43
+777 209.91
+778 197.52
+779 185.90
+780 172.13
+781 161.09
+782 150.58
+783 140.37
+784 130.27
+785 122.13
+786 114.99
+787 108.76
+788 104.67
+789 100.36
+790 97.61
+791 95.48
+792 94.83
+793 95.45
+794 97.15
+795 100.73
+796 105.10
+797 111.46
+798 118.27
+799 118.27
+800 118.27
+801 118.27
+802 118.27
+803 118.27
+804 118.27
+805 202.92
+806 220.25
+807 233.35
+808 243.48
+809 254.85
+810 265.75
+811 272.62
+812 272.62
+813 269.36
+814 261.82
+815 252.85
+816 244.08
+817 232.96
+818 219.59
+819 207.32
+820 193.87
+821 181.77
+822 168.60
+823 155.76
+824 144.03
+825 134.07
+826 123.46
+827 114.47
+828 107.64
+829 100.46
+830 94.53
+831 89.28
+832 84.59
+833 80.96
+834 78.54
+835 76.28
+836 75.51
+837 75.51
+838 76.55
+839 78.55
+840 81.57
+841 85.18
+842 90.61
+843 96.01
+844 96.01
+845 96.01
+846 96.01
+847 96.01
+848 96.01
+849 96.01
+850 96.01
+851 184.51
+852 201.57
+853 216.33
+854 228.69
+855 239.90
+856 250.41
+857 257.91
+858 262.29
+859 263.41
+860 261.70
+861 256.75
+862 246.82
+863 236.35
+864 225.17
+865 212.90
+866 201.61
+867 188.42
+868 175.92
+869 163.70
+870 153.18
+871 142.89
+872 132.95
+873 125.18
+874 117.61
+875 110.36
+876 104.56
+877 100.13
+878 96.64
+879 93.52
+880 91.91
+881 91.91
+882 91.91
+883 93.84
+884 97.13
+885 101.08
+886 107.19
+887 111.89
+888 111.89
+889 111.89
+890 111.89
+891 111.89
+892 111.89
+893 111.89
+894 195.89
+895 212.65
+896 226.60
+897 239.28
+898 251.28
+899 259.92
+900 266.03
+901 269.76
+902 269.76
+903 265.55
+904 258.92
+905 250.42
+906 240.04
+907 229.03
+908 216.69
+909 204.21
+910 191.25
+911 178.40
+912 168.31
+913 157.47
+914 148.62
+915 139.12
+916 129.54
+917 121.65
+918 114.59
+919 109.30
+920 106.39
+921 104.71
+922 104.71
+923 106.41
+924 109.22
+925 113.62
+926 118.31
+927 124.34
+928 124.34
+929 124.34
+930 124.34
+931 124.34
+932 124.34
+933 124.34
+934 205.67
+935 221.25
+936 235.02
+937 247.47
+938 258.37
+939 267.42
+940 272.60
+941 272.00
+942 267.91
+943 260.38
+944 251.10
+945 241.32
+946 230.96
+947 217.34
+948 204.99
+949 191.24
+950 178.58
+951 164.79
+952 153.07
+953 141.06
+954 129.86
+955 119.79
+956 111.13
+957 103.53
+958 96.95
+959 89.42
+960 85.22
+961 80.54
+962 76.85
+963 74.41
+964 72.12
+965 71.21
+966 71.21
+967 71.21
+968 72.13
+969 74.22
+970 76.95
+971 80.65
+972 85.36
+973 90.60
+974 92.36
+975 92.36
+976 92.36
+977 92.36
+978 92.36
+979 92.36
+980 92.36
+981 92.36
+982 191.27
+983 205.03
+984 218.89
+985 230.87
+986 241.63
+987 249.83
+988 255.42
+989 257.98
+990 257.33
+991 252.87
+992 245.90
+993 237.78
+994 227.14
+995 214.67
+996 202.31
+997 188.68
+998 175.96
+999 163.25
+1000 151.43
+1001 139.79
+1002 130.40
+1003 118.92
+1004 110.88
+1005 101.92
+1006 94.45
+1007 88.13
+1008 83.19
+1009 79.11
+1010 74.60
+1011 71.86
+1012 68.77
+1013 66.57
+1014 65.24
+1015 64.41
+1016 64.41
+1017 64.92
+1018 66.62
+1019 68.93
+1020 72.77
+1021 77.76
+1022 83.41
+1023 89.19
+1024 89.19
+1025 89.19
+1026 89.19
+1027 89.19
+1028 89.19
+1029 89.19
+1030 89.19
+1031 182.68
+1032 199.88
+1033 214.62
+1034 227.29
+1035 238.62
+1036 249.01
+1037 256.68
+1038 262.71
+1039 263.44
+1040 259.87
+1041 254.66
+1042 248.11
+1043 240.01
+1044 229.30
+1045 216.52
+1046 205.15
+1047 192.49
+1048 179.70
+1049 167.51
+1050 156.31
+1051 145.97
+1052 135.93
+1053 128.06
+1054 119.45
+1055 113.01
+1056 108.31
+1057 103.79
+1058 100.92
+1059 98.90
+1060 98.28
+1061 98.28
+1062 100.12
+1063 102.38
+1064 106.07
+1065 111.06
+1066 117.00
+1067 117.00
+1068 117.00
+1069 117.00
+1070 117.00
+1071 117.00
+1072 117.00
+1073 202.42
+1074 217.46
+1075 232.83
+1076 245.05
+1077 256.39
+1078 265.28
+1079 271.80
+1080 271.80
+1081 268.63
+1082 261.21
+1083 253.57
+1084 244.41
+1085 233.79
+1086 220.80
+1087 209.24
+1088 196.54
+1089 183.38
+1090 170.14
+1091 157.79
+1092 144.31
+1093 131.53
+1094 122.20
+1095 113.46
+1096 106.57
+1097 100.93
+1098 96.80
+1099 92.10
+1100 88.77
+1101 86.07
+1102 83.75
+1103 82.40
+1104 82.40
+1105 82.40
+1106 82.40
+1107 82.40
+1108 84.82
+1109 88.34
+1110 92.06
+1111 98.22
+1112 103.08
+1113 103.08
+1114 103.08
+1115 103.08
+1116 103.08
+1117 103.08
+1118 196.25
+1119 210.62
+1120 223.53
+1121 235.01
+1122 245.30
+1123 253.56
+1124 259.86
+1125 261.87
+1126 261.87
+1127 257.71
+1128 251.10
+1129 242.25
+1130 232.00
+1131 219.62
+1132 207.54
+1133 194.54
+1134 182.85
+1135 170.49
+1136 158.24
+1137 147.54
+1138 137.40
+1139 129.81
+1140 121.07
+1141 114.39
+1142 109.32
+1143 103.67
+1144 99.51
+1145 96.53
+1146 94.67
+1147 93.79
+1148 93.79
+1149 95.31
+1150 98.43
+1151 102.95
+1152 109.01
+1153 115.86
+1154 115.86
+1155 115.86
+1156 115.86
+1157 115.86
+1158 115.86
+1159 115.86
+1160 115.86
+1161 209.63
+1162 224.03
+1163 236.93
+1164 249.17
+1165 259.34
+1166 267.41
+1167 271.07
+1168 270.51
+1169 263.93
+1170 255.80
+1171 246.03
+1172 235.96
+1173 223.79
+1174 209.68
+1175 196.98
+1176 184.70
+1177 171.16
+1178 157.06
+1179 145.05
+1180 133.80
+1181 123.45
+1182 114.06
+1183 106.78
+1184 98.12
+1185 91.19
+1186 84.78
+1187 80.10
+1188 74.95
+1189 71.88
+1190 68.51
+1191 66.13
+1192 64.64
+1193 63.65
+1194 63.06
+1195 63.06
+1196 64.29
+1197 66.41
+1198 68.95
+1199 73.12
+1200 78.00
+1201 83.67
+1202 85.55
+1203 85.55
+1204 85.55
+1205 85.55
+1206 85.55
+1207 85.55
+1208 85.55
+1209 85.55
+1210 187.86
+1211 202.65
+1212 216.23
+1213 228.24
+1214 239.81
+1215 248.77
+1216 252.97
+1217 254.72
+1218 254.72
+1219 253.22
+1220 247.80
+1221 239.99
+1222 229.87
+1223 218.26
+1224 205.99
+1225 193.09
+1226 180.59
+1227 167.42
+1228 154.33
+1229 142.32
+1230 131.88
+1231 122.32
+1232 112.84
+1233 104.07
+1234 96.62
+1235 90.02
+1236 84.43
+1237 79.90
+1238 74.59
+1239 71.27
+1240 67.37
+1241 64.97
+1242 62.82
+1243 61.60
+1244 61.60
+1245 61.60
+1246 62.99
+1247 64.80
+1248 68.51
+1249 72.70
+1250 77.97
+1251 84.10
+1252 88.07
+1253 88.07
+1254 88.07
+1255 88.07
+1256 88.07
+1257 88.07
+1258 88.07
+1259 88.07
+1260 184.25
+1261 199.56
+1262 212.97
+1263 226.37
+1264 237.23
+1265 247.66
+1266 254.97
+1267 259.77
+1268 261.89
+1269 260.39
+1270 255.67
+1271 248.49
+1272 238.75
+1273 228.34
+1274 215.95
+1275 201.71
+1276 187.12
+1277 174.33
+1278 162.05
+1279 151.79
+1280 142.67
+1281 134.03
+1282 126.03
+1283 118.64
+1284 112.00
+1285 107.16
+1286 103.71
+1287 100.06
+1288 98.59
+1289 97.68
+1290 97.68
diff --git a/test/resplit.awk b/test/resplit.awk
new file mode 100644
index 00000000..f75fe397
--- /dev/null
+++ b/test/resplit.awk
@@ -0,0 +1 @@
+{ FS = ":"; $0 = $0; print $2 }
diff --git a/test/resplit.in b/test/resplit.in
new file mode 100644
index 00000000..5f06f10b
--- /dev/null
+++ b/test/resplit.in
@@ -0,0 +1 @@
+a:b:c d:e:f
diff --git a/test/rs.awk b/test/rs.awk
new file mode 100644
index 00000000..d3a3cf04
--- /dev/null
+++ b/test/rs.awk
@@ -0,0 +1,2 @@
+BEGIN { RS = "" }
+{ print $1, $2 }
diff --git a/test/rstest1.awk b/test/rstest1.awk
new file mode 100644
index 00000000..3eb88366
--- /dev/null
+++ b/test/rstest1.awk
@@ -0,0 +1,7 @@
+BEGIN {
+ RS = ""
+ FS = ":"
+ s = "a:b\nc:d"
+ print split(s,a)
+ print length(a[2])
+}
diff --git a/test/rstest1.ok b/test/rstest1.ok
new file mode 100644
index 00000000..a5c88062
--- /dev/null
+++ b/test/rstest1.ok
@@ -0,0 +1,2 @@
+3
+3
diff --git a/test/rstest2.awk b/test/rstest2.awk
new file mode 100644
index 00000000..5ed4701d
--- /dev/null
+++ b/test/rstest2.awk
@@ -0,0 +1,6 @@
+BEGIN {
+ RS = ""
+ FS = "\\"
+ $0 = "a\\b"
+ print $1
+}
diff --git a/test/rstest2.ok b/test/rstest2.ok
new file mode 100644
index 00000000..78981922
--- /dev/null
+++ b/test/rstest2.ok
@@ -0,0 +1 @@
+a
diff --git a/test/sclforin.ok b/test/sclforin.ok
index f41fc77a..948df438 100644
--- a/test/sclforin.ok
+++ b/test/sclforin.ok
@@ -1 +1,2 @@
gawk: sclforin.awk:1: fatal: attempt to use scalar `j' as array
+EXIT CODE: 2
diff --git a/test/sclifin.ok b/test/sclifin.ok
index dc746231..5bc93016 100644
--- a/test/sclifin.ok
+++ b/test/sclifin.ok
@@ -1 +1,2 @@
gawk: sclifin.awk:7: fatal: attempt to use scalar `j' as array
+EXIT CODE: 2
diff --git a/test/space.ok b/test/space.ok
new file mode 100644
index 00000000..0f769564
--- /dev/null
+++ b/test/space.ok
@@ -0,0 +1,2 @@
+gawk: fatal: can't open source file ` ' for reading (No such file or directory)
+EXIT CODE: 2
diff --git a/test/splitarr.awk b/test/splitarr.awk
new file mode 100644
index 00000000..c1185a4d
--- /dev/null
+++ b/test/splitarr.awk
@@ -0,0 +1,5 @@
+BEGIN {
+ a[1] = "elephantie"
+ a[2] = "e"
+ print split(a[1],a,a[2]), a[2], a[3], split(a[2],a,a[2])
+}
diff --git a/test/splitarr.ok b/test/splitarr.ok
new file mode 100644
index 00000000..9402b94f
--- /dev/null
+++ b/test/splitarr.ok
@@ -0,0 +1 @@
+4 l phanti 2
diff --git a/test/strtod.awk b/test/strtod.awk
index 27df8a4f..3326478e 100644
--- a/test/strtod.awk
+++ b/test/strtod.awk
@@ -1 +1,5 @@
-{ x = "0x" $1 ; print x, x + 0 }
+{
+ x = "0x" $1 ; print x, x + 0
+ for (i=1; i<=NF; i++)
+ if ($i) print $i, "is not zero"
+}
diff --git a/test/strtod.in b/test/strtod.in
index 51b40081..d7f71aa9 100644
--- a/test/strtod.in
+++ b/test/strtod.in
@@ -1 +1 @@
-345
+345 0 00 0e0 0E1 00E0 000e-5 .0e+0
diff --git a/test/strtod.ok b/test/strtod.ok
index bedd0f23..a47a9b17 100644
--- a/test/strtod.ok
+++ b/test/strtod.ok
@@ -1 +1,2 @@
0x345 0
+345 is not zero
diff --git a/test/synerr1.awk b/test/synerr1.awk
new file mode 100644
index 00000000..131708d2
--- /dev/null
+++ b/test/synerr1.awk
@@ -0,0 +1,4 @@
+# program to make sure we don't infinite
+# syntax errors
+
+print "hi"
diff --git a/test/synerr1.ok b/test/synerr1.ok
new file mode 100644
index 00000000..e180f132
--- /dev/null
+++ b/test/synerr1.ok
@@ -0,0 +1,3 @@
+gawk: synerr1.awk:4: print "hi"
+gawk: synerr1.awk:4: ^ syntax error
+EXIT CODE: 1
diff --git a/test/uninit2.awk b/test/uninit2.awk
new file mode 100644
index 00000000..9ded5575
--- /dev/null
+++ b/test/uninit2.awk
@@ -0,0 +1,2 @@
+BEGIN { a = a + 1; x = a; print a}
+BEGIN { ++b; x = b; print b}
diff --git a/test/uninit2.ok b/test/uninit2.ok
new file mode 100644
index 00000000..2001a39b
--- /dev/null
+++ b/test/uninit2.ok
@@ -0,0 +1,4 @@
+gawk: uninit2.awk:1: warning: reference to uninitialized variable `a'
+1
+gawk: uninit2.awk:2: warning: reference to uninitialized variable `b'
+1
diff --git a/test/uninitialized.awk b/test/uninitialized.awk
new file mode 100644
index 00000000..09bb643b
--- /dev/null
+++ b/test/uninitialized.awk
@@ -0,0 +1,3 @@
+BEGIN {
+ a += 2
+}
diff --git a/test/uninitialized.ok b/test/uninitialized.ok
new file mode 100644
index 00000000..86ab474c
--- /dev/null
+++ b/test/uninitialized.ok
@@ -0,0 +1 @@
+gawk: uninitialized.awk:2: warning: reference to uninitialized variable `a'
diff --git a/test/zeroe0.awk b/test/zeroe0.awk
new file mode 100644
index 00000000..5dc9c6bc
--- /dev/null
+++ b/test/zeroe0.awk
@@ -0,0 +1,40 @@
+# From sbohdjal@matrox.com Tue Dec 31 11:41:25 2002
+# Return-Path: <sbohdjal@matrox.com>
+# X-From_: sbohdjal@matrox.com Mon Dec 30 17:34:41 2002
+# Message-Id: <4.3.1.1.20021230101824.00fc4bd8@mailbox.matrox.com>
+# Date: Mon, 30 Dec 2002 10:33:10 -0500
+# To: bug-gawk@gnu.org
+# From: Serge Bohdjalian <sbohdjal@matrox.com>
+# Subject: GAWK 3.1.1 bug, DJGPP port
+#
+# When I run the following AWK file...
+#
+BEGIN {
+ $0 = "00E0";
+ print $0 ", " ($0 && 1) ", " ($0 != "");
+ $1 = "00E0";
+ print $1 ", " ($1 && 1) ", " ($1 != "");
+}
+#
+# With the SimTel version of GAWK 3.1.1 for Windows (downloadable from
+# ftp://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/v2gnu/), I get the following
+# output...
+#
+# 00E0, 0, 1
+# 00E0, 1, 1
+#
+# With the Cygwin version of GAWK 3.1.1 for Windows, I get...
+#
+# 00E0, 1, 1
+# 00E0, 1, 1
+#
+# As far as I know, if "$0" isn't blank, the value of "($0 && 1)" should be
+# "1" (true). I get the same problem if I substitute "00E0" with "00E1" to
+# "00E9". Other strings don't have have this problem (for example, "00EA").
+# The problem occurs whether I use file input or whether I manually assign
+# "$0" (as above).
+#
+# The problem is also discussed in a comp.lang.awk posting ("Bug in GAWK
+# 3.1.1?", Dec. 27, 2002).
+#
+# -Serge
diff --git a/test/zeroe0.ok b/test/zeroe0.ok
new file mode 100644
index 00000000..cdf28fb6
--- /dev/null
+++ b/test/zeroe0.ok
@@ -0,0 +1,2 @@
+00E0, 1, 1
+00E0, 1, 1