diff --git a/tests/server/first.c b/tests/server/first.c new file mode 100644 index 0000000000..146726fc93 --- /dev/null +++ b/tests/server/first.c @@ -0,0 +1,58 @@ +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ +#include +#include "first.h" + +int main(int argc, char **argv) +{ + main_func_t main_func; + char *main_name; + + if(argc < 2) { + fprintf(stderr, "Pass servername as first argument\n"); + return 1; + } + + main_name = argv[1]; + main_func = NULL; + { + size_t tmp; + for(tmp = 0; tmp < (sizeof(s_mains)/sizeof((s_mains)[0])); ++tmp) { + if(strcmp(main_name, s_mains[tmp].name) == 0) { + main_func = s_mains[tmp].ptr; + break; + } + } + } + + if(!main_func) { + fprintf(stderr, "Test '%s' not found.\n", main_name); + return 99; + } + + --argc; + ++argv; + + return main_func(argc, argv); +} diff --git a/tests/server/first.h b/tests/server/first.h new file mode 100644 index 0000000000..54863cdf38 --- /dev/null +++ b/tests/server/first.h @@ -0,0 +1,33 @@ +#ifndef HEADER_SERVER_FIRST_H +#define HEADER_SERVER_FIRST_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ +typedef int (*main_func_t)(int, char **); + +struct onemain { + const char *name; + main_func_t ptr; +}; + +#endif /* HEADER_SERVER_FIRST_H */