00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00032 #ifndef YAZ_TEST_H
00033 #define YAZ_TEST_H
00034
00035 #include <yaz/yconfig.h>
00036 #include <stdio.h>
00037
00039 int yaz_test_get_verbosity(void);
00040
00042 #define YAZ_TEST_TYPE_OK 1
00043
00044 #define YAZ_TEST_TYPE_FAIL 2
00045
00047 #define YAZ_CHECK(as) { \
00048 if (as) { \
00049 yaz_check_print1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, #as); \
00050 } else { \
00051 yaz_check_print1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, #as); \
00052 } \
00053 }
00054
00062 #define YAZ_CHECK_TODO(as) { \
00063 yaz_check_inc_todo(); \
00064 if (!as) { \
00065 yaz_check_print1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, "TODO: " #as); \
00066 } else { \
00067 yaz_check_print1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, "TODO: "#as); \
00068 } \
00069 }
00070
00072 #define YAZ_CHECK_EQ(left, right) { \
00073 int lval = left; \
00074 int rval = right; \
00075 if (lval == rval) { \
00076 yaz_check_eq1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, \
00077 #left, #right, lval, rval); \
00078 } else { \
00079 yaz_check_eq1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, \
00080 #left, #right, lval, rval); \
00081 } \
00082 }
00083
00085 #define YAZ_CHECK_INIT(argc, argv) yaz_check_init1(&argc, &argv)
00086
00087 #define YAZ_CHECK_TERM yaz_check_term1(); return 0
00088
00090 #define YAZ_CHECK_LOG() yaz_check_init_log(argv[0])
00091
00092 YAZ_BEGIN_CDECL
00093
00095 YAZ_EXPORT void yaz_check_init1(int *argc, char ***argv);
00096
00098 YAZ_EXPORT void yaz_check_term1(void);
00099
00101 YAZ_EXPORT void yaz_check_init_log(const char *argv0);
00102
00104 YAZ_EXPORT void yaz_check_print1(int type, const char *file, int line,
00105 const char *expr);
00107 YAZ_EXPORT void yaz_check_eq1(int type, const char *file, int line,
00108 const char *left, const char *right,
00109 int lval, int rval);
00111 YAZ_EXPORT void yaz_check_inc_todo(void);
00112 YAZ_END_CDECL
00113
00114 #endif
00115
00116
00117
00118
00119
00120
00121
00122