[PATCH] selftests/configfs: fix the build on 32-bit architectures
From: Sasha Levin
Date: Tue Nov 03 2026 - 09:56:26 EST
The fixture setup checks the result of mkdtemp() with ASSERT_NE(), which
hands the pointer to the harness. The harness casts both operands to
intmax_t to print them, and on 32-bit architectures gcc warns about the
cast from a pointer to an integer of a different size. The configfs
test builds with -Werror, so it fails to build there:
kselftest_harness.h:797:49: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
Compare the result against NULL inside ASSERT_TRUE(), so that the
harness only sees an int.
Fixes: a7fdcb2edd0f ("selftests/configfs: add tests for the userspace interface")
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
KernelCI's 32-bit arm kselftest builds fail on this. Built
configfs_test.c with gcc 16 -m32, with and without _TIME_BITS=64 (fails
before, builds after), clang 21 -m32, and both compilers for x86_64.
The harness cast warns for every pointer comparison on 32-bit, a few
thousand warnings in one KernelCI arm build, and configfs only breaks
because of its -Werror. Making the harness print pointers through
uintptr_t would be a separate change.
tools/testing/selftests/filesystems/configfs/configfs_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/filesystems/configfs/configfs_test.c b/tools/testing/selftests/filesystems/configfs/configfs_test.c
index c6a1049e5852e..94ae8f7103092 100644
--- a/tools/testing/selftests/filesystems/configfs/configfs_test.c
+++ b/tools/testing/selftests/filesystems/configfs/configfs_test.c
@@ -122,7 +122,7 @@ FIXTURE_SETUP(configfs)
ASSERT_EQ(unshare(CLONE_NEWNS), 0);
ASSERT_EQ(mount(NULL, "/", NULL, MS_REC | MS_PRIVATE, NULL), 0);
- ASSERT_NE(mkdtemp(tmpl), NULL);
+ ASSERT_TRUE(mkdtemp(tmpl) != NULL);
strcpy(self->mnt, tmpl);
ASSERT_EQ(mount("configfs", self->mnt, "configfs", 0, NULL), 0);
--
2.53.0