1 /*
2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
5 * 1.0 of the CDDL.
6 *
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
10 */
11
12 /*
13 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
14 */
15
16 /*
17 * Common handling for test programs.
18 */
19
20 #ifndef _TEST_COMMON_H
21 #define _TEST_COMMON_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 typedef struct test *test_t;
28 typedef void (*test_func_t)(test_t, void *);
29
30 extern void test_set_debug(void);
31 extern void test_set_force(void);
32 extern test_t test_start(const char *name, ...);
33 extern void test_failed(test_t, const char *format, ...);
34 extern void test_passed(test_t);
35 extern void test_debugf(test_t, const char *format, ...);
36 extern void test_run(int nthr, test_func_t, void *arg, const char *, ...);
37 extern void test_summary(void);
38
39 extern void test_trim(char **);
40
41 typedef int (*test_cfg_func_t)(char **fields, int nfields, char **err);
42
43 /*
44 * Args list is array of pairs of const char *keyword, test_config_func_t,
45 * terminated by NULL.
46 */
47 extern int test_load_config(test_t, const char *, ...);
48
49 #ifdef __cplusplus
50 }
51 #endif
52 #endif /* _TEST_COMMON_H */