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