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

Cyril Hrubis chrubis@suse.cz
Mon Dec 13 17:32:43 CET 2021


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

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list