#ifndef _SYS_KTEST_IMPL_H
#define _SYS_KTEST_IMPL_H
#include <sys/ktest.h>
#include <sys/list.h>
#include <sys/types.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
typedef struct ktest_module {
list_node_t km_node;
char km_name[KTEST_MAX_NAME_LEN];
uint64_t km_num_suites;
uint64_t km_num_tests;
list_t km_suites;
} ktest_module_t;
typedef struct ktest_suite {
list_node_t ks_node;
ktest_module_t *ks_module;
char ks_name[KTEST_MAX_NAME_LEN];
uint64_t ks_num_tests;
list_t ks_tests;
} ktest_suite_t;
typedef struct ktest_test {
list_node_t kt_node;
ktest_suite_t *kt_suite;
char kt_name[KTEST_MAX_NAME_LEN];
ktest_fn_t kt_fn;
boolean_t kt_requires_input;
} ktest_test_t;
typedef struct ktest_ctx {
const ktest_test_t *ktc_test;
ktest_result_t *ktc_res;
uchar_t *ktc_input;
uint64_t ktc_input_len;
} ktest_ctx_t;
#endif
#ifdef __cplusplus
}
#endif
#endif