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

Yuan Sun
2015-07-01T10:58:58Z

I was not familiar with ltp_syscall and didn't have comment. Thanks you
for updating userns04 case.
Regards.
Yuan

On 2015/7/1 14:55, Jan Stancek wrote:
>
>
>
> ----- 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
>>
>>
> ------------------------------------------------------------------------------
> 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