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

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.