[LTP] [RFC PATCH] API: Allow testing of kernel features in development

Cyril Hrubis chrubis@suse.cz
Wed Jan 5 16:57:04 CET 2022


Hi!
> Add an unstable kernel ABI flag and a runtest file for unstable
> tests. This means we can add tests which are likely to be broken by
> changes in the kernel ABI. Without disrupting LTP releases which are
> required to be stable.
> 
> Users who require stability can filter the tests with this flag
> or not schedule the unstable runtest file(s).
> 
> Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com>
> ---
> 
> How about adding this to the fanotify22 patch?
> 
>  include/tst_test.h        | 12 ++++++++++++
>  lib/tst_test.c            |  6 ++++++
>  runtest/syscalls-unstable |  3 +++
>  3 files changed, 21 insertions(+)
>  create mode 100644 runtest/syscalls-unstable
> 
> diff --git a/include/tst_test.h b/include/tst_test.h
> index 450ddf086..ff31e972e 100644
> --- a/include/tst_test.h
> +++ b/include/tst_test.h
> @@ -174,6 +174,18 @@ struct tst_test {
>  	int skip_in_lockdown:1;
>  	int skip_in_compat:1;
>  
> +	/*
> +	 * Test is for a feature that has not been added to the stable
> +	 * kernel ABI. That is, it's for a feature only available in
> +	 * linux-next, an RC or some other development branch.
> +	 *
> +	 * This string should be set to some text describing the
> +	 * kernel branch and version the test was developed
> +	 * against. e.g. "5.16 RC2", "linux-next-20211220",
> +	 * "net-next".
> +	 */
> +	const char *const unstable_abi_version;

I would rather call this 'remove_after_release' or 'remove_after_kernel_release' but that is very minor.

>  	/*
>  	 * The skip_filesystem is a NULL terminated list of filesystems the
>  	 * test does not support. It can also be used to disable whole class of
> diff --git a/lib/tst_test.c b/lib/tst_test.c
> index 9b51bb5be..babb250d0 100644
> --- a/lib/tst_test.c
> +++ b/lib/tst_test.c
> @@ -1013,6 +1013,12 @@ static void do_setup(int argc, char *argv[])
>  	if (!tst_test)
>  		tst_brk(TBROK, "No tests to run");
>  
> +	if (tst_test->unstable_abi_version) {
> +		tst_res(TINFO,
> +			"This test was developed against pre-release kernel: %s",
> +			tst_test->unstable_abi_version);
> +	}
> +
>  	if (tst_test->tconf_msg)
>  		tst_brk(TCONF, "%s", tst_test->tconf_msg);
>  
> diff --git a/runtest/syscalls-unstable b/runtest/syscalls-unstable
> new file mode 100644
> index 000000000..a87284afe
> --- /dev/null
> +++ b/runtest/syscalls-unstable
> @@ -0,0 +1,3 @@
> +# Tests for kernel features which are not finalized
> +
> +fanotify22 fanotify22

I would be even tempted to add this to the default syscalls runtest file
but render the test resultless, e.g. replace the tst_res() and tst_brk()
handlers in tst_res.c so that it will print only INFO messages.

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list