awk/testdir
zoulasc 110bdc6b3e
misc fixes (#69)
* Add a test for german case folding.

* Add a function to copy a string with a string with a larger allocation
  (to be used by the case folding routines)
* Add printf attributes to the printf-like functions and fix one format
  warning
* Cleanup the tempfree macro
* make more functions static
* rename fp to frp (FRame Pointer) to avoid shadowing with fp (File Pointer).
* add more const
* fix indent in UPLUS case
* add locale-aware case folding
* make nfiles size_t
* fix bugs in file closing:
    - compare fclose to EOF and pclose to -1
    - use nfiles instead of FOPEN_MAX in closeall
    - don't close files we did not open (0,1,2) fpurge/fflush instead

* - use NUL instead of 0 for char comparisons
- add ISWS() macro
- use continue; instead of ;

* Check for existance of the german locale before using it.

* Add missing parentheses, thanks Arnold.
2020-02-06 21:25:36 +02:00
..
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
bib
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
ind
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
p.1
2019-06-23 03:13:57 -06:00
p.2
2019-06-23 03:13:57 -06:00
p.3
2019-06-23 03:13:57 -06:00
p.4
2019-06-23 03:13:57 -06:00
p.5
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
p.6
2019-06-23 03:13:57 -06:00
p.7
2019-06-23 03:13:57 -06:00
p.8
2019-06-23 03:13:57 -06:00
p.9
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.0
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.1
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.2
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.3
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.4
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.6
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.a
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2020-02-06 21:25:36 +02:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-11-08 14:36:37 +02:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.e
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-12-11 09:17:34 +02:00
2019-06-23 03:13:57 -06:00
t.f
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2020-01-31 08:40:11 +02:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-11-08 14:36:37 +02:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2020-01-31 08:40:11 +02:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-07-16 20:50:23 +03:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
t.x
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
try
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
2019-06-23 03:13:57 -06:00
xc
2019-06-23 03:13:57 -06:00
yc
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.