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 */
53