#define END_TEST exit ((fail_count__ == 0) ? 0 : 1);
+#define LOG(result, text) \
+ printf ("%s %i - %s\n", result ? "ok" : "not ok", ++check_count__, text)
+
#define OK1(cond, text) do { \
_Bool result = (cond); \
- printf ("%s %i - %s\n", result ? "ok" : "not ok", ++check_count__, text); \
+ LOG (result, text); \
if (!result) { return -1; } \
} while (0)
#define OK(cond) OK1(cond, #cond)
#define EXPECT_EQ_STR(expect, actual) do { \
- if (strcmp (expect, actual) != 0) { \
+ /* Evaluate 'actual' only once. */ \
+ const char *got__ = actual; \
+ if (strcmp (expect, got__) != 0) { \
printf ("not ok %i - %s = \"%s\", want \"%s\"\n", \
- ++check_count__, #actual, actual, expect); \
+ ++check_count__, #actual, got__, expect); \
return (-1); \
} \
- printf ("ok %i - %s = \"%s\"\n", ++check_count__, #actual, actual); \
+ printf ("ok %i - %s = \"%s\"\n", ++check_count__, #actual, got__); \
} while (0)
#define EXPECT_EQ_INT(expect, actual) do { \