[LTP] [PATCH 2/2] syscalls/utimensat01: add exception for Ubuntu 4.4 kernel
Cyril Hrubis
chrubis@suse.cz
Mon Aug 17 14:42:02 CEST 2020
Hi!
> Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
> ---
> testcases/kernel/syscalls/utimensat/utimensat01.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/utimensat/utimensat01.c b/testcases/kernel/syscalls/utimensat/utimensat01.c
> index 7dabfed6d..469cb61c5 100644
> --- a/testcases/kernel/syscalls/utimensat/utimensat01.c
> +++ b/testcases/kernel/syscalls/utimensat/utimensat01.c
> @@ -158,6 +158,10 @@ static void tst_multi_set_time(enum tst_ts_type type, struct mytime *mytime)
>
> static void update_error(struct test_case *tc)
> {
> + static struct tst_kern_exv kvers[] = {
> + { "UBUNTU", "4.4.0-48.69" },
> + };
> +
> if (tc->exp_err != -1)
> return;
>
> @@ -167,9 +171,12 @@ static void update_error(struct test_case *tc)
> * This patch has also been merged to stable 4.4 with
> * b3b4283 ("vfs: move permission checking into notify_change() for utimes(NULL)")
> */
> - if (tst_kvercmp(4, 4, 27) < 0)
> + if (tst_kvercmp(4, 4, 27) < 0) {
> tc->exp_err = EACCES;
> - else
> + // Special case for Ubuntu kernel, which got this patch since 4.4.0-48.69
> + if (tst_kvercmp2(4, 4, 0, kvers))
> + tc->exp_err = EPERM;
> + } else
> tc->exp_err = EPERM;
This whole thing looks broken, this is not how the tst_kvercmp2() is
supposed to work. The generic kernel version is supposed to be passed in
the first parameters and the kvers overrides that option.
So this should be something like:
if (tst_kvercmp2(4, 4, 27, kvers) < 0)
tc->exp_err = EACCESS;
else
tc->exp_err = EPERM;
And in a case that the distro matches to UBUNTU the kernel version is
compared against the "4.4.0-48.69" instead of the generic one.
> }
>
> --
> 2.17.1
>
--
Cyril Hrubis
chrubis@suse.cz
More information about the ltp
mailing list