[LTP] [PATCH v2 2/2] syscalls/geteuid02: Convert into new api

Yang Xu (Fujitsu) xuyang2018.jy@fujitsu.com
Wed Jul 12 04:01:53 CEST 2023


Hi Petr,

> Hi Xu,
> 
>> -		if (pwent == NULL)
>> -			tst_resm(TFAIL | TERRNO, "getpwuid failed");
>> -
>> -		UID16_CHECK(pwent->pw_uid, geteuid, cleanup);
> Don't we need to use UID16_CHECK()? In the new API version from
> compat_tst_16.h
> 
 >
Previously, the EUID was obtained from the return value of getpwuid()
and compared with the return value of geteuid() to check for a match.
This approach seemed more like a test of getpwuid() rather than testing 
geteuid() itself.

EUID is stored in /proc/self/status, and we can directly obtain it for 
comparison with the return from geteuid().

Best Regards
Yang Xu

> Kind regards,
> Petr
> 
>> -		if (pwent->pw_uid != TEST_RETURN)
>> -			tst_resm(TFAIL, "getpwuid value, %d, "
>> -				 "does not match geteuid "
>> -				 "value, %ld", pwent->pw_uid,
>> -				 TEST_RETURN);
>> -		else
>> -			tst_resm(TPASS, "values from geteuid "
>> -				 "and getpwuid match");
>> -	}
> ...
>> +	TST_EXP_EXPR(TST_RET == uid[1],
>> +		     "geteuid() ret %ld == /proc/self/status EUID: %ld",
>> +		     TST_RET, uid[1]);
>>   }
> 
>> +static struct tst_test test = {
>> +	.test_all = verify_geteuid,
>> +};


More information about the ltp mailing list