1This directory contains AT&T test harnesses and data for the X/Open pattern
2matching routines:
3
4	HARNESS			HEADER		FUNCTIONS
5	-------			------		---------
6	testfnmatch.c		<fnmatch.h>	fnmatch()
7	testglob.c		<glob.h>	glob()
8	testregex.c		<regex.h>	regcomp(),regexec()
9
10Each test*.c file is a main program driven by the *.dat test data files.
11testglob.dat is only for testglob; all other test data files work with
12the remaining harnesses.
13
14The Makefile has targets for building harnesses and running tests:
15
16	all		build all harnesses
17	test		run all tests for all harnesses
18	test.foo	build harness foo and run the foo tests
19
20To run a single test, e.g. the standards.dat tests for testregex,
21
22	testregex < standards.dat
23
24If the local implementation hangs or dumps on some tests then run with
25the -c option.
26
27The -h option lists the test data format details. The test data files
28exercise all features; the harnesses detect and ignore features not
29supported by the local implementation.
30
31Extensions to the standard terminology are derived from the AT&T RE
32implementation, unified under <regex.h> with these modes:
33
34	MODE	FLAGS
35	----	-----
36	BRE	0			basic RE
37	ERE	REG_EXTENDED		egrep RE with perl (...) extensions
38	ARE	REG_AUGMENTED		ERE with ! negation, <> word boundaries
39	SRE	REG_SHELL		sh patterns
40	KRE	REG_SHELL|REG_AUGMENTED	ksh93 patterns: ! @ ( | & ) { }
41
42and some additional flags to handle fnmatch():
43
44	REG_SHELL_ESCAPED	FNM_NOESCAPE
45	REG_SHELL_PATH		FNM_PATHNAME
46	REG_SHELL_DOT		FNM_PERIOD
47
48The original testregex.c was done by Doug McIlroy at Bell Labs.
49The current implementation is maintained by
50
51	Glenn Fowler <gsf@research.att.com>
52
53I'd like to make the regression tests as comprehensive as possible.
54Send any new tests to me and I'll roll them into the open source
55distribution at http://www.research.att.com/sw/download/ with proper
56attribution.
57
58Please note that some regression tests nail down unspecified standard behavior.
59These should be noted in the test data with 'u' but currently are not.
60Experience with other implementations will help clean this up.
61