[LTP] [PATCH] [v1, 1/2] syscalls/sched_get_priority_max01: Convert to new API

sujiaxun sujiaxun@uniontech.com
Tue Dec 14 03:59:10 CET 2021


在 2021/12/14 上午12:32, Cyril Hrubis 写道:
> Hi!
>> +/*\
>> + * [Description]
>> + *
>>    *	This is a Phase I test for the sched_get_priority_max(2) system call.
>>    *	It is intended to provide a limited exposure of the system call.
> 
> Can we please get a better description than this?
> 
> Something along the lines that it gets max prio for different
> schedulling policies and compares that with expected value?
> 
>>   #include <errno.h>
>>   #include <sched.h>
>> -#include "test.h"
>> -
>> -static void setup();
>> -static void cleanup();
>> +#include "lapi/syscalls.h"
>> +#include "tst_test.h"
>>
>> -char *TCID = "sched_get_priority_max01";
>> -
>> -static struct test_case_t {
>> +static struct test_case {
>>   	char *desc;
>>   	int policy;
>>   	int retval;
>> -} test_cases[] = {
>> +} tcases[] = {
>>   	{
>>   	"Test for SCHED_OTHER", SCHED_OTHER, 0}, {
>>   	"Test for SCHED_FIFO", SCHED_FIFO, 99}, {
>>   	"Test for SCHED_RR", SCHED_RR, 99}
> 
> This formatting looks really strange, the opening and closing braces
> should be on the same line as:
> 
> 	{"foo", foo, 0},
> 	...
> 
> Also there is no point to repeat the "Test for" in each string, all that
> needs to be stored in the desc is the name of the macro as a string.
> 
>>   };
>>
>> -int TST_TOTAL = sizeof(test_cases) / sizeof(test_cases[0]);
>>
>> -int main(int ac, char **av)
>> +static void run_test(unsigned int nr)
>>   {
>>
>> -	int lc, ind;
>> -
>> -	tst_parse_opts(ac, av, NULL, NULL);
>> -
>> -	setup();
>> +	struct test_case *tc = &tcases[nr];
>>
>> -	for (lc = 0; TEST_LOOPING(lc); lc++) {
>> +	TEST(tst_syscall(__NR_sched_get_priority_max, tc->policy));
> 
> Can we please switch to TST_EXP_POSITIVE() here?
> 
> This part should look like:
> 
> 	TST_EXP_POSITIVE(...);
> 
> 	if (!TST_PASS)
> 		return;
> 
> 	if (TST_RET == tc->retval)
> 		tst_res(TPASS, ...);
> 	else
> 		tst_res(FAIL, ...);
> 
>> -		tst_count = 0;
>> -
>> -		for (ind = 0; ind < TST_TOTAL; ind++) {
>> -			/*
>> -			 * Call sched_get_priority_max(2)
>> -			 */
>> -			TEST(sched_get_priority_max(test_cases[ind].policy));
>> -
>> -			if (TEST_RETURN == test_cases[ind].retval) {
>> -				tst_resm(TPASS, "%s Passed",
>> -					 test_cases[ind].desc);
>> -			} else {
>> -				tst_resm(TFAIL | TTERRNO, "%s Failed, "
>> -					 "sched_get_priority_max() returned %ld",
>> -					 test_cases[ind].desc, TEST_RETURN);
>> -			}
>> -		}
>> +	if (TST_RET == tc->retval) {
>> +		tst_res(TPASS, "%s Passed",
>> +			 tc->desc);
>> +	} else {
>> +		tst_res(TFAIL | TTERRNO, "%s Failed, "
>> +			 "sched_get_priority_max() returned %ld",
>> +			 tc->desc, TST_RET);
>>   	}
>>
>> -	/* cleanup and exit */
>> -	cleanup();
>> -
>> -	tst_exit();
>> -
>> -}
>> -
>> -/* setup() - performs all ONE TIME setup for this test */
>> -void setup(void)
>> -{
>> -
>> -	tst_sig(NOFORK, DEF_HANDLER, cleanup);
>> -
>> -	TEST_PAUSE;
>> -
>>   }
>>
>> -/*
>> - *cleanup() -  performs all ONE TIME cleanup for this test at
>> - *		completion or premature exit.
>> - */
>> -void cleanup(void)
>> -{
>> -
>> -}
>> +static struct tst_test test = {
>> +	.tcnt = ARRAY_SIZE(tcases),
>> +	.test = run_test,
>> +};
>> --
>> 2.20.1
>>
>>
>>
>>
>> -- 
>> Mailing list info: https://lists.linux.it/listinfo/ltp
> 
Thank you, I will resubmit after making changes.




More information about the ltp mailing list