37 lines
867 B
C
37 lines
867 B
C
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||
|
#ifndef UTIL_H
|
||
|
#define UTIL_H
|
||
|
|
||
|
/* Tests can either run as the client or the server */
|
||
|
enum test_mode {
|
||
|
TEST_MODE_UNSET,
|
||
|
TEST_MODE_CLIENT,
|
||
|
TEST_MODE_SERVER
|
||
|
};
|
||
|
|
||
|
/* Test runner options */
|
||
|
struct test_opts {
|
||
|
enum test_mode mode;
|
||
|
unsigned int peer_cid;
|
||
|
};
|
||
|
|
||
|
/* A test case definition. Test functions must print failures to stderr and
|
||
|
* terminate with exit(EXIT_FAILURE).
|
||
|
*/
|
||
|
struct test_case {
|
||
|
const char *name; /* human-readable name */
|
||
|
|
||
|
/* Called when test mode is TEST_MODE_CLIENT */
|
||
|
void (*run_client)(const struct test_opts *opts);
|
||
|
|
||
|
/* Called when test mode is TEST_MODE_SERVER */
|
||
|
void (*run_server)(const struct test_opts *opts);
|
||
|
};
|
||
|
|
||
|
void init_signals(void);
|
||
|
unsigned int parse_cid(const char *str);
|
||
|
void run_tests(const struct test_case *test_cases,
|
||
|
const struct test_opts *opts);
|
||
|
|
||
|
#endif /* UTIL_H */
|