Message ID | 87fspd2nzl.fsf@oldenburg.str.redhat.com |
---|---|
State | Committed |
Commit | 5b8e7980c5dabd9aaefeba4f0208baa8cf7653ee |
Headers | show |
Series | Linux: Detect user namespace support in io/tst-getcwd-smallbuff | expand |
Context | Check | Description |
---|---|---|
dj/TryBot-apply_patch | success | Patch applied to master at the time it was sent |
dj/TryBot-32bit | success | Build for i686 |
On 24/01/2022 20:13, Florian Weimer via Libc-alpha wrote: > Otherwise the test fails with certain container runtimes. > Thanks, you saved me a few hours; I was just looking at this :) LGTM. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> > --- > sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c > index d460d6e766..55362f6060 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), >
diff --git a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c index d460d6e766..55362f6060 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),