23f24377b1
July 27, 2021: As per IEEE Std 1003.1-2008, -F "str" is now consistent with -v FS="str" when str is null. Thanks to Warner Losh. July 24, 2021: Fix readrec's definition of a record. This fixes an issue with NetBSD's RS regular expression support that can cause an infinite read loop. Thanks to Miguel Pineiro Jr. Fix regular expression RS ^-anchoring. RS ^-anchoring needs to know if it is reading the first record of a file. This change restores a missing line that was overlooked when porting NetBSD's RS regex functionality. Thanks to Miguel Pineiro Jr. Fix size computation in replace_repeat() for special case REPEAT_WITH_Q. Thanks to Todd C. Miller. Also, included the tests from upstream, though they aren't yet connected to the tree. Sponsored by: Netflix
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.