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 <liuhang...@gmail.com> --- 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 ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list