[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