a26b1d7c |
#ifndef _TESTUTIL_H
#define _TESTUTIL_H
|
8ab94c71 |
#include <cstring>
#include <cstdio>
|
a26b1d7c |
#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) \
|
469d5639 |
check(!strcmp(expected, actual), name " should be '" expected "'")
|
a26b1d7c |
|
704ed597 |
#define RESET_VARS_START void __reset_vars() {
#define RESET_VARS_END }
|
d509a3b6 |
|
e4bb67f3 |
#define test(NAME) \
{ \
|
704ed597 |
__reset_vars(); \
|
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
|