From 449539dc52070bebde3ae7babe96e6e272dd7101 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Wed, 8 Jul 2020 12:58:56 +0300 Subject: [PATCH] lib-test: test_assert_strcmp_idx - Avoid double evaluation --- src/lib-test/test-common.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib-test/test-common.h b/src/lib-test/test-common.h index 0ac5e6d1d4..8548e327dd 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); -- 2.47.3