[LTP] [PATCH v2] syscalls/add_key05: Add userdel and groupdel before useradd

xuyang2018.jy@fujitsu.com xuyang2018.jy@fujitsu.com
Wed Oct 12 05:23:44 CEST 2022


Hi Zhao

> Hi,
> 
> 
>>
>> Hi Zhao
>>
>>
>>> If the test exit abnormal, some user/group will be left, and the next
>>> running of the test will fail and report:
>>>
>>>     tst_buffers.c:55: TINFO: Test is using guarded buffers
>>>     tst_test.c:1526: TINFO: Timeout per run is 0h 00m 30s
>>>     useradd: group ltp_add_key05_0 exists - if you want to add this user
>> to that group, use -g.
>>>     add_key05.c:41: TBROK: useradd failed (9)
>>>     userdel: user 'ltp_add_key05_0' does not exist
>>>     add_key05.c:56: TWARN: 'userdel -r ltp_add_key05_0' failed:
>> ENOENT
>>> (2)
>>>
>>> Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
>>> ---
>>>    testcases/kernel/syscalls/add_key/add_key05.c | 5 +++++
>>>    1 file changed, 5 insertions(+)
>>>
>>> diff --git a/testcases/kernel/syscalls/add_key/add_key05.c
>>> b/testcases/kernel/syscalls/add_key/add_key05.c
>>> index 71a88d1a8..e8d249040 100644
>>> --- a/testcases/kernel/syscalls/add_key/add_key05.c
>>> +++ b/testcases/kernel/syscalls/add_key/add_key05.c
>>> @@ -34,10 +34,15 @@ static void add_user(char n)
>>>    {
>>>    	char username[] = "ltp_add_key05_n";
>>>    	const char *const cmd_useradd[] = {"useradd", username,
>> NULL};
>>> +	const char *const cmd_userdel[] = {"userdel", "-r", username, NULL};
>>> +	const char *const cmd_groupdel[] = {"groupdel", username, NULL};
>>>    	struct passwd *pw;
>>>
>>>    	username[sizeof(username) - 2] = '0' + n;
>>>
>>> +	tst_cmd(cmd_userdel, NULL, "/dev/null", TST_CMD_PASS_RETVAL);
>>
>> I do a test on my system
>> #useradd test
>> #userdel -r test
>> #groupdel test
>> groupdel: group 'test' does not exist
>>
>> so I guess we can only using cmd_userdel is enough because it seems
>> userdel will remove the corresponding group.
>>
> 
> If username is not exist, userdel can not remove the group with the same name.
> 
> I have seen the case on my system, but I cannot reproduce it now.

Oh yes, you are right. I look the source code[1]

[1]https://github.com/shadow-maint/shadow/blob/master/src/userdel.c#L1145

I will add a groupdel cmd check in tst_test struct and merge this patch.

Best Regards
Yang Xu
> 
> 
> Regards,
> Gongyi
> 
> 


More information about the ltp mailing list