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