1 /* Copyright 2001,2002,2003 Roger Dingledine. */
2 /* See LICENSE for licensing information */
7 #define TEST_H_ID "$Id$"
11 * \brief Headers for test.c
18 #define STMT_BEGIN do {
19 #define STMT_END } while (0)
22 #define PRETTY_FUNCTION __PRETTY_FUNCTION__
24 #define PRETTY_FUNCTION ""
27 extern int have_failed
;
32 printf("\nFile %s: line %d (%s): assertion failed.", \
39 #define test_assert(expr) \
41 if (expr) { printf("."); fflush(stdout); } else { \
43 printf("\nFile %s: line %d (%s): assertion failed: (%s)\n", \
51 #define test_eq(expr1, expr2) \
53 long v1=(long)(expr1), v2=(long)(expr2); \
54 if (v1==v2) { printf("."); fflush(stdout); } else { \
56 printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n"\
66 #define test_neq(expr1, expr2) \
68 long v1=(long)(expr1), v2=(long)(expr2); \
69 if (v1!=v2) { printf("."); fflush(stdout); } else { \
71 printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n"\
81 #define test_streq(expr1, expr2) \
83 const char *v1=(expr1), *v2=(expr2); \
84 if (!strcmp(v1,v2)) { printf("."); fflush(stdout); } else { \
86 printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n"\
87 " (\"%s\" != \"%s\")\n", \
96 #define test_strneq(expr1, expr2) \
98 const char *v1=(expr1), *v2=(expr2); \
99 if (strcmp(v1,v2)) { printf("."); fflush(stdout); } else { \
101 printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n"\
102 " (\"%s\" == \"%s\")\n", \
111 #define test_memeq(expr1, expr2, len) \
113 const void *v1=(expr1), *v2=(expr2); \
114 if (!memcmp(v1,v2,(len))) { printf("."); fflush(stdout); } else {\
116 printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n", \
124 #define test_memneq(expr1, expr2, len) \
126 void *v1=(expr1), *v2=(expr2); \
127 if (memcmp(v1,v2,(len))) { printf("."); fflush(stdout); } else {\
129 printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n", \