doc: Fix spelling
[libisds.git] / test / test.h
blob0d3b2394cef6ea739738d5397498ff34435ba4b6
1 #ifndef __ISDS_TEST_H
2 #define __ISDS_TEST_H
4 #define _XOPEN_SOURCE 500
5 #include <stdlib.h>
6 #include <stdio.h>
7 #include <locale.h>
8 #include <stdint.h>
10 char *unit_name, *reason;
11 unsigned int passed, failed;
13 #define INIT_TEST(name) { \
14 setlocale(LC_ALL, "C"); \
15 unit_name = name; \
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 ); \
26 #define PASS_TEST \
27 return 0;
29 #define FAIL_TEST(message) { \
30 reason = (message); \
31 return 1; \
34 #define ABORT_UNIT(message) { \
35 printf("Unit %s procedure aborted: %s\n", unit_name, (message)); \
36 exit(EXIT_FAILURE); \
40 #define TEST(name, function, ...) { \
41 const char *message; \
42 reason = NULL; \
43 int status = (function)(__VA_ARGS__); \
44 if (status) { \
45 failed++; \
46 message = "failed"; \
47 } else { \
48 passed++; \
49 message = "passed"; \
50 } \
51 printf("\t%s: %s\n", (name), message); \
52 if (status) printf("\t\treason: %s\n", reason); \
55 #endif