Browse Source

test/regex: make it faster to rebuild and run regex testcase

Denis Vlasenko 16 years ago
parent
commit
17b4c12a95

+ 0 - 11
test/regex/Makefile

@@ -1,15 +1,4 @@
 # uClibc regex tests
 # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
 
-#TESTS_DISABLED := testregexi testregexn
-
 include ../Test.mak
-
-OPTS_testregex := < basic.dat
-OPTS_testregexc := < categorize.dat
-OPTS_testregexf := < forcedassoc.dat
-OPTS_testregexi := -c < interpretation.dat
-OPTS_testregexl := < leftassoc.dat
-OPTS_testregexn := -c < nullsubexpr.dat
-OPTS_testregexp := < repetition.dat
-OPTS_testregexr := < rightassoc.dat

+ 29 - 3
test/regex/testregex.c

@@ -298,7 +298,7 @@ H("</HTML>\n");
 #define streq(a,b)	(*(a)==*(b)&&!strcmp(a,b))
 #endif
 
-#define HUNG		2
+#define HUNG		5
 #define NOTEST		(~0)
 
 #ifndef REG_TEST_DEFAULT
@@ -1111,7 +1111,7 @@ catchfree(regex_t* preg, int flags, int* tabs, char* spec, char* re, char* s, ch
 }
 
 int
-main(int argc, char** argv)
+old_main(int unused_param_argc, char** argv)
 {
 	int		flags;
 	int		cflags;
@@ -2103,7 +2103,7 @@ main(int argc, char** argv)
 				printf(" %-.*s", subunitlen, subunit);
 			printf(", %d test%s", testno, testno == 1 ? "" : "s");
 			if (state.ignored)
-				printf(", %d ignored mismatche%s", state.ignored, state.ignored == 1 ? "" : "s");
+				printf(", %d ignored mismatch%s", state.ignored, state.ignored == 1 ? "" : "es");
 			if (state.warnings)
 				printf(", %d warning%s", state.warnings, state.warnings == 1 ? "" : "s");
 			if (state.unspecified)
@@ -2117,3 +2117,29 @@ main(int argc, char** argv)
 	}
 	return 0;
 }
+
+int main(int argc, char **argv)
+{
+	static char *param[][4] = {
+		{ NULL,       "basic.dat"         , NULL },
+		{ NULL,       "categorize.dat"    , NULL },
+		{ NULL,       "forcedassoc.dat"   , NULL },
+		{ NULL, "-c", "interpretation.dat", NULL },
+		{ NULL,       "leftassoc.dat"     , NULL },
+		{ NULL, "-c", "nullsubexpr.dat"   , NULL },
+		{ NULL,       "repetition.dat"    , NULL },
+		{ NULL,       "rightassoc.dat"    , NULL },
+	};
+	int r, i;
+
+	if (argv[1])
+		return old_main(argc, argv);
+
+	r = 0;
+	for (i = 0; i < sizeof(param) / sizeof(param[0]); i++) {
+		param[i][0] = argv[0];
+		printf("Testing %s\n", param[i][1][0] != '-' ? param[i][1] : param[i][2]);
+		r |= old_main(3 /* not used */, param[i]);
+	}
+	return r;
+}

+ 0 - 1
test/regex/testregexc.c

@@ -1 +0,0 @@
-#include "testregex.c"

+ 0 - 1
test/regex/testregexf.c

@@ -1 +0,0 @@
-#include "testregex.c"

+ 0 - 1
test/regex/testregexi.c

@@ -1 +0,0 @@
-#include "testregex.c"

+ 0 - 1
test/regex/testregexl.c

@@ -1 +0,0 @@
-#include "testregex.c"

+ 0 - 1
test/regex/testregexn.c

@@ -1 +0,0 @@
-#include "testregex.c"

+ 0 - 1
test/regex/testregexp.c

@@ -1 +0,0 @@
-#include "testregex.c"

+ 0 - 1
test/regex/testregexr.c

@@ -1 +0,0 @@
-#include "testregex.c"