1/*************************************************************** 2 * Test Declarations Go Here * 3 ***************************************************************/ 4#include <pexpert/pexpert.h> 5#include <sys/sysctl.h> 6#include <kern/debug.h> 7#include <sys/kern_tests.h> 8 9/*************************************************************** 10 * End Test Declarations * 11 ***************************************************************/ 12typedef int (*xnu_test_func_t)(void); 13 14typedef struct xnu_test { 15 xnu_test_func_t t_func; 16 const char *t_name; 17} xnu_test_t; 18 19#define DEFINE_XNU_TEST(func) { func, #func } 20 21xnu_test_t xnu_tests[] = { 22}; 23 24#define NUM_XNU_TESTS (sizeof(xnu_tests) / sizeof(xnu_test_t)) 25 26static int 27run_xnu_tests 28(struct sysctl_oid *oidp, __unused void *arg1, __unused int arg2, struct sysctl_req *req) 29{ 30 unsigned i; 31 int result; 32 33 for (i = 0; i < NUM_XNU_TESTS; i++) { 34 result = xnu_tests[i].t_func(); 35 if (result == 0) { 36 kprintf("xnu_tests: %s passed.\n", xnu_tests[i].t_name); 37 } else{ 38 panic("xnu_tests: %s failed.\n", xnu_tests[i].t_name); 39 } 40 } 41 42 return sysctl_handle_int(oidp, NULL, 0, req); 43} 44 45SYSCTL_PROC(_kern, OID_AUTO, kern_tests, 46 CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_LOCKED, 47 0, 0, run_xnu_tests, "I", ""); 48 49