]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-test: test_assert_strcmp_idx - Avoid double evaluation
authorAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 8 Jul 2020 09:58:56 +0000 (12:58 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 10 Jul 2020 06:58:10 +0000 (09:58 +0300)
src/lib-test/test-common.h

index 1f1318fe6cf83281ce16f6dbddab5452665dfcfa..926de1e5e186092014f6472eb076316fc03364bf 100644 (file)
@@ -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);