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