Author: rhuijben
Date: Mon Nov 23 17:53:34 2015
New Revision: 1715904
URL: http://svn.apache.org/viewvc?rev=1715904&view=rev
Log:
* test/test_all.c
(main): Allow running specific tests.
E.g. $ test_all server#test_listen_http server#test_listen_http2
Modified:
serf/trunk/test/test_all.c
Modified: serf/trunk/test/test_all.c
URL:
http://svn.apache.org/viewvc/serf/trunk/test/test_all.c?rev=1715904&r1=1715903&r2=1715904&view=diff
==============================================================================
--- serf/trunk/test/test_all.c (original)
+++ serf/trunk/test/test_all.c Mon Nov 23 17:53:34 2015
@@ -99,14 +99,45 @@ int main(int argc, char *argv[])
for (i = 1; i < argc; i++) {
int j;
int found = 0;
+ const char *sh;
+ apr_size_t len;
if (argv[i][0] == '-') {
continue;
}
+
+ sh = strchr(argv[i], '#');
+ if (!sh)
+ len = strlen(argv[i]);
+ else {
+ len = sh - argv[i];
+ sh++;
+ }
+
+ /* ### We leak ram on specific function names.
+ Patches welcome :) */
for (j = 0; tests[j].func != NULL; j++) {
- if (!strcmp(argv[i], tests[j].testname)) {
- CuSuiteAddSuite(alltests, tests[j].func());
- found = 1;
+
+ if (strncmp(argv[i], tests[j].testname, len) == 0
+ && tests[j].testname[len] == '\0')
+ {
+ CuSuite *suite = tests[j].func();
+
+ if (sh) {
+ int k, m = 0;
+
+ for (k = 0; k < suite->count; k++) {
+ if (!strcmp(suite->list[k]->name, sh)) {
+ suite->list[m++] = suite->list[k];
+ }
+ }
+ suite->count = m;
+ }
+
+ if (suite->count) {
+ CuSuiteAddSuite(alltests, suite);
+ found = 1;
+ }
}
}
if (!found) {