#ifndef WH_TEST_H_08f521a3_ #define WH_TEST_H_08f521a3_ #include #include #include typedef long long int LLI; typedef struct test TEST; typedef struct kid KID; struct test { void (*run)(void); } ; extern const TEST * const tests[]; extern const char * const test_names[]; extern const int n_tests; extern void run_test(TEST *); #define SET_PIDCONN(lhs,a1,a2,a3) do {\ int checker_val; \ checker_val = pidconn((a1),(a2),(a3)); \ if (checker_val < 0) { \ call_failed("pidconn(" #a1 "," #a2 "," #a3 ")"); \ } \ (lhs) = checker_val; \ } while (0) #define ERROR_PIDCONN(a1,a2,a3,err) do {\ int checker_val; \ checker_val = pidconn((a1),(a2),(a3)); \ if (checker_val >= 0) { \ call_worked("pidconn(" #a1 "," #a2 "," #a3 ")"); \ } \ if (errno != (err)) { \ wrong_error("pidconn(" #a1 "," #a2 "," #a3 ")",errno,(err)); \ } \ } while (0) extern void call_failed(const char *); extern void call_worked(const char *); extern void wrong_error(const char *, int, int); extern void mustwrite(int, const void *, int); extern void mustread(int, void *, int); extern void local_socketpair(int *, int *); extern KID *fork_kid(void (*)(void *), void *); extern void reap_kid(KID *); extern void panic_(const char *, int); #define panic() panic_(__FILE__,__LINE__) extern void test_fail(void); extern void test_init(void); extern int test_failed(void); extern LLI tstamp(void); #endif