git.fiddlerwoaroof.com
testutil.h
a26b1d7c
 #ifndef _TESTUTIL_H
 #define _TESTUTIL_H
 
 #define check(assertion, msg) \
     if (!(assertion)) { \
       fprintf(stderr, "assertion failed: %s\n", msg); \
       return 0; \
     }
 
 #define checkint(expected, actual, name) \
     check(expected == actual, name " should be " #expected)
 
 #define checkstr(expected, actual, name) \
     check(!strcmp(actual, expected), name " should be '" expected "'")
 
d509a3b6
 #ifdef reset_vars
 #define _reset reset_vars()
 #else
 #define _reset
 #endif
 
e4bb67f3
 #define test(NAME) \
     { \
d509a3b6
       _reset \
e4bb67f3
       int result = NAME (); \
       if (!result) { \
           fprintf(stderr, "test failed: %s\n", #NAME); \
           return 0; \
       } \
     }
 
a26b1d7c
 #define succeed() return 1
9dd224b0
 #define fail() return 0
a26b1d7c
 
 #endif