From: Aki Tuomi Date: Wed, 8 Jul 2020 09:58:56 +0000 (+0300) Subject: lib-test: test_assert_strcmp_idx - Avoid double evaluation X-Git-Tag: 2.3.11.2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9524ebad308ea9d8e614b071815c5f60f6873833;p=thirdparty%2Fdovecot%2Fcore.git lib-test: test_assert_strcmp_idx - Avoid double evaluation --- diff --git a/src/lib-test/test-common.h b/src/lib-test/test-common.h index 1f1318fe6c..926de1e5e1 100644 --- a/src/lib-test/test-common.h +++ b/src/lib-test/test-common.h @@ -36,8 +36,12 @@ void test_begin(const char *name); * When i is greater than or equals 0 it is used to identify the barrage of * tests failed like in test_assert_idx. */ -#define test_assert_strcmp_idx(s1, s2, i) STMT_START { \ - if ((null_strcmp(s1,s2) != 0)) test_assert_failed_strcmp_idx("strcmp(" #s1 "," #s2 ")", __FILE__, __LINE__, s1, s2, i); \ +#define test_assert_strcmp_idx(_s1, _s2, i) STMT_START { \ + const char *s1 = _s1; \ + const char *s2 = _s2; \ + if ((null_strcmp(s1,s2) != 0)) \ + test_assert_failed_strcmp_idx("strcmp(" #_s1 "," #_s2 ")", \ + __FILE__, __LINE__, s1, s2, i); \ } STMT_END void test_assert_failed(const char *code, const char *file, unsigned int line);