[PATCH 05/16] selftests/mm: kselftest_harness: Fix warnings

Muhammad Usama Anjum
2025-01-09T17:39:29Z

Found warnings through hmm-tests and mdwe_test.

Fix following warnings:
- Mark unused variable with unused attribute
- __EXPECT is causing types mismatch warnings when __exp is unsigned and
_seen is equal to a constant number, __typeof__(_seen) returns signed
type.

hmm-tests.c: In function ‘hmm_anon_read’:
../kselftest_harness.h:523:52: warning: comparison of integer expressions of different signedness: ‘long unsigned int’ and ‘int’ [-Wsign-compare]
523 | __EXPECT(expected, #expected, seen, #seen, !=, 1)
| ^~
../kselftest_harness.h:759:21: note: in definition of macro ‘__EXPECT’
759 | if (!(__exp _t __seen)) { \
| ^~
hmm-tests.c:303:9: note: in expansion of macro ‘ASSERT_NE’
303 | ASSERT_NE(npages, 0);
| ^~~~~~~~~
- Mark variant as unused:
mdwe_test.c: In function ‘wrapper_prctl_flags’:
../kselftest_harness.h:177:52: warning: unused parameter ‘variant’ [-Wunused-parameter]
177 | struct __fixture_variant_metadata *variant) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../kselftest_harness.h:152:25: note: in expansion of macro ‘__TEST_IMPL’
152 | #define TEST(test_name) __TEST_IMPL(test_name, -1)
| ^~~~~~~~~~~
mdwe_test.c:23:1: note: in expansion of macro ‘TEST’
23 | TEST(prctl_flags)
| ^~~~

Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
---
tools/testing/selftests/kselftest_harness.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h
index 666c9fde76da9..76e6b3be0e9d6 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -174,7 +174,7 @@
static void test_name(struct __test_metadata *_metadata); \
static inline void wrapper_##test_name( \
struct __test_metadata *_metadata, \
- struct __fixture_variant_metadata *variant) \
+ struct __fixture_variant_metadata __attribute__((unused)) *variant) \
{ \
_metadata->setup_completed = true; \
if (setjmp(_metadata->env) == 0) \
@@ -756,7 +756,7 @@
/* Avoid multiple evaluation of the cases */ \
__typeof__(_expected) __exp = (_expected); \
__typeof__(_seen) __seen = (_seen); \
- if (!(__exp _t __seen)) { \
+ if (!(__exp _t (__typeof__(_expected)) __seen)) { \
/* Report with actual signedness to avoid weird output. */ \
switch (is_signed_type(__exp) * 2 + is_signed_type(__seen)) { \
case 0: { \
@@ -965,7 +965,7 @@ static inline void __test_check_assert(struct __test_metadata *t)
}

struct __test_metadata *__active_test;
-static void __timeout_handler(int sig, siginfo_t *info, void *ucontext)
+static void __timeout_handler(int sig, siginfo_t *info, void __attribute__((unused)) *ucontext)
{
struct __test_metadata *t = __active_test;

--
2.39.5