about summary refs log tree commit diff
path: root/posix
diff options
context:
space:
mode:
Diffstat (limited to 'posix')
-rw-r--r--posix/Makefile15
-rw-r--r--posix/ptestcases.h326
-rw-r--r--posix/testcases.h167
3 files changed, 9 insertions, 499 deletions
diff --git a/posix/Makefile b/posix/Makefile
index d67f68d0db..a8fb1e1839 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -115,7 +115,7 @@ others		:= getconf
 install-bin	:= getconf
 install-others-programs	:= $(inst_libexecdir)/getconf
 
-before-compile	+= testcases.h ptestcases.h $(objpfx)posix-conf-vars-def.h
+before-compile	+= $(objpfx)posix-conf-vars-def.h
 
 # So they get cleaned up.
 generated += $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
@@ -129,7 +129,8 @@ generated += $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
 	     tst-boost.mtrace bug-ga2.mtrace bug-ga2-mem.out \
 	     bug-glob2.mtrace bug-glob2-mem.out tst-vfork3-mem.out \
 	     tst-vfork3.mtrace getconf.speclist tst-fnmatch-mem.out \
-	     tst-fnmatch.mtrace bug-regex36.mtrace
+	     tst-fnmatch.mtrace bug-regex36.mtrace \
+	     testcases.h ptestcases.h
 
 ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
@@ -261,13 +262,15 @@ bug-glob1-ARGS = "$(objpfx)"
 tst-execvp3-ARGS = --test-dir=$(objpfx)
 CFLAGS-tst-spawn3.c += -DOBJPFX=\"$(objpfx)\"
 
-testcases.h: TESTS TESTS2C.sed
+$(objpfx)testcases.h: TESTS TESTS2C.sed
 	LC_ALL=C sed -f TESTS2C.sed < $< > $@T
-	mv -f $@T $@
+	mv $@T $@
+$(objpfx)runtests.o: $(objpfx)testcases.h
 
-ptestcases.h: PTESTS PTESTS2C.sed
+$(objpfx)ptestcases.h: PTESTS PTESTS2C.sed
 	LC_ALL=C sed -f PTESTS2C.sed < $< > $@T
-	mv -f $@T $@
+	mv $@T $@
+$(objpfx)runptests.o: $(objpfx)ptestcases.h
 
 $(objpfx)tst-getopt-cancel: $(shared-thread-library)
 
diff --git a/posix/ptestcases.h b/posix/ptestcases.h
deleted file mode 100644
index 506b1cce0f..0000000000
--- a/posix/ptestcases.h
+++ /dev/null
@@ -1,326 +0,0 @@
-  { 0, 0, "2.8.2  Regular Expression General Requirement", NULL, },
-  { 2, 4, "bb*", "abbbc",  },
-  { 2, 2, "bb*", "ababbbc",  },
-  { 7, 9, "A#*::", "A:A#:qA::qA#::qA##::q",  },
-  { 1, 5, "A#*::", "A##::A#::qA::qA#:q",  },
-  { 0, 0, "2.8.3.1.2  BRE Special Characters", NULL, },
-  { 0, 0, "GA108", NULL, },
-  { 2, 2, "\\.", "a.c",  },
-  { 2, 2, "\\[", "a[c",  },
-  { 2, 2, "\\\\", "a\\c",  },
-  { 2, 2, "\\*", "a*c",  },
-  { 2, 2, "\\^", "a^c",  },
-  { 2, 2, "\\$", "a$c",  },
-  { 7, 11, "X\\*Y\\*8", "Y*8X*8X*Y*8",  },
-  { 0, 0, "GA109", NULL, },
-  { 2, 2, "[.]", "a.c",  },
-  { 2, 2, "[[]", "a[c",  },
-  { -1, -1, "[[]", "ac",  },
-  { 2, 2, "[\\]", "a\\c",  },
-  { 1, 1, "[\\a]", "abc",  },
-  { 2, 2, "[\\.]", "a\\.c",  },
-  { 2, 2, "[\\.]", "a.\\c",  },
-  { 2, 2, "[*]", "a*c",  },
-  { 2, 2, "[$]", "a$c",  },
-  { 2, 2, "[X*Y8]", "7*8YX",  },
-  { 0, 0, "GA110", NULL, },
-  { 2, 2, "*", "a*c",  },
-  { 3, 4, "*a", "*b*a*c",  },
-  { 1, 5, "**9=", "***9=9",  },
-  { 0, 0, "GA111", NULL, },
-  { 1, 1, "^*", "*bc",  },
-  { -1, -1, "^*", "a*c",  },
-  { -1, -1, "^*", "^*ab",  },
-  { 1, 5, "^**9=", "***9=",  },
-  { -1, -1, "^*5<*9", "5<9*5<*9",  },
-  { 0, 0, "GA112", NULL, },
-  { 2, 3, "\\(*b\\)", "a*b",  },
-  { -1, -1, "\\(*b\\)", "ac",  },
-  { 1, 6, "A\\(**9\\)=", "A***9=79",  },
-  { 0, 0, "GA113(1)", NULL, },
-  { 1, 3, "\\(^*ab\\)", "*ab",  },
-  { -1, -1, "\\(^*ab\\)", "^*ab",  },
-  { -1, -1, "\\(^*b\\)", "a*b",  },
-  { -1, -1, "\\(^*b\\)", "^*b",  },
-  { 0, 0, "GA114", NULL, },
-  { 1, 3, "a^b", "a^b",  },
-  { 1, 3, "a\\^b", "a^b",  },
-  { 1, 1, "^^", "^bc",  },
-  { 2, 2, "\\^", "a^c",  },
-  { 1, 1, "[c^b]", "^abc",  },
-  { 1, 1, "[\\^ab]", "^ab",  },
-  { 2, 2, "[\\^ab]", "c\\d",  },
-  { -1, -1, "[^^]", "^",  },
-  { 1, 3, "\\(a^b\\)", "a^b",  },
-  { 1, 3, "\\(a\\^b\\)", "a^b",  },
-  { 2, 2, "\\(\\^\\)", "a^b",  },
-  { 0, 0, "GA115", NULL, },
-  { 3, 3, "$$", "ab$",  },
-  { -1, -1, "$$", "$ab",  },
-  { 2, 3, "$c", "a$c",  },
-  { 2, 2, "[$]", "a$c",  },
-  { 1, 2, "\\$a", "$a",  },
-  { 3, 3, "\\$$", "ab$",  },
-  { 2, 6, "A\\([34]$[34]\\)B", "XA4$3BY",  },
-  { 0, 0, "2.8.3.1.3  Periods in BREs", NULL, },
-  { 0, 0, "GA116", NULL, },
-  { 1, 1, ".", "abc",  },
-  { -1, -1, ".ab", "abc",  },
-  { 1, 3, "ab.", "abc",  },
-  { 1, 3, "a.b", "a,b",  },
-  { -1, -1, ".......", "PqRs6",  },
-  { 1, 7, ".......", "PqRs6T8",  },
-  { 0, 0, "2.8.3.2  RE Bracket Expression", NULL, },
-  { 0, 0, "GA118", NULL, },
-  { 2, 2, "[abc]", "xbyz",  },
-  { -1, -1, "[abc]", "xyz",  },
-  { 2, 2, "[abc]", "xbay",  },
-  { 0, 0, "GA119", NULL, },
-  { 2, 2, "[^a]", "abc",  },
-  { 4, 4, "[^]cd]", "cd]ef",  },
-  { 2, 2, "[^abc]", "axyz",  },
-  { -1, -1, "[^abc]", "abc",  },
-  { 3, 3, "[^[.a.]b]", "abc",  },
-  { 3, 3, "[^[=a=]b]", "abc",  },
-  { 2, 2, "[^-ac]", "abcde-",  },
-  { 2, 2, "[^ac-]", "abcde-",  },
-  { 3, 3, "[^a-b]", "abcde",  },
-  { 3, 3, "[^a-bd-e]", "dec",  },
-  { 2, 2, "[^---]", "-ab",  },
-  { 16, 16, "[^a-zA-Z0-9]", "pqrstVWXYZ23579#",  },
-  { 0, 0, "GA120(1)", NULL, },
-  { 3, 3, "[]a]", "cd]ef",  },
-  { 1, 1, "[]-a]", "a_b",  },
-  { 3, 3, "[][.-.]-0]", "ab0-]",  },
-  { 1, 1, "[]^a-z]", "string",  },
-  { 0, 0, "GA120(2)", NULL, },
-  { 4, 4, "[^]cd]", "cd]ef",  },
-  { 0, 0, "[^]]*", "]]]]]]]]X",  },
-  { 0, 0, "[^]]*", "]]]]]]]]",  },
-  { 9, 9, "[^]]\\{1,\\}", "]]]]]]]]X",  },
-  { -1, -1, "[^]]\\{1,\\}", "]]]]]]]]",  },
-  { 0, 0, "GA120(3)", NULL, },
-  { 3, 3, "[c[.].]d]", "ab]cd",  },
-  { 2, 8, "[a-z]*[[.].]][A-Z]*", "Abcd]DEFg",  },
-  { 0, 0, "GA121", NULL, },
-  { 2, 2, "[[.a.]b]", "Abc",  },
-  { 1, 1, "[[.a.]b]", "aBc",  },
-  { -1, -1, "[[.a.]b]", "ABc",  },
-  { 3, 3, "[^[.a.]b]", "abc",  },
-  { 3, 3, "[][.-.]-0]", "ab0-]",  },
-  { 3, 3, "[A-[.].]c]", "ab]!",  },
-  { 0, 0, "GA122", NULL, },
-  { -2, -2, "[[.ch.]]", "abc",  },
-  { -2, -2, "[[.ab.][.CD.][.EF.]]", "yZabCDEFQ9",  },
-  { 0, 0, "GA125", NULL, },
-  { 2, 2, "[[=a=]b]", "Abc",  },
-  { 1, 1, "[[=a=]b]", "aBc",  },
-  { -1, -1, "[[=a=]b]", "ABc",  },
-  { 3, 3, "[^[=a=]b]", "abc",  },
-  { 0, 0, "GA126", NULL, },
-  { 0, 0, NULL, "the expected result for [[:alnum:]]* is 2-7 which is wrong" },
-  { 0, 0, "[[:alnum:]]*", " aB28gH",  },
-  { 2, 7, "[[:alnum:]][[:alnum:]]*", " aB28gH",  },
-  { 0, 0, NULL, "the expected result for [^[:alnum:]]* is 2-5 which is wrong" },
-  { 0, 0, "[^[:alnum:]]*", "2 	,a",  },
-  { 2, 5, "[^[:alnum:]][^[:alnum:]]*", "2 	,a",  },
-  { 0, 0, NULL, "the expected result for [[:alpha:]]* is 2-5 which is wrong" },
-  { 0, 0, "[[:alpha:]]*", " aBgH2",  },
-  { 2, 5, "[[:alpha:]][[:alpha:]]*", " aBgH2",  },
-  { 1, 6, "[^[:alpha:]]*", "2 	8,a",  },
-  { 1, 2, "[[:blank:]]*", " 	\r",  },
-  { 1, 8, "[^[:blank:]]*", "aB28gH, ",  },
-  { 1, 2, "[[:cntrl:]]*", "	 ",  },
-  { 1, 8, "[^[:cntrl:]]*", "aB2 8gh,",  },
-  { 0, 0, NULL, "the expected result for [[:digit:]]* is 2-3 which is wrong" },
-  { 0, 0, "[[:digit:]]*", "a28",  },
-  { 2, 3, "[[:digit:]][[:digit:]]*", "a28",  },
-  { 1, 8, "[^[:digit:]]*", "aB 	gH,",  },
-  { 1, 7, "[[:graph:]]*", "aB28gH, ",  },
-  { 1, 3, "[^[:graph:]]*", " 	,",  },
-  { 1, 2, "[[:lower:]]*", "agB",  },
-  { 1, 8, "[^[:lower:]]*", "B2 	8H,a",  },
-  { 1, 8, "[[:print:]]*", "aB2 8gH,	",  },
-  { 1, 2, "[^[:print:]]*", "	 ",  },
-  { 0, 0, NULL, "the expected result for [[:punct:]]* is 2-2 which is wrong" },
-  { 0, 0, "[[:punct:]]*", "a,2",  },
-  { 2, 3, "[[:punct:]][[:punct:]]*", "a,,2",  },
-  { 1, 9, "[^[:punct:]]*", "aB2 	8gH",  },
-  { 1, 3, "[[:space:]]*", " 	\r",  },
-  { 0, 0, NULL, "the expected result for [^[:space:]]* is 2-9 which is wrong" },
-  { 0, 0, "[^[:space:]]*", " aB28gH,	",  },
-  { 2, 9, "[^[:space:]][^[:space:]]*", " aB28gH,	",  },
-  { 0, 0, NULL, "the expected result for [[:upper:]]* is 2-3 which is wrong" },
-  { 0, 0, "[[:upper:]]*", "aBH2",  },
-  { 2, 3, "[[:upper:]][[:upper:]]*", "aBH2",  },
-  { 1, 8, "[^[:upper:]]*", "a2 	8g,B",  },
-  { 0, 0, NULL, "the expected result for [[:xdigit:]]* is 2-5 which is wrong" },
-  { 0, 0, "[[:xdigit:]]*", "gaB28h",  },
-  { 2, 5, "[[:xdigit:]][[:xdigit:]]*", "gaB28h",  },
-  { 0, 0, NULL, "the expected result for [^[:xdigit:]]* is 2-7 which is wrong" },
-  { 2, 7, "[^[:xdigit:]][^[:xdigit:]]*", "a 	gH,2",  },
-  { 0, 0, "GA127", NULL, },
-  { -2, -2, "[b-a]", "abc",  },
-  { 1, 1, "[a-c]", "bbccde",  },
-  { 2, 2, "[a-b]", "-bc",  },
-  { 3, 3, "[a-z0-9]", "AB0",  },
-  { 3, 3, "[^a-b]", "abcde",  },
-  { 3, 3, "[^a-bd-e]", "dec",  },
-  { 1, 1, "[]-a]", "a_b",  },
-  { 2, 2, "[+--]", "a,b",  },
-  { 2, 2, "[--/]", "a.b",  },
-  { 2, 2, "[^---]", "-ab",  },
-  { 3, 3, "[][.-.]-0]", "ab0-]",  },
-  { 3, 3, "[A-[.].]c]", "ab]!",  },
-  { 2, 6, "bc[d-w]xy", "abchxyz",  },
-  { 0, 0, "GA129", NULL, },
-  { 1, 1, "[a-cd-f]", "dbccde",  },
-  { -1, -1, "[a-ce-f]", "dBCCdE",  },
-  { 2, 4, "b[n-zA-M]Y", "absY9Z",  },
-  { 2, 4, "b[n-zA-M]Y", "abGY9Z",  },
-  { 0, 0, "GA130", NULL, },
-  { 3, 3, "[-xy]", "ac-",  },
-  { 2, 4, "c[-xy]D", "ac-D+",  },
-  { 2, 2, "[--/]", "a.b",  },
-  { 2, 4, "c[--/]D", "ac.D+b",  },
-  { 2, 2, "[^-ac]", "abcde-",  },
-  { 1, 3, "a[^-ac]c", "abcde-",  },
-  { 3, 3, "[xy-]", "zc-",  },
-  { 2, 4, "c[xy-]7", "zc-786",  },
-  { 2, 2, "[^ac-]", "abcde-",  },
-  { 2, 4, "a[^ac-]c", "5abcde-",  },
-  { 2, 2, "[+--]", "a,b",  },
-  { 2, 4, "a[+--]B", "Xa,By",  },
-  { 2, 2, "[^---]", "-ab",  },
-  { 4, 6, "X[^---]Y", "X-YXaYXbY",  },
-  { 0, 0, "2.8.3.3  BREs Matching Multiple Characters", NULL, },
-  { 0, 0, "GA131", NULL, },
-  { 3, 4, "cd", "abcdeabcde",  },
-  { 1, 2, "ag*b", "abcde",  },
-  { -1, -1, "[a-c][e-f]", "abcdef",  },
-  { 3, 4, "[a-c][e-f]", "acbedf",  },
-  { 4, 8, "abc*XYZ", "890abXYZ#*",  },
-  { 4, 9, "abc*XYZ", "890abcXYZ#*",  },
-  { 4, 15, "abc*XYZ", "890abcccccccXYZ#*",  },
-  { -1, -1, "abc*XYZ", "890abc*XYZ#*",  },
-  { 0, 0, "GA132", NULL, },
-  { 2, 4, "\\(*bc\\)", "a*bc",  },
-  { 1, 2, "\\(ab\\)", "abcde",  },
-  { 1, 10, "\\(a\\(b\\(c\\(d\\(e\\(f\\(g\\)h\\(i\\(j\\)\\)\\)\\)\\)\\)\\)\\)", "abcdefghijk",  },
-  { 3, 8, "43\\(2\\(6\\)*0\\)AB", "654320ABCD",  },
-  { 3, 9, "43\\(2\\(7\\)*0\\)AB", "6543270ABCD",  },
-  { 3, 12, "43\\(2\\(7\\)*0\\)AB", "6543277770ABCD",  },
-  { 0, 0, "GA133", NULL, },
-  { 1, 10, "\\(a\\(b\\(c\\(d\\(e\\(f\\(g\\)h\\(i\\(j\\)\\)\\)\\)\\)\\)\\)\\)", "abcdefghijk",  },
-  { -1, -1, "\\(a\\(b\\(c\\(d\\(e\\(f\\(g\\)h\\(i\\(k\\)\\)\\)\\)\\)\\)\\)\\)", "abcdefghijk",  },
-  { 0, 0, "GA134", NULL, },
-  { 2, 4, "\\(bb*\\)", "abbbc",  },
-  { 2, 2, "\\(bb*\\)", "ababbbc",  },
-  { 1, 6, "a\\(.*b\\)", "ababbbc",  },
-  { 1, 2, "a\\(b*\\)", "ababbbc",  },
-  { 1, 20, "a\\(.*b\\)c", "axcaxbbbcsxbbbbbbbbc",  },
-  { 0, 0, "GA135", NULL, },
-  { 1, 7, "\\(a\\(b\\(c\\(d\\(e\\)\\)\\)\\)\\)\\4", "abcdededede",  },
-  { 0, 0, NULL, "POSIX does not really specify whether a\\(b\\)*c\\1 matches acb." },
-  { 0, 0, NULL, "back references are supposed to expand to the last match, but what" },
-  { 0, 0, NULL, "if there never was a match as in this case?" },
-  { -1, -1, "a\\(b\\)*c\\1", "acb",  },
-  { 1, 11, "\\(a\\(b\\(c\\(d\\(e\\(f\\(g\\)h\\(i\\(j\\)\\)\\)\\)\\)\\)\\)\\)\\9", "abcdefghijjk",  },
-  { 0, 0, "GA136", NULL, },
-  { 0, 0, NULL, "These two tests have the same problem as the test in GA135.  No match" },
-  { 0, 0, NULL, "of a subexpression, why should the back reference be usable?" },
-  { 0, 0, NULL, "1 2 a\\(b\\)*c\\1 acb" },
-  { 0, 0, NULL, "4 7 a\\(b\\(c\\(d\\(f\\)*\\)\\)\\)\\4¦xYzabcdePQRST" },
-  { -1, -1, "a\\(b\\)*c\\1", "acb",  },
-  { -1, -1, "a\\(b\\(c\\(d\\(f\\)*\\)\\)\\)\\4", "xYzabcdePQRST",  },
-  { 0, 0, "GA137", NULL, },
-  { -2, -2, "\\(a\\(b\\)\\)\\3", "foo",  },
-  { -2, -2, "\\(a\\(b\\)\\)\\(a\\(b\\)\\)\\5", "foo",  },
-  { 0, 0, "GA138", NULL, },
-  { 1, 2, "ag*b", "abcde",  },
-  { 1, 10, "a.*b", "abababvbabc",  },
-  { 2, 5, "b*c", "abbbcdeabbbbbbcde",  },
-  { 2, 5, "bbb*c", "abbbcdeabbbbbbcde",  },
-  { 1, 5, "a\\(b\\)*c\\1", "abbcbbb",  },
-  { -1, -1, "a\\(b\\)*c\\1", "abbdbd",  },
-  { 0, 0, "\\([a-c]*\\)\\1", "abcacdef",  },
-  { 1, 6, "\\([a-c]*\\)\\1", "abcabcabcd",  },
-  { 1, 2, "a^*b", "ab",  },
-  { 1, 5, "a^*b", "a^^^b",  },
-  { 0, 0, "GA139", NULL, },
-  { 1, 2, "a\\{2\\}", "aaaa",  },
-  { 1, 7, "\\([a-c]*\\)\\{0,\\}", "aabcaab",  },
-  { 1, 2, "\\(a\\)\\1\\{1,2\\}", "aabc",  },
-  { 1, 3, "\\(a\\)\\1\\{1,2\\}", "aaaabc",  },
-  { 0, 0, NULL, "the expression \\(\\(a\\)\\1\\)\\{1,2\\} is ill-formed, using \\2" },
-  { 1, 4, "\\(\\(a\\)\\2\\)\\{1,2\\}", "aaaabc",  },
-  { 0, 0, "GA140", NULL, },
-  { 1, 2, "a\\{2\\}", "aaaa",  },
-  { -1, -1, "a\\{2\\}", "abcd",  },
-  { 0, 0, "a\\{0\\}", "aaaa",  },
-  { 1, 64, "a\\{64\\}", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",  },
-  { 0, 0, "GA141", NULL, },
-  { 1, 7, "\\([a-c]*\\)\\{0,\\}", "aabcaab",  },
-  { 0, 0, NULL, "the expected result for \\([a-c]*\\)\\{2,\\} is failure which isn't correct" },
-  { 1, 3, "\\([a-c]*\\)\\{2,\\}", "abcdefg",  },
-  { 1, 3, "\\([a-c]*\\)\\{1,\\}", "abcdefg",  },
-  { -1, -1, "a\\{64,\\}", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",  },
-  { 0, 0, "GA142", NULL, },
-  { 1, 3, "a\\{2,3\\}", "aaaa",  },
-  { -1, -1, "a\\{2,3\\}", "abcd",  },
-  { 0, 0, "\\([a-c]*\\)\\{0,0\\}", "foo",  },
-  { 1, 63, "a\\{1,63\\}", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",  },
-  { 0, 0, "2.8.3.4  BRE Precedence", NULL, },
-  { 0, 0, "GA143", NULL, },
-  { 0, 0, NULL, "There are numerous bugs in the original version." },
-  { 2, 19, "\\^\\[[[.].]]\\\\(\\\\1\\\\)\\*\\\\{1,2\\\\}\\$", "a^[]\\(\\1\\)*\\{1,2\\}$b",  },
-  { 1, 6, "[[=*=]][[=\\=]][[=]=]][[===]][[...]][[:punct:]]", "*\\]=.;",  },
-  { 1, 6, "[$\\(*\\)^]*", "$\\()*^",  },
-  { 1, 1, "[\\1]", "1",  },
-  { 1, 1, "[\\{1,2\\}]", "{",  },
-  { 0, 0, NULL, "the expected result for \\(*\\)*\\1* is 2-2 which isn't correct" },
-  { 0, 0, "\\(*\\)*\\1*", "a*b*11",  },
-  { 2, 3, "\\(*\\)*\\1*b", "a*b*11",  },
-  { 0, 0, NULL, "the expected result for \\(a\\(b\\{1,2\\}\\)\\{1,2\\}\\) is 1-5 which isn't correct" },
-  { 1, 3, "\\(a\\(b\\{1,2\\}\\)\\{1,2\\}\\)", "abbab",  },
-  { 1, 5, "\\(a\\(b\\{1,2\\}\\)\\)\\{1,2\\}", "abbab",  },
-  { 1, 1, "^\\(^\\(^a$\\)$\\)$", "a",  },
-  { 1, 2, "\\(a\\)\\1$", "aa",  },
-  { 1, 3, "ab*", "abb",  },
-  { 1, 4, "ab\\{2,4\\}", "abbbc",  },
-  { 0, 0, "2.8.3.5  BRE Expression Anchoring", NULL, },
-  { 0, 0, "GA144", NULL, },
-  { 1, 1, "^a", "abc",  },
-  { -1, -1, "^b", "abc",  },
-  { -1, -1, "^[a-zA-Z]", "99Nine",  },
-  { 1, 4, "^[a-zA-Z]*", "Nine99",  },
-  { 0, 0, "GA145(1)", NULL, },
-  { 1, 2, "\\(^a\\)\\1", "aabc",  },
-  { -1, -1, "\\(^a\\)\\1", "^a^abc",  },
-  { 1, 2, "\\(^^a\\)", "^a",  },
-  { 1, 1, "\\(^^\\)", "^^",  },
-  { 1, 3, "\\(^abc\\)", "abcdef",  },
-  { -1, -1, "\\(^def\\)", "abcdef",  },
-  { 0, 0, "GA146", NULL, },
-  { 3, 3, "a$", "cba",  },
-  { -1, -1, "a$", "abc",  },
-  { 5, 7, "[a-z]*$", "99ZZxyz",  },
-  { 0, 0, NULL, "the expected result for [a-z]*$ is failure which isn't correct" },
-  { 10, 9, "[a-z]*$", "99ZZxyz99",  },
-  { 3, 3, "$$", "ab$",  },
-  { -1, -1, "$$", "$ab",  },
-  { 3, 3, "\\$$", "ab$",  },
-  { 0, 0, "GA147(1)", NULL, },
-  { -1, -1, "\\(a$\\)\\1", "bcaa",  },
-  { -1, -1, "\\(a$\\)\\1", "ba$",  },
-  { -1, -1, "\\(ab$\\)", "ab$",  },
-  { 1, 2, "\\(ab$\\)", "ab",  },
-  { 4, 6, "\\(def$\\)", "abcdef",  },
-  { -1, -1, "\\(abc$\\)", "abcdef",  },
-  { 0, 0, "GA148", NULL, },
-  { 0, 0, "^$", "",  },
-  { 1, 3, "^abc$", "abc",  },
-  { -1, -1, "^xyz$", "^xyz^",  },
-  { -1, -1, "^234$", "^234$",  },
-  { 1, 9, "^[a-zA-Z0-9]*$", "2aA3bB9zZ",  },
-  { -1, -1, "^[a-z0-9]*$", "2aA3b#B9zZ",  },
diff --git a/posix/testcases.h b/posix/testcases.h
deleted file mode 100644
index 834f53049f..0000000000
--- a/posix/testcases.h
+++ /dev/null
@@ -1,167 +0,0 @@
-  {0, "(.*)*\\1", "xx"},
-  {0, "^", ""},
-  {0, "$", ""},
-  {0, "^$", ""},
-  {0, "^a$", "a"},
-  {0, "abc", "abc"},
-  {1, "abc", "xbc"},
-  {1, "abc", "axc"},
-  {1, "abc", "abx"},
-  {0, "abc", "xabcy"},
-  {0, "abc", "ababc"},
-  {0, "ab*c", "abc"},
-  {0, "ab*bc", "abc"},
-  {0, "ab*bc", "abbc"},
-  {0, "ab*bc", "abbbbc"},
-  {0, "ab+bc", "abbc"},
-  {1, "ab+bc", "abc"},
-  {1, "ab+bc", "abq"},
-  {0, "ab+bc", "abbbbc"},
-  {0, "ab?bc", "abbc"},
-  {0, "ab?bc", "abc"},
-  {1, "ab?bc", "abbbbc"},
-  {0, "ab?c", "abc"},
-  {0, "^abc$", "abc"},
-  {1, "^abc$", "abcc"},
-  {0, "^abc", "abcc"},
-  {1, "^abc$", "aabc"},
-  {0, "abc$", "aabc"},
-  {0, "^", "abc"},
-  {0, "$", "abc"},
-  {0, "a.c", "abc"},
-  {0, "a.c", "axc"},
-  {0, "a.*c", "axyzc"},
-  {1, "a.*c", "axyzd"},
-  {1, "a[bc]d", "abc"},
-  {0, "a[bc]d", "abd"},
-  {1, "a[b-d]e", "abd"},
-  {0, "a[b-d]e", "ace"},
-  {0, "a[b-d]", "aac"},
-  {0, "a[-b]", "a-"},
-  {0, "a[b-]", "a-"},
-  {2, "a[b-a]", "-"},
-  {2, "a[]b", "-"},
-  {2, "a[", "-"},
-  {0, "a]", "a]"},
-  {0, "a[]]b", "a]b"},
-  {0, "a[^bc]d", "aed"},
-  {1, "a[^bc]d", "abd"},
-  {0, "a[^-b]c", "adc"},
-  {1, "a[^-b]c", "a-c"},
-  {1, "a[^]b]c", "a]c"},
-  {0, "a[^]b]c", "adc"},
-  {0, "ab|cd", "abc"},
-  {0, "ab|cd", "abcd"},
-  {0, "()ef", "def"},
-  {0, "()*", "-"},
-  {2, "*a", "-"},
-  {2, "^*", "-"},
-  {2, "$*", "-"},
-  {2, "(*)b", "-"},
-  {1, "$b", "b"},
-  {2, "a\\", "-"},
-  {0, "a\\(b", "a(b"},
-  {0, "a\\(*b", "ab"},
-  {0, "a\\(*b", "a((b"},
-  {1, "a\\x", "a\\x"},
-  {1, "abc)", "-"},
-  {2, "(abc", "-"},
-  {0, "((a))", "abc"},
-  {0, "(a)b(c)", "abc"},
-  {0, "a+b+c", "aabbabc"},
-  {0, "a**", "-"},
-  {0, "a*?", "-"},
-  {0, "(a*)*", "-"},
-  {0, "(a*)+", "-"},
-  {0, "(a|)*", "-"},
-  {0, "(a*|b)*", "-"},
-  {0, "(a+|b)*", "ab"},
-  {0, "(a+|b)+", "ab"},
-  {0, "(a+|b)?", "ab"},
-  {0, "[^ab]*", "cde"},
-  {0, "(^)*", "-"},
-  {0, "(ab|)*", "-"},
-  {2, ")(", "-"},
-  {1, "abc", ""},
-  {1, "abc", ""},
-  {0, "a*", ""},
-  {0, "([abc])*d", "abbbcd"},
-  {0, "([abc])*bcd", "abcd"},
-  {0, "a|b|c|d|e", "e"},
-  {0, "(a|b|c|d|e)f", "ef"},
-  {0, "((a*|b))*", "-"},
-  {0, "abcd*efg", "abcdefg"},
-  {0, "ab*", "xabyabbbz"},
-  {0, "ab*", "xayabbbz"},
-  {0, "(ab|cd)e", "abcde"},
-  {0, "[abhgefdc]ij", "hij"},
-  {1, "^(ab|cd)e", "abcde"},
-  {0, "(abc|)ef", "abcdef"},
-  {0, "(a|b)c*d", "abcd"},
-  {0, "(ab|ab*)bc", "abc"},
-  {0, "a([bc]*)c*", "abc"},
-  {0, "a([bc]*)(c*d)", "abcd"},
-  {0, "a([bc]+)(c*d)", "abcd"},
-  {0, "a([bc]*)(c+d)", "abcd"},
-  {0, "a[bcd]*dcdcde", "adcdcde"},
-  {1, "a[bcd]+dcdcde", "adcdcde"},
-  {0, "(ab|a)b*c", "abc"},
-  {0, "((a)(b)c)(d)", "abcd"},
-  {0, "[A-Za-z_][A-Za-z0-9_]*", "alpha"},
-  {0, "^a(bc+|b[eh])g|.h$", "abh"},
-  {0, "(bc+d$|ef*g.|h?i(j|k))", "effgz"},
-  {0, "(bc+d$|ef*g.|h?i(j|k))", "ij"},
-  {1, "(bc+d$|ef*g.|h?i(j|k))", "effg"},
-  {1, "(bc+d$|ef*g.|h?i(j|k))", "bcdd"},
-  {0, "(bc+d$|ef*g.|h?i(j|k))", "reffgz"},
-  {1, "((((((((((a))))))))))", "-"},
-  {0, "(((((((((a)))))))))", "a"},
-  {1, "multiple words of text", "uh-uh"},
-  {0, "multiple words", "multiple words, yeah"},
-  {0, "(.*)c(.*)", "abcde"},
-  {1, "\\((.*),", "(.*)\\)"},
-  {1, "[k]", "ab"},
-  {0, "abcd", "abcd"},
-  {0, "a(bc)d", "abcd"},
-  {0, "a[-]?c", "ac"},
-  {0, "(....).*\\1", "beriberi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Qaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mo'ammar Gadhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Kaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Qadhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar El Kadhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Gadafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qadafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamer El Kazzafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar al-Gaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Al Qathafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Al Qathafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mo'ammar el-Gadhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar El Kadhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar al-Qadhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qadhdhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Qadafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar Gaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Qadhdhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Khaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar al-Khaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'amar al-Kadafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghaddafy"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghadafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muamar Kaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Quathafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Gheddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muamar Al-Kaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar Khadafy "},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar Qudhafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qaddafi"},
-  {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mulazim Awwal Mu'ammar Muhammad Abu Minyar al-Qadhafi"},
-  {0, "[[:digit:]]+", "01234"},
-  {1, "[[:alpha:]]+", "01234"},
-  {0, "^[[:digit:]]*$", "01234"},
-  {1, "^[[:digit:]]*$", "01234a"},
-  {0, "^[[:alnum:]]*$", "01234a"},
-  {0, "^[[:xdigit:]]*$", "01234a"},
-  {1, "^[[:xdigit:]]*$", "01234g"},
-  {0, "^[[:alnum:][:space:]]*$", "Hello world"},