awk/testdir
Martijn Dekker fed1a562c3 Make I/O errors fatal instead of mere warnings (#63)
An input/output error indicates a fatal condition, even if it
occurs when closing a file. Awk should not return success on I/O
error, but treat I/O errors as it already treats write errors.

Test case:

$ (trap '' PIPE; awk 'BEGIN { print "hi"; }'; echo "E $?" >&2) | :
awk: i/o error occurred while closing /dev/stdout
 source line number 1
E 2

The test case pipes a line into a dummy command that reads no
input, with SIGPIPE ignored so we rely on awk's own I/O checking.
No write error is detected, because the pipe is buffered; the
broken pipe is only detected as an I/O error on closing stdout.

Before this commit, "E 0" was printed (indicating status 0/success)
because an I/O error merely produced a warning. A shell script
was unable to detect the I/O error using the exit status.
2020-01-17 14:02:57 +02:00
..
arnold-fixes.tar Extract testdir. 2019-06-23 03:13:57 -06:00
beebe.tar Extract testdir. 2019-06-23 03:13:57 -06:00
bib Extract testdir. 2019-06-23 03:13:57 -06:00
bundle.awk Extract testdir. 2019-06-23 03:13:57 -06:00
chem.awk Extract testdir. 2019-06-23 03:13:57 -06:00
cleanup Extract testdir. 2019-06-23 03:13:57 -06:00
Compare.drek Extract testdir. 2019-06-23 03:13:57 -06:00
Compare.p Extract testdir. 2019-06-23 03:13:57 -06:00
Compare.t Extract testdir. 2019-06-23 03:13:57 -06:00
Compare.T1 Extract testdir. 2019-06-23 03:13:57 -06:00
Compare.tt Extract testdir. 2019-06-23 03:13:57 -06:00
countries Extract testdir. 2019-06-23 03:13:57 -06:00
ctimes Extract testdir. 2019-06-23 03:13:57 -06:00
echo.c Extract testdir. 2019-06-23 03:13:57 -06:00
funstack.awk Extract testdir. 2019-06-23 03:13:57 -06:00
funstack.in Extract testdir. 2019-06-23 03:13:57 -06:00
funstack.ok Extract testdir. 2019-06-23 03:13:57 -06:00
ind Extract testdir. 2019-06-23 03:13:57 -06:00
latin1 Extract testdir. 2019-06-23 03:13:57 -06:00
lilly.ifile Extract testdir. 2019-06-23 03:13:57 -06:00
lilly.out Extract testdir. 2019-06-23 03:13:57 -06:00
lilly.progs Extract testdir. 2019-06-23 03:13:57 -06:00
lsd1.p Extract testdir. 2019-06-23 03:13:57 -06:00
NOTES Extract testdir. 2019-06-23 03:13:57 -06:00
p.1 Extract testdir. 2019-06-23 03:13:57 -06:00
p.2 Extract testdir. 2019-06-23 03:13:57 -06:00
p.3 Extract testdir. 2019-06-23 03:13:57 -06:00
p.4 Extract testdir. 2019-06-23 03:13:57 -06:00
p.5 Extract testdir. 2019-06-23 03:13:57 -06:00
p.5a Extract testdir. 2019-06-23 03:13:57 -06:00
p.6 Extract testdir. 2019-06-23 03:13:57 -06:00
p.7 Extract testdir. 2019-06-23 03:13:57 -06:00
p.8 Extract testdir. 2019-06-23 03:13:57 -06:00
p.9 Extract testdir. 2019-06-23 03:13:57 -06:00
p.10 Extract testdir. 2019-06-23 03:13:57 -06:00
p.11 Extract testdir. 2019-06-23 03:13:57 -06:00
p.12 Extract testdir. 2019-06-23 03:13:57 -06:00
p.13 Extract testdir. 2019-06-23 03:13:57 -06:00
p.14 Extract testdir. 2019-06-23 03:13:57 -06:00
p.15 Extract testdir. 2019-06-23 03:13:57 -06:00
p.16 Extract testdir. 2019-06-23 03:13:57 -06:00
p.17 Extract testdir. 2019-06-23 03:13:57 -06:00
p.18 Extract testdir. 2019-06-23 03:13:57 -06:00
p.19 Extract testdir. 2019-06-23 03:13:57 -06:00
p.20 Extract testdir. 2019-06-23 03:13:57 -06:00
p.21 Extract testdir. 2019-06-23 03:13:57 -06:00
p.21a Extract testdir. 2019-06-23 03:13:57 -06:00
p.22 Extract testdir. 2019-06-23 03:13:57 -06:00
p.23 Extract testdir. 2019-06-23 03:13:57 -06:00
p.24 Extract testdir. 2019-06-23 03:13:57 -06:00
p.25 Extract testdir. 2019-06-23 03:13:57 -06:00
p.26 Extract testdir. 2019-06-23 03:13:57 -06:00
p.26a Extract testdir. 2019-06-23 03:13:57 -06:00
p.27 Extract testdir. 2019-06-23 03:13:57 -06:00
p.28 Extract testdir. 2019-06-23 03:13:57 -06:00
p.29 Extract testdir. 2019-06-23 03:13:57 -06:00
p.30 Extract testdir. 2019-06-23 03:13:57 -06:00
p.31 Extract testdir. 2019-06-23 03:13:57 -06:00
p.32 Extract testdir. 2019-06-23 03:13:57 -06:00
p.33 Extract testdir. 2019-06-23 03:13:57 -06:00
p.34 Extract testdir. 2019-06-23 03:13:57 -06:00
p.35 Extract testdir. 2019-06-23 03:13:57 -06:00
p.36 Extract testdir. 2019-06-23 03:13:57 -06:00
p.37 Extract testdir. 2019-06-23 03:13:57 -06:00
p.38 Extract testdir. 2019-06-23 03:13:57 -06:00
p.39 Extract testdir. 2019-06-23 03:13:57 -06:00
p.40 Extract testdir. 2019-06-23 03:13:57 -06:00
p.41 Extract testdir. 2019-06-23 03:13:57 -06:00
p.42 Extract testdir. 2019-06-23 03:13:57 -06:00
p.43 Extract testdir. 2019-06-23 03:13:57 -06:00
p.44 Extract testdir. 2019-06-23 03:13:57 -06:00
p.45 Extract testdir. 2019-06-23 03:13:57 -06:00
p.46 Extract testdir. 2019-06-23 03:13:57 -06:00
p.47 Extract testdir. 2019-06-23 03:13:57 -06:00
p.48 Extract testdir. 2019-06-23 03:13:57 -06:00
p.48a Extract testdir. 2019-06-23 03:13:57 -06:00
p.48b Extract testdir. 2019-06-23 03:13:57 -06:00
p.49 Extract testdir. 2019-06-23 03:13:57 -06:00
p.50 Extract testdir. 2019-06-23 03:13:57 -06:00
p.51 Extract testdir. 2019-06-23 03:13:57 -06:00
p.52 Extract testdir. 2019-06-23 03:13:57 -06:00
p.table Extract testdir. 2019-06-23 03:13:57 -06:00
penicil.p Extract testdir. 2019-06-23 03:13:57 -06:00
README.TESTS Extract testdir. 2019-06-23 03:13:57 -06:00
REGRESS Extract testdir. 2019-06-23 03:13:57 -06:00
res.p Extract testdir. 2019-06-23 03:13:57 -06:00
sgi.ctimes Extract testdir. 2019-06-23 03:13:57 -06:00
t.0 Extract testdir. 2019-06-23 03:13:57 -06:00
t.0a Extract testdir. 2019-06-23 03:13:57 -06:00
t.1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.1.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.2.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.3.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.4 Extract testdir. 2019-06-23 03:13:57 -06:00
t.4.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.5.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.6 Extract testdir. 2019-06-23 03:13:57 -06:00
t.6.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.6a Extract testdir. 2019-06-23 03:13:57 -06:00
t.6b Extract testdir. 2019-06-23 03:13:57 -06:00
t.8.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.8.y Extract testdir. 2019-06-23 03:13:57 -06:00
T.-f-f Extract testdir. 2019-06-23 03:13:57 -06:00
t.a Extract testdir. 2019-06-23 03:13:57 -06:00
t.addops Extract testdir. 2019-06-23 03:13:57 -06:00
t.aeiou Extract testdir. 2019-06-23 03:13:57 -06:00
t.aeiouy Extract testdir. 2019-06-23 03:13:57 -06:00
T.argv Extract testdir. 2019-06-23 03:13:57 -06:00
t.arith Extract testdir. 2019-06-23 03:13:57 -06:00
T.arnold Extract testdir. 2019-06-23 03:13:57 -06:00
t.array Extract testdir. 2019-06-23 03:13:57 -06:00
t.array1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.array2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.assert Extract testdir. 2019-06-23 03:13:57 -06:00
t.avg Extract testdir. 2019-06-23 03:13:57 -06:00
t.b.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.be Extract testdir. 2019-06-23 03:13:57 -06:00
T.beebe Extract testdir. 2019-06-23 03:13:57 -06:00
t.beginexit Extract testdir. 2019-06-23 03:13:57 -06:00
t.beginnext Extract testdir. 2019-06-23 03:13:57 -06:00
t.break Extract testdir. 2019-06-23 03:13:57 -06:00
t.break1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.break2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.break3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.bug1 Extract testdir. 2019-06-23 03:13:57 -06:00
T.builtin Extract testdir. 2019-06-23 03:13:57 -06:00
t.builtins Extract testdir. 2019-06-23 03:13:57 -06:00
t.cat Extract testdir. 2019-06-23 03:13:57 -06:00
t.cat1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.cat2 Extract testdir. 2019-06-23 03:13:57 -06:00
T.chem Small fixes in the test suite. 2019-11-08 14:36:37 +02:00
T.close Extract testdir. 2019-06-23 03:13:57 -06:00
T.clv Extract testdir. 2019-06-23 03:13:57 -06:00
t.cmp Extract testdir. 2019-06-23 03:13:57 -06:00
t.coerce Extract testdir. 2019-06-23 03:13:57 -06:00
t.coerce2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.comment Extract testdir. 2019-06-23 03:13:57 -06:00
t.comment1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.concat Extract testdir. 2019-06-23 03:13:57 -06:00
t.cond Extract testdir. 2019-06-23 03:13:57 -06:00
t.contin Extract testdir. 2019-06-23 03:13:57 -06:00
t.count Extract testdir. 2019-06-23 03:13:57 -06:00
t.crlf Extract testdir. 2019-06-23 03:13:57 -06:00
T.csconcat rename T.concat to T.csconcat to avoid case-insensitive conflict (#64) 2020-01-10 12:13:26 +02:00
t.cum Extract testdir. 2019-06-23 03:13:57 -06:00
t.d.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.delete0 Extract testdir. 2019-06-23 03:13:57 -06:00
t.delete1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.delete2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.delete3 Extract testdir. 2019-06-23 03:13:57 -06:00
T.delete Extract testdir. 2019-06-23 03:13:57 -06:00
t.do Extract testdir. 2019-06-23 03:13:57 -06:00
t.e Extract testdir. 2019-06-23 03:13:57 -06:00
t.else Extract testdir. 2019-06-23 03:13:57 -06:00
T.errmsg Extract testdir. 2019-06-23 03:13:57 -06:00
t.exit Extract testdir. 2019-06-23 03:13:57 -06:00
t.exit1 Extract testdir. 2019-06-23 03:13:57 -06:00
T.expr Fix printf format conversions. (#59) 2019-12-11 09:17:34 +02:00
T.exprconv Extract testdir. 2019-06-23 03:13:57 -06:00
t.f Extract testdir. 2019-06-23 03:13:57 -06:00
t.f0 Extract testdir. 2019-06-23 03:13:57 -06:00
t.f1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.f2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.f3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.f4 Extract testdir. 2019-06-23 03:13:57 -06:00
t.f.x Extract testdir. 2019-06-23 03:13:57 -06:00
T.flags Extract testdir. 2019-06-23 03:13:57 -06:00
t.for Extract testdir. 2019-06-23 03:13:57 -06:00
t.for1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.for2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.for3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.format4 Extract testdir. 2019-06-23 03:13:57 -06:00
t.fun Extract testdir. 2019-06-23 03:13:57 -06:00
t.fun0 Extract testdir. 2019-06-23 03:13:57 -06:00
t.fun1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.fun2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.fun3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.fun4 Extract testdir. 2019-06-23 03:13:57 -06:00
t.fun5 Extract testdir. 2019-06-23 03:13:57 -06:00
T.func Extract testdir. 2019-06-23 03:13:57 -06:00
T.gawk Extract testdir. 2019-06-23 03:13:57 -06:00
t.getline1 Extract testdir. 2019-06-23 03:13:57 -06:00
T.getline Extract testdir. 2019-06-23 03:13:57 -06:00
t.getval Extract testdir. 2019-06-23 03:13:57 -06:00
t.gsub Extract testdir. 2019-06-23 03:13:57 -06:00
t.gsub1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.gsub3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.gsub4 Extract testdir. 2019-06-23 03:13:57 -06:00
t.i.x Extract testdir. 2019-06-23 03:13:57 -06:00
t.if Extract testdir. 2019-06-23 03:13:57 -06:00
t.in Extract testdir. 2019-06-23 03:13:57 -06:00
t.in1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.in2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.in3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.incr Extract testdir. 2019-06-23 03:13:57 -06:00
t.incr2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.incr3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.index Extract testdir. 2019-06-23 03:13:57 -06:00
T.int-expr Bug fix in interval expressions. 2019-12-27 12:03:35 +02:00
t.intest Extract testdir. 2019-06-23 03:13:57 -06:00
t.intest2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.j.x Extract testdir. 2019-06-23 03:13:57 -06:00
T.latin1 Extract testdir. 2019-06-23 03:13:57 -06:00
T.lilly Small fixes in the test suite. 2019-11-08 14:36:37 +02:00
t.longstr Extract testdir. 2019-06-23 03:13:57 -06:00
T.main Extract testdir. 2019-06-23 03:13:57 -06:00
t.makef Extract testdir. 2019-06-23 03:13:57 -06:00
t.match Extract testdir. 2019-06-23 03:13:57 -06:00
t.match1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.max Extract testdir. 2019-06-23 03:13:57 -06:00
T.misc Make I/O errors fatal instead of mere warnings (#63) 2020-01-17 14:02:57 +02:00
t.mod Extract testdir. 2019-06-23 03:13:57 -06:00
t.monotone Extract testdir. 2019-06-23 03:13:57 -06:00
t.nameval Extract testdir. 2019-06-23 03:13:57 -06:00
t.next Extract testdir. 2019-06-23 03:13:57 -06:00
T.nextfile Extract testdir. 2019-06-23 03:13:57 -06:00
t.NF Extract testdir. 2019-06-23 03:13:57 -06:00
t.not Extract testdir. 2019-06-23 03:13:57 -06:00
t.null0 Extract testdir. 2019-06-23 03:13:57 -06:00
t.ofmt Extract testdir. 2019-06-23 03:13:57 -06:00
t.ofs Extract testdir. 2019-06-23 03:13:57 -06:00
t.ors Extract testdir. 2019-06-23 03:13:57 -06:00
T.overflow Extract testdir. 2019-06-23 03:13:57 -06:00
t.pat Extract testdir. 2019-06-23 03:13:57 -06:00
t.pipe Extract testdir. 2019-06-23 03:13:57 -06:00
t.pp Extract testdir. 2019-06-23 03:13:57 -06:00
t.pp1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.pp2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.printf Extract testdir. 2019-06-23 03:13:57 -06:00
t.printf2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.quote Extract testdir. 2019-06-23 03:13:57 -06:00
t.randk Extract testdir. 2019-06-23 03:13:57 -06:00
t.re1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.re1a Extract testdir. 2019-06-23 03:13:57 -06:00
t.re2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.re3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.re4 Extract testdir. 2019-06-23 03:13:57 -06:00
t.re5 Extract testdir. 2019-06-23 03:13:57 -06:00
t.re7 Extract testdir. 2019-06-23 03:13:57 -06:00
T.re Extract testdir. 2019-06-23 03:13:57 -06:00
t.rec Extract testdir. 2019-06-23 03:13:57 -06:00
T.recache Extract testdir. 2019-06-23 03:13:57 -06:00
t.redir1 Extract testdir. 2019-06-23 03:13:57 -06:00
T.redir Extract testdir. 2019-06-23 03:13:57 -06:00
t.reFS Extract testdir. 2019-06-23 03:13:57 -06:00
t.reg Extract testdir. 2019-06-23 03:13:57 -06:00
t.roff Extract testdir. 2019-06-23 03:13:57 -06:00
t.sep Extract testdir. 2019-06-23 03:13:57 -06:00
t.seqno Extract testdir. 2019-06-23 03:13:57 -06:00
t.set0 Extract testdir. 2019-06-23 03:13:57 -06:00
t.set0a Extract testdir. 2019-06-23 03:13:57 -06:00
t.set0b Extract testdir. 2019-06-23 03:13:57 -06:00
t.set1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.set2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.set3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.split1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.split2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.split2a Extract testdir. 2019-06-23 03:13:57 -06:00
t.split3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.split4 Extract testdir. 2019-06-23 03:13:57 -06:00
t.split8 Extract testdir. 2019-06-23 03:13:57 -06:00
t.split9 Extract testdir. 2019-06-23 03:13:57 -06:00
t.split9a Extract testdir. 2019-06-23 03:13:57 -06:00
T.split Revise testdir/T.split per PR #42. 2019-07-16 20:50:23 +03:00
t.stately Extract testdir. 2019-06-23 03:13:57 -06:00
t.strcmp Extract testdir. 2019-06-23 03:13:57 -06:00
t.strcmp1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.strnum Extract testdir. 2019-06-23 03:13:57 -06:00
t.sub0 Extract testdir. 2019-06-23 03:13:57 -06:00
t.sub1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.sub2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.sub3 Extract testdir. 2019-06-23 03:13:57 -06:00
T.sub Extract testdir. 2019-06-23 03:13:57 -06:00
t.substr Extract testdir. 2019-06-23 03:13:57 -06:00
t.substr1 Extract testdir. 2019-06-23 03:13:57 -06:00
T.system Extract testdir. 2019-06-23 03:13:57 -06:00
t.time Extract testdir. 2019-06-23 03:13:57 -06:00
t.vf Extract testdir. 2019-06-23 03:13:57 -06:00
t.vf1 Extract testdir. 2019-06-23 03:13:57 -06:00
t.vf2 Extract testdir. 2019-06-23 03:13:57 -06:00
t.vf3 Extract testdir. 2019-06-23 03:13:57 -06:00
t.x Extract testdir. 2019-06-23 03:13:57 -06:00
td.1 Extract testdir. 2019-06-23 03:13:57 -06:00
test.countries Extract testdir. 2019-06-23 03:13:57 -06:00
test.data Extract testdir. 2019-06-23 03:13:57 -06:00
time.c Extract testdir. 2019-06-23 03:13:57 -06:00
try Extract testdir. 2019-06-23 03:13:57 -06:00
tt.01 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.02 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.02a Extract testdir. 2019-06-23 03:13:57 -06:00
tt.03 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.03a Extract testdir. 2019-06-23 03:13:57 -06:00
tt.04 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.05 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.06 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.07 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.08 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.09 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.10 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.10a Extract testdir. 2019-06-23 03:13:57 -06:00
tt.11 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.12 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.13 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.13a Extract testdir. 2019-06-23 03:13:57 -06:00
tt.14 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.15 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.16 Extract testdir. 2019-06-23 03:13:57 -06:00
tt.big Extract testdir. 2019-06-23 03:13:57 -06:00
u.main Extract testdir. 2019-06-23 03:13:57 -06:00
unbundle.awk Extract testdir. 2019-06-23 03:13:57 -06:00
xc Extract testdir. 2019-06-23 03:13:57 -06:00
yc Extract testdir. 2019-06-23 03:13:57 -06:00

The archive of test files contains 

- A shell file called REGRESS that controls the testing process.

- Several shell files called Compare* that control sub-parts
of the testing.

- About 160 small tests called t.* that constitute a random
sampling of awk constructions collected over the years.
Not organized, but they touch almost everything.

- About 60 small tests called p.* that come from the first
two chapters of The AWK Programming Language.  This is
basic stuff -- they have to work.

These two sets are intended as regression tests, to be sure
that a new version produces the same results as a previous one.
There are a couple of standard data files used with them,
test.data and test.countries, but others would work too.

- About 20 files called T.* that are self-contained and
more systematic tests of specific language features.
For example, T.clv tests command-line variable handling.
These tests are not regressions -- they compute the right
answer by separate means, then compare the awk output.
A specific test for each new bug found shows up in at least
one of these, most often T.misc.  There are about 220 tests
total in these files.

- Two of these files, T.re and T.sub, are systematic tests
of the regular expression and substitution code.  They express
tests in a small language, then generate awk programs that
verify behavior.

- About 20 files called tt.* that are used as timing tests;
they use the most common awk constructions in straightforward
ways, against a large input file constructed by Compare.tt.


There is undoubtedly more stuff in the archive;  it's been
collecting for years and may need pruning.  Suggestions for
improvement, additional tests (especially systematic ones),
and the like are all welcome.