.../selftests/filesystems/binderfs/binderfs_test.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
The binderfs selftests, specifically `binderfs_stress` and
`binderfs_test_unprivileged`, depend on user namespaces to run.
On kernels built without user namespace support (CONFIG_USER_NS=n),
these tests will fail.
To prevent these failures, add a check for the availability of user
namespaces by testing for the existence of "/proc/self/ns/user". If
the check fails, skip the tests and print an informative message.
Signed-off-by: Wake Liu <wakel@google.com>
---
.../selftests/filesystems/binderfs/binderfs_test.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
index 81db85a5cc16..e77ed34ebd06 100644
--- a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
+++ b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
@@ -291,6 +291,11 @@ static int write_id_mapping(enum idmap_type type, pid_t pid, const char *buf,
return 0;
}
+static bool has_userns(void)
+{
+ return (access("/proc/self/ns/user", F_OK) == 0);
+}
+
static void change_userns(struct __test_metadata *_metadata, int syncfds[2])
{
int ret;
@@ -378,6 +383,9 @@ static void *binder_version_thread(void *data)
*/
TEST(binderfs_stress)
{
+ if (!has_userns())
+ SKIP(return, "%s: user namespace not supported\n", __func__);
+
int fds[1000];
int syncfds[2];
pid_t pid;
@@ -502,6 +510,8 @@ TEST(binderfs_test_privileged)
TEST(binderfs_test_unprivileged)
{
+ if (!has_userns())
+ SKIP(return, "%s: user namespace not supported\n", __func__);
int ret;
int syncfds[2];
pid_t pid;
--
2.50.1.703.g449372360f-goog
On 8/7/25 07:45, Wake Liu wrote: > The binderfs selftests, specifically `binderfs_stress` and > `binderfs_test_unprivileged`, depend on user namespaces to run. > > On kernels built without user namespace support (CONFIG_USER_NS=n), > these tests will fail. Why not add CONFIG_USER_NS to config file instead to indicate the dependency. tools/testing/selftests/filesystems/binderfs/config which has these as dependencies at the moment. CONFIG_ANDROID_BINDERFS=y CONFIG_ANDROID_BINDER_IPC=y > > To prevent these failures, add a check for the availability of user > namespaces by testing for the existence of "/proc/self/ns/user". If > the check fails, skip the tests and print an informative message.] Can you try adding the dependency first? thanks, -- Shuah
The binderfs selftests, specifically binderfs_stress and
binderfs_test_unprivileged, depend on user namespaces to run.
On kernels built without user namespace support (CONFIG_USER_NS=n),
these tests will fail.
Instead of adding a runtime check, indicate the dependency on
CONFIG_USER_NS in the selftest config file. This allows the
test runner to skip the tests if the required config is not enabled.
Signed-off-by: Wake Liu <wakel@google.com>
---
V1 -> V2: Use selftest config to declare dependency instead of a runtime check.
---
tools/testing/selftests/filesystems/binderfs/config | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/filesystems/binderfs/config b/tools/testing/selftests/filesystems/binderfs/config
index 7b4fc6ee6205..7d5f941d03a8 100644
--- a/tools/testing/selftests/filesystems/binderfs/config
+++ b/tools/testing/selftests/filesystems/binderfs/config
@@ -1,2 +1,3 @@
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_USER_NS=y
\ No newline at end of file
--
2.50.1.703.g449372360f-goog
© 2016 - 2025 Red Hat, Inc.