You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
commit 3438bbca90895d32825a52e31a77dc44d273c1c1 |
|
Author: Florian Weimer <fweimer@redhat.com> |
|
Date: Mon Jan 24 18:14:24 2022 +0100 |
|
|
|
Linux: Detect user namespace support in io/tst-getcwd-smallbuff |
|
|
|
Otherwise the test fails with certain container runtimes. |
|
|
|
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> |
|
(cherry picked from commit 5b8e7980c5dabd9aaefeba4f0208baa8cf7653ee) |
|
|
|
diff --git a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c |
|
index d460d6e7662dc5e4..55362f6060a2b3be 100644 |
|
--- a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c |
|
+++ b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c |
|
@@ -34,6 +34,7 @@ |
|
#include <sys/un.h> |
|
#include <support/check.h> |
|
#include <support/temp_file.h> |
|
+#include <support/test-driver.h> |
|
#include <support/xsched.h> |
|
#include <support/xunistd.h> |
|
|
|
@@ -188,6 +189,23 @@ do_test (void) |
|
xmkdir (MOUNT_NAME, S_IRWXU); |
|
atexit (do_cleanup); |
|
|
|
+ /* Check whether user namespaces are supported. */ |
|
+ { |
|
+ pid_t pid = xfork (); |
|
+ if (pid == 0) |
|
+ { |
|
+ if (unshare (CLONE_NEWUSER | CLONE_NEWNS) != 0) |
|
+ _exit (EXIT_UNSUPPORTED); |
|
+ else |
|
+ _exit (0); |
|
+ } |
|
+ int status; |
|
+ xwaitpid (pid, &status, 0); |
|
+ TEST_VERIFY_EXIT (WIFEXITED (status)); |
|
+ if (WEXITSTATUS (status) != 0) |
|
+ return WEXITSTATUS (status); |
|
+ } |
|
+ |
|
TEST_VERIFY_EXIT (socketpair (AF_UNIX, SOCK_STREAM, 0, sockfd) == 0); |
|
pid_t child_pid = xclone (child_func, NULL, child_stack, |
|
sizeof (child_stack),
|
|
|