Re: [LTP] [PATCHv3] containers: Use ltp_syscall for setns incase some libc library do not support it

Jan Stancek
2015-07-01T06:55:41Z

----- Original Message -----
> From: "Hangbin Liu" <liuhangbin@gmail.com>
> To: "LTP List" <ltp-list@lists.sourceforge.net>
> Cc: "Jan Stancek" <jstancek@redhat.com>
> Sent: Wednesday, 1 July, 2015 8:35:32 AM
> Subject: [LTP][PATCHv3] containers: Use ltp_syscall for setns incase some libc library do not support it
>
> Use ltp_syscall for setns incase some libc library do not support it. Also
> check whether we support setns in setup(). If it's support the syscall will
> silently fails and test continues. If not, then tst_brkm call will end the
> test with TCONF.
>
> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>

Pushed with cosmetic change to commit message.

Thanks,
Jan

> ---
> testcases/kernel/containers/userns/userns04.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/containers/userns/userns04.c
> b/testcases/kernel/containers/userns/userns04.c
> index 7077679..9836fd9 100644
> --- a/testcases/kernel/containers/userns/userns04.c
> +++ b/testcases/kernel/containers/userns/userns04.c
> @@ -35,6 +35,7 @@ int TST_TOTAL = 1;
> static void setup(void)
> {
> check_newuser();
> + ltp_syscall(__NR_setns, -1, 0);
> tst_tmpdir();
> TST_CHECKPOINT_INIT(NULL);
> }
> @@ -55,7 +56,7 @@ static int child_fn2(void *arg)
> int exit_val = 0;
> int ret;
>
> - ret = setns(((long)arg), CLONE_NEWUSER);
> + ret = ltp_syscall(__NR_setns, ((long)arg), CLONE_NEWUSER);
> if (ret != -1) {
> printf("child2 setns() unexpected success\n");
> exit_val = 1;
> @@ -112,7 +113,7 @@ static void test_cap_sys_admin(void)
> case -1:
> tst_brkm(TBROK | TERRNO, cleanup, "fork");
> case 0:
> - if (setns(fd, CLONE_NEWUSER) == -1) {
> + if (ltp_syscall(__NR_setns, fd, CLONE_NEWUSER) == -1) {
> printf("parent pid setns failure: (%d) %s",
> errno, strerror(errno));
> exit(1);
> --
> 1.9.3