*/
#define BEGIN_PARSE(line) \
{ \
- int p = 0; \
int rc = 0; \
char *pt = line; \
while (1) { \
+ int p = 0; \
/* find variable */ \
TEST_CHARS (pt, " \t", 0); \
char *var = pt; \
*/
#define BEGIN_CHECK(fields) \
int _fields = fields; \
+ VERBOSE (morep, TRACE, PRINTF ("fields: 0x%04x\n", 0xffff & fields)); \
int p = 0; \
int rc = 0;
@param first first value
@param second second value
*/
-#define CHECK_INT(name, first, second) \
- if ((_fields & (1 << (++p))) && (first != second)) { \
- VERBOSE (morep, WARNING, PRINTF ("%s differed %d / %d\n", name, first, second)); \
- rc = 1; \
+#define CHECK_INT(name, first, second) \
+ if (_fields & (1 << (++p))) { \
+ if (first != second) { \
+ VERBOSE (morep, WARNING, PRINTF ("%s differed %d / %d\n", name, first, second)); \
+ rc = 1; \
+ } else { \
+ VERBOSE (morep, INFO, PRINTF ("%s matched %d\n", name, first)); \
+ } \
}
/**
#define CHECK_DOUBLE(name, first, second) \
if (_fields & (1 << (++p))) { \
if (first == 0) { \
- if (first ! second) { \
+ if (first != second) { \
VERBOSE (morep, WARNING, PRINTF ("%s differed %g / %g\n", name, first, second)); \
rc = 1; \
+ } else { \
+ VERBOSE (morep, INFO, PRINTF ("%s matched %g\n", name, first)); \
} \
} else { \
double diff = (first - second) / first; \
if (diff > TOLERANCE) { \
VERBOSE (morep, WARNING, PRINTF ("%s differed %g / %g\n", name, first, second)); \
rc = 1; \
+ } else { \
+ VERBOSE (morep, INFO, PRINTF ("%s matched %g\n", name, first)); \
} \
} \
}
@param first first value
@param second second value
*/
-#define CHECK_TAB(name, first, second) \
- if ((_fields & (1 << (++p))) && (memcmp (first, second, sizeof (first)))) { \
- VERBOSE (morep, WARNING, PRINTF ("%s differed\n", name)); \
- rc = 1; \
+#define CHECK_TAB(name, first, second) \
+ if (_fields & (1 << (++p))) { \
+ int len = sizeof (first); \
+ if (memcmp (first, second, len)) { \
+ VERBOSE (morep, WARNING, PRINTF ("%s differed\n", name)); \
+ rc = 1; \
+ } else { \
+ VERBOSE (morep, INFO, PRINTF ("%s matched [%d]\n", name, len)); \
+ } \
}
/**
@param first first value
@param second second value
*/
-#define CHECK_ARRAY(name, first, second) \
- if (_fields & (1 << (++p))) { \
- if (first##_len != second##_len) { \
+#define CHECK_ARRAY(name, first, second) \
+ if (_fields & (1 << (++p))) { \
+ if (first##_len != second##_len) { \
VERBOSE (morep, WARNING, PRINTF ("%s size differed %d / %d\n", name, first##_len, second##_len)); \
- rc = 1; \
- } else if (memcmp (first, second, first##_len)) { \
- VERBOSE (morep, WARNING, PRINTF ("%s differed\n", name)); \
- rc = 1; \
- } \
+ rc = 1; \
+ } else if (memcmp (first, second, first##_len)) { \
+ VERBOSE (morep, WARNING, PRINTF ("%s differed\n", name)); \
+ rc = 1; \
+ } else { \
+ VERBOSE (morep, INFO, PRINTF ("%s matched [%d]\n", name, first##_len)); \
+ } \
}
/**