|
Packit |
3adb1e |
/* ====================================================================
|
|
Packit |
3adb1e |
* Licensed to the Apache Software Foundation (ASF) under one
|
|
Packit |
3adb1e |
* or more contributor license agreements. See the NOTICE file
|
|
Packit |
3adb1e |
* distributed with this work for additional information
|
|
Packit |
3adb1e |
* regarding copyright ownership. The ASF licenses this file
|
|
Packit |
3adb1e |
* to you under the Apache License, Version 2.0 (the
|
|
Packit |
3adb1e |
* "License"); you may not use this file except in compliance
|
|
Packit |
3adb1e |
* with the License. You may obtain a copy of the License at
|
|
Packit |
3adb1e |
*
|
|
Packit |
3adb1e |
* http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit |
3adb1e |
*
|
|
Packit |
3adb1e |
* Unless required by applicable law or agreed to in writing,
|
|
Packit |
3adb1e |
* software distributed under the License is distributed on an
|
|
Packit |
3adb1e |
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
Packit |
3adb1e |
* KIND, either express or implied. See the License for the
|
|
Packit |
3adb1e |
* specific language governing permissions and limitations
|
|
Packit |
3adb1e |
* under the License.
|
|
Packit |
3adb1e |
* ====================================================================
|
|
Packit |
3adb1e |
*/
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
#include "apr.h"
|
|
Packit |
3adb1e |
#include "apr_pools.h"
|
|
Packit |
3adb1e |
#include "test_serf.h"
|
|
Packit |
3adb1e |
#include <stdlib.h>
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
static const struct testlist {
|
|
Packit |
3adb1e |
const char *testname;
|
|
Packit |
3adb1e |
CuSuite *(*func)(void);
|
|
Packit |
3adb1e |
} tests[] = {
|
|
Packit |
3adb1e |
{"context", test_context},
|
|
Packit |
3adb1e |
{"buckets", test_buckets},
|
|
Packit |
3adb1e |
{"ssl", test_ssl},
|
|
Packit |
3adb1e |
{"auth", test_auth},
|
|
Packit |
3adb1e |
#if 0
|
|
Packit |
3adb1e |
/* internal test for the mock bucket. */
|
|
Packit |
3adb1e |
{"mock", test_mock_bucket},
|
|
Packit |
3adb1e |
#endif
|
|
Packit |
3adb1e |
{"LastTest", NULL}
|
|
Packit |
3adb1e |
};
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
int main(int argc, char *argv[])
|
|
Packit |
3adb1e |
{
|
|
Packit |
3adb1e |
CuSuite *alltests = NULL;
|
|
Packit |
3adb1e |
CuString *output = CuStringNew();
|
|
Packit |
3adb1e |
int i;
|
|
Packit |
3adb1e |
int list_provided = 0;
|
|
Packit |
3adb1e |
int exit_code;
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
apr_initialize();
|
|
Packit |
3adb1e |
atexit(apr_terminate);
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
for (i = 1; i < argc; i++) {
|
|
Packit |
3adb1e |
if (!strcmp(argv[i], "-v")) {
|
|
Packit |
3adb1e |
continue;
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
if (!strcmp(argv[i], "-l")) {
|
|
Packit |
3adb1e |
for (i = 0; tests[i].func != NULL; i++) {
|
|
Packit |
3adb1e |
printf("%s\n", tests[i].testname);
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
exit(0);
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
if (argv[i][0] == '-') {
|
|
Packit |
3adb1e |
fprintf(stderr, "invalid option: `%s'\n", argv[i]);
|
|
Packit |
3adb1e |
exit(1);
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
list_provided = 1;
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
alltests = CuSuiteNew();
|
|
Packit |
3adb1e |
if (!list_provided) {
|
|
Packit |
3adb1e |
/* add everything */
|
|
Packit |
3adb1e |
for (i = 0; tests[i].func != NULL; i++) {
|
|
Packit |
3adb1e |
CuSuite *st = tests[i].func();
|
|
Packit |
3adb1e |
CuSuiteAddSuite(alltests, st);
|
|
Packit |
3adb1e |
CuSuiteFree(st);
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
else {
|
|
Packit |
3adb1e |
/* add only the tests listed */
|
|
Packit |
3adb1e |
for (i = 1; i < argc; i++) {
|
|
Packit |
3adb1e |
int j;
|
|
Packit |
3adb1e |
int found = 0;
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
if (argv[i][0] == '-') {
|
|
Packit |
3adb1e |
continue;
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
for (j = 0; tests[j].func != NULL; j++) {
|
|
Packit |
3adb1e |
if (!strcmp(argv[i], tests[j].testname)) {
|
|
Packit |
3adb1e |
CuSuiteAddSuite(alltests, tests[j].func());
|
|
Packit |
3adb1e |
found = 1;
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
if (!found) {
|
|
Packit |
3adb1e |
fprintf(stderr, "invalid test name: `%s'\n", argv[i]);
|
|
Packit |
3adb1e |
exit(1);
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
}
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
CuSuiteRun(alltests);
|
|
Packit |
3adb1e |
CuSuiteSummary(alltests, output);
|
|
Packit |
3adb1e |
CuSuiteDetails(alltests, output);
|
|
Packit |
3adb1e |
printf("%s\n", output->buffer);
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
exit_code = alltests->failCount > 0 ? 1 : 0;
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
CuSuiteFreeDeep(alltests);
|
|
Packit |
3adb1e |
CuStringFree(output);
|
|
Packit |
3adb1e |
|
|
Packit |
3adb1e |
return exit_code;
|
|
Packit |
3adb1e |
}
|