This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v3] tst-ttyname: skip the test if failed to become root
Dmitry V. Levin wrote:
> It would be quite logical for tst-ttyname to return EXIT_UNSUPPORTED
> as soon as support_become_root failed.
Indeed; in the original version of the test, whereit called
support_become_root, it said:
support_become_root ();
if (unshare (CLONE_NEWNS) < 0)
FAIL_UNSUPPORTED ("could not enter new mount namespace");
Where, that call to `unshare (CLONE_NEWNS)` is guaranteed to to fail
if `support_become_root ()` failed; it would have been pointless to
check for failure twice in the same spot by directly checking
support_become_root.
However, when Florian cleaned up the test, the call to
support_become_root got moved to be much earlier in the test; my above
assumtion that we would immediately be doing something that would
implicitly check the success of support_become_root became invalid.
Of course, I didn't realize that when I said "LGTM" To Florian's
patch.
If the only problem with the test is that support_become_root fails,
then we can count on the later
if (!support_enter_mount_namespace ())
FAIL_UNSUPPORTED ("could not enter new mount namespace");
causing us to exit with EXIT_UNSUPPORTED. But, checking the result of
support_become_root allows us to exit earlier; saving pointless work.
On Tue, 26 Dec 2017 09:10:02 -0500,
Dmitry V. Levin wrote:
> diff --git a/sysdeps/unix/sysv/linux/tst-ttyname.c b/sysdeps/unix/sysv/linux/tst-ttyname.c
> index 0fdf1a8..3943403 100644
> --- a/sysdeps/unix/sysv/linux/tst-ttyname.c
> +++ b/sysdeps/unix/sysv/linux/tst-ttyname.c
> @@ -554,7 +554,8 @@ run_chroot_tests (const char *slavename, int slave)
> static int
> do_test (void)
> {
> - support_become_root ();
> + if (!support_become_root ())
> + return EXIT_UNSUPPORTED;
>
> int ret1 = do_in_chroot_1 (run_chroot_tests);
> if (ret1 == EXIT_UNSUPPORTED)
So, with the above in mind, I do think this patch should be applied.
But, I do agree with Florian when he said
Florian Weimer wrote:
> I don't think the glibc test suite is supposed to pass in such an
> environment [without ptmx]. If you don't provide /dev/null, /sys,
> or /proc to the tests, some of them will fail as well. I still
> think that the current test accurately reflects the inadequacy of
> your test environment.
So I don't nescessarily think that this should be backported to the
2.26 stable branch.
--
Happy hacking,
~ Luke Shumaker