4 #define _XOPEN_SOURCE 500
10 char *unit_name
, *reason
;
11 unsigned int passed
, failed
;
13 #define INIT_TEST(name) { \
14 setlocale(LC_ALL, "C"); \
16 passed = failed = 0; \
17 printf("Testing unit: %s\n", unit_name); \
20 #define SUM_TEST() { \
21 printf("Test results: unit = %s, passed = %u, failed = %u\n\n", \
22 unit_name, passed, failed); \
23 exit(failed ? EXIT_FAILURE : EXIT_SUCCESS ); \
29 #define FAIL_TEST(message) { \
34 #define ABORT_UNIT(message) { \
35 printf("Unit %s procedure aborted: %s\n", unit_name, (message)); \
40 #define TEST(name, function, ...) { \
41 const char *message; \
43 int status = (function)(__VA_ARGS__); \
51 printf("\t%s: %s\n", (name), message); \
52 if (status) printf("\t\treason: %s\n", reason); \