| #ifndef __TEST_H__ |
| #define __TEST_H__ |
| |
| static int test_passed = 0; |
| static int test_failed = 0; |
| |
| /* Terminate current test with error */ |
| #define fail() return __LINE__ |
| |
| /* Successful end of the test case */ |
| #define done() return 0 |
| |
| /* Check single condition */ |
| #define check(cond) \ |
| do { \ |
| if (!(cond)) \ |
| fail(); \ |
| } while (0) |
| |
| /* Test runner */ |
| static void test(int (*func)(void), const char *name) { |
| int r = func(); |
| if (r == 0) { |
| test_passed++; |
| } else { |
| test_failed++; |
| printf("FAILED: %s (at line %d)\n", name, r); |
| } |
| } |
| |
| #endif /* __TEST_H__ */ |