[LTP] [PATCH 3/6] fanotify: Switch event and mark tests to *_on_fs() variant

Amir Goldstein amir73il@gmail.com
Wed Nov 29 15:52:33 CET 2023


On Wed, Nov 29, 2023 at 1:54 PM Jan Kara <jack@suse.cz> wrote:
>
> Switch event availability and mark type availability tests to be
> performed on the filesystem actually used for testing instead of on the
> current directory. This is more reliable as not all filesystems support
> the same set of features.
>
> Signed-off-by: Jan Kara <jack@suse.cz>

Reviewed-by: Amir Goldstein <amir73il@gmail.com>

> ---
>  testcases/kernel/syscalls/fanotify/fanotify.h   |  2 +-
>  testcases/kernel/syscalls/fanotify/fanotify01.c |  2 +-
>  testcases/kernel/syscalls/fanotify/fanotify03.c |  7 ++++---
>  testcases/kernel/syscalls/fanotify/fanotify09.c |  3 ++-
>  testcases/kernel/syscalls/fanotify/fanotify10.c | 13 ++++++++-----
>  testcases/kernel/syscalls/fanotify/fanotify11.c |  2 +-
>  testcases/kernel/syscalls/fanotify/fanotify12.c |  5 ++---
>  testcases/kernel/syscalls/fanotify/fanotify13.c |  3 ++-
>  testcases/kernel/syscalls/fanotify/fanotify14.c |  3 ++-
>  testcases/kernel/syscalls/fanotify/fanotify16.c |  3 ++-
>  10 files changed, 25 insertions(+), 18 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h
> index f28da1a5ee55..31afc29c8cb6 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify.h
> +++ b/testcases/kernel/syscalls/fanotify/fanotify.h
> @@ -352,7 +352,7 @@ static inline int fanotify_handle_supported_by_kernel(int flag)
>         if (init_flags)                                                 \
>                 REQUIRE_FANOTIFY_INIT_FLAGS_SUPPORTED_ON_FS(init_flags, fname); \
>         fanotify_flags_err_msg(#mask, __FILE__, __LINE__, tst_brk_, \
> -               fanotify_events_supported_by_kernel(mask, init_flags, mark_type)); \
> +               fanotify_flags_supported_on_fs(init_flags, mark_type, mask, fname)); \
>  } while (0)
>
>  static inline struct fanotify_event_info_header *get_event_info(
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify01.c b/testcases/kernel/syscalls/fanotify/fanotify01.c
> index 3538335c9ab0..5ce1dc76ac8c 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify01.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify01.c
> @@ -341,7 +341,7 @@ static void setup(void)
>         SAFE_FILE_PRINTF(fname, "1");
>
>         fan_report_fid_unsupported = fanotify_init_flags_supported_on_fs(FAN_REPORT_FID, fname);
> -       filesystem_mark_unsupported = fanotify_mark_supported_by_kernel(FAN_MARK_FILESYSTEM);
> +       filesystem_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_FILESYSTEM, fname);
>  }
>
>  static void cleanup(void)
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify03.c b/testcases/kernel/syscalls/fanotify/fanotify03.c
> index 0bd61587a9eb..343ba857e1ae 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify03.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify03.c
> @@ -322,12 +322,13 @@ static void setup(void)
>  {
>         require_fanotify_access_permissions_supported_by_kernel();
>
> -       filesystem_mark_unsupported = fanotify_mark_supported_by_kernel(FAN_MARK_FILESYSTEM);
> -       exec_events_unsupported = fanotify_events_supported_by_kernel(FAN_OPEN_EXEC_PERM,
> -                                                                     FAN_CLASS_CONTENT, 0);
>         sprintf(fname, MOUNT_PATH"/fname_%d", getpid());
>         SAFE_FILE_PRINTF(fname, "1");
>
> +       filesystem_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_FILESYSTEM, fname);
> +       exec_events_unsupported = fanotify_flags_supported_on_fs(FAN_CLASS_CONTENT,
> +                                       0, FAN_OPEN_EXEC_PERM, fname);
> +
>         SAFE_CP(TEST_APP, FILE_EXEC_PATH);
>  }
>
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify09.c b/testcases/kernel/syscalls/fanotify/fanotify09.c
> index 3f2db47093c8..6bb1b9e7036f 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify09.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify09.c
> @@ -482,7 +482,8 @@ static void setup(void)
>  {
>         fan_report_dfid_unsupported = fanotify_init_flags_supported_on_fs(FAN_REPORT_DFID_NAME,
>                                                                           MOUNT_PATH);
> -       ignore_mark_unsupported = fanotify_mark_supported_by_kernel(FAN_MARK_IGNORE_SURV);
> +       ignore_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_IGNORE_SURV,
> +                                                               MOUNT_PATH);
>
>         SAFE_MKDIR(MOUNT_NAME, 0755);
>         SAFE_MOUNT(MOUNT_PATH, MOUNT_NAME, "none", MS_BIND, NULL);
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify10.c b/testcases/kernel/syscalls/fanotify/fanotify10.c
> index d0e9194e7a58..f30eba9ecbfb 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify10.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify10.c
> @@ -874,11 +874,14 @@ static void setup(void)
>  {
>         int i;
>
> -       exec_events_unsupported = fanotify_events_supported_by_kernel(FAN_OPEN_EXEC,
> -                                                                     FAN_CLASS_CONTENT, 0);
> -       filesystem_mark_unsupported = fanotify_mark_supported_by_kernel(FAN_MARK_FILESYSTEM);
> -       evictable_mark_unsupported = fanotify_mark_supported_by_kernel(FAN_MARK_EVICTABLE);
> -       ignore_mark_unsupported = fanotify_mark_supported_by_kernel(FAN_MARK_IGNORE_SURV);
> +       exec_events_unsupported = fanotify_flags_supported_on_fs(FAN_CLASS_CONTENT,
> +                                       0, FAN_OPEN_EXEC, MOUNT_PATH);
> +       filesystem_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_FILESYSTEM,
> +                                                                   MOUNT_PATH);
> +       evictable_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_EVICTABLE,
> +                                                                  MOUNT_PATH);
> +       ignore_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_IGNORE_SURV,
> +                                                               MOUNT_PATH);
>         fan_report_dfid_unsupported = fanotify_init_flags_supported_on_fs(FAN_REPORT_DFID_NAME,
>                                                                           MOUNT_PATH);
>         if (fan_report_dfid_unsupported) {
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify11.c b/testcases/kernel/syscalls/fanotify/fanotify11.c
> index 03583d84be9b..ce46913b179e 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify11.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify11.c
> @@ -94,7 +94,7 @@ static void test01(unsigned int i)
>
>  static void setup(void)
>  {
> -       fan_report_tid_unsupported = fanotify_init_flags_supported_by_kernel(FAN_REPORT_TID);
> +       fan_report_tid_unsupported = fanotify_init_flags_supported_on_fs(FAN_REPORT_TID, ".");
>  }
>
>  static struct tst_test test = {
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify12.c b/testcases/kernel/syscalls/fanotify/fanotify12.c
> index 7f8e97b178bc..42ba08800ccf 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify12.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify12.c
> @@ -222,11 +222,10 @@ cleanup:
>
>  static void do_setup(void)
>  {
> -       exec_events_unsupported = fanotify_events_supported_by_kernel(FAN_OPEN_EXEC,
> -                                                                     FAN_CLASS_NOTIF, 0);
> -
>         sprintf(fname, "fname_%d", getpid());
>         SAFE_FILE_PRINTF(fname, "1");
> +       exec_events_unsupported = fanotify_flags_supported_on_fs(FAN_CLASS_NOTIF,
> +                                       0, FAN_OPEN_EXEC, fname);
>  }
>
>  static void do_cleanup(void)
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify13.c b/testcases/kernel/syscalls/fanotify/fanotify13.c
> index 421a3636f834..fdde3b10d1dd 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify13.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify13.c
> @@ -325,7 +325,8 @@ static void do_setup(void)
>         SAFE_MOUNT(mnt, MOUNT_PATH, "none", MS_BIND, NULL);
>         bind_mounted = 1;
>
> -       filesystem_mark_unsupported = fanotify_mark_supported_by_kernel(FAN_MARK_FILESYSTEM);
> +       filesystem_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_FILESYSTEM,
> +                                                                   MOUNT_PATH);
>
>         nofid_fd = SAFE_FANOTIFY_INIT(FAN_CLASS_NOTIF, O_RDONLY);
>
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify14.c b/testcases/kernel/syscalls/fanotify/fanotify14.c
> index 0bb78918824b..0e24e0335ae3 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify14.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify14.c
> @@ -325,7 +325,8 @@ static void do_setup(void)
>         supported_init_flags = fanotify_get_supported_init_flags(all_init_flags,
>                 MNTPOINT);
>
> -       ignore_mark_unsupported = fanotify_mark_supported_by_kernel(FAN_MARK_IGNORE_SURV);
> +       ignore_mark_unsupported = fanotify_mark_supported_on_fs(FAN_MARK_IGNORE_SURV,
> +                                                               MNTPOINT);
>
>         /* Create temporary test file to place marks on */
>         SAFE_FILE_PRINTF(FILE1, "0");
> diff --git a/testcases/kernel/syscalls/fanotify/fanotify16.c b/testcases/kernel/syscalls/fanotify/fanotify16.c
> index d45270a9a06e..dfa4edf0319e 100644
> --- a/testcases/kernel/syscalls/fanotify/fanotify16.c
> +++ b/testcases/kernel/syscalls/fanotify/fanotify16.c
> @@ -766,7 +766,8 @@ static void setup(void)
>         fan_report_target_fid_unsupported =
>                 fanotify_init_flags_supported_on_fs(FAN_REPORT_DFID_NAME_TARGET, MOUNT_PATH);
>         rename_events_unsupported =
> -               fanotify_events_supported_by_kernel(FAN_RENAME, FAN_REPORT_DFID_NAME, 0);
> +               fanotify_flags_supported_on_fs(FAN_REPORT_DFID_NAME, 0,
> +                                              FAN_RENAME, MOUNT_PATH);
>
>         SAFE_MKDIR(TEMP_DIR, 0755);
>         sprintf(dname1, "%s/%s", MOUNT_PATH, DIR_NAME1);
> --
> 2.35.3
>


More information about the ltp mailing list