public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Petr Vorel <pvorel@suse.cz>
To: Wei Gao <wegao@suse.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v3 1/4] lib: Add support option for .needs_cmds
Date: Fri, 10 Oct 2025 11:13:05 +0200	[thread overview]
Message-ID: <20251010091305.GB4281@pevik> (raw)
In-Reply-To: <20251010064745.31361-2-wegao@suse.com>

Hi Wei,

> ---
>  include/tst_cmd.h  | 13 +++++++++++++
>  include/tst_test.h | 15 +++++++++++++--
>  lib/tst_cmd.c      |  7 ++++++-
>  lib/tst_test.c     | 22 ++++++++++++++++++----
>  4 files changed, 50 insertions(+), 7 deletions(-)

tst_needs_cmds01.c:15:23: error: initialization of ‘struct tst_cmd *’ from incompatible pointer type ‘const char **’ [-Wincompatible-pointer-types]
   15 |         .needs_cmds = (const char *[]) {
      |                       ^
tst_needs_cmds01.c:15:23: note: (near initialization for ‘test.needs_cmds’)
make[1]: *** [../../include/mk/rules.mk:48: tst_needs_cmds01] Error 1

I asked on v2 not to break build [1], but you didn't reflected that. The reason
for this requirement is that all commits need to built due ability to bisect
(quite obvious requirement).  This mean you need in this commit also modify all
the tests which use .needs_cmds, i.e. 3rd commit "Update test cases use new
needs_cmds" needs to be
squashed into this 1st commit.

[1] https://lore.kernel.org/ltp/20250930133623.GB238065@pevik/

> diff --git a/include/tst_cmd.h b/include/tst_cmd.h
> index 939825646..703589019 100644
> --- a/include/tst_cmd.h
> +++ b/include/tst_cmd.h
> @@ -16,6 +16,19 @@ enum tst_cmd_flags {
>  	TST_CMD_TCONF_ON_MISSING = 2,
>  };

> +/**
> + * struct tst_cmd - This structure provides details about a command needed by LTP test

I would personally avoid "This structure" / "This function".
Missing dot at the end.

> + * @cmd: The name of the command.
> + * @optional: A flag indicating if the command is optional.
> + * @present: A flag indicating if the command was found at runtime, this is an output
Maybe use 2 sentences:
    * @present: A flag indicating if the command was found at runtime. This is an output

> + * parameter, set by the LTP library during the test setup.
> + */
> +struct tst_cmd {
> +	const char *cmd;
> +	unsigned int optional:1;
> +	unsigned int present:1;
Hopefully nobody misuses this to set it in the test.

> +};
> +
>  /*
>   * vfork() + execvp() specified program.
>   *
> diff --git a/include/tst_test.h b/include/tst_test.h
> index 9c21c1728..2730d22c1 100644
> --- a/include/tst_test.h
> +++ b/include/tst_test.h
> @@ -524,7 +524,7 @@ struct tst_fs {
>   *
>   * @tags: A {} terminated array of test tags. See struct tst_tag for details.
>   *
> - * @needs_cmds: A NULL terminated array of commands required for the test to run.
> + * @needs_cmds: A NULL terminated array of struct tst_cmd required for the test to run.
>   *
>   * @needs_cgroup_ver: If set the test will run only if the specified cgroup
>   *                    version is present on the system.
> @@ -617,7 +617,7 @@ struct tst_fs {

>  	const struct tst_tag *tags;

> -	const char *const *needs_cmds;
> +	struct tst_cmd *needs_cmds;

>  	const enum tst_cg_ver needs_cgroup_ver;

> @@ -721,6 +721,17 @@ int tst_creat_unlinked(const char *path, int flags, mode_t mode);
>   */
>  const char *tst_get_tmpdir_root(void);

> +/**
> + * tst_cmd_present() - Check if a command is present
> + * @cmd: The name of the command to check for.
> + *
> + * This function iterates through the 'needs_cmds' array. It compares the given command name
Please use &tst_test->needs_cmds:

 * This function iterates through the &tst_test->needs_cmds array. It compares
 * the given command name with each entry in the array and returns the 'present'
 * flag for the matching command.

That helps struct to be linkable.

> + * with each entry in the array and returns the 'present' flag for the matching command.
> + *
> + * Return: `true` if the command is present, `false` otherwise.
This needs to be Returns: (missing s)
https://docs.kernel.org/doc-guide/kernel-doc.html

Kind regards,
Petr

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

  reply	other threads:[~2025-10-10  9:13 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-26  8:50 [LTP] [PATCH v1 0/2] new cmd support option for needs_cmds Wei Gao via ltp
2025-09-26  8:50 ` [LTP] [PATCH v1 1/2] lib: Add support option for .needs_cmds Wei Gao via ltp
2025-09-26  9:31   ` Cyril Hrubis
2025-09-26  8:50 ` [LTP] [PATCH v1 2/2] ioctl_loop01.c: Update to new .needs_cmds struct Wei Gao via ltp
2025-09-26  9:32   ` Cyril Hrubis
2025-09-28 23:26 ` [LTP] [PATCH v1 0/2] new cmd support option for needs_cmds Wei Gao via ltp
2025-09-28 23:26   ` [LTP] [PATCH v2 1/2] lib: Add support option for .needs_cmds Wei Gao via ltp
2025-09-30 13:36     ` Petr Vorel
2025-10-10  6:32       ` Wei Gao via ltp
2025-10-10  6:45     ` [LTP] [PATCH v3 0/4] new cmd support option for needs_cmds Wei Gao via ltp
2025-10-10  6:45       ` [LTP] [PATCH v3 1/4] lib: Add support option for .needs_cmds Wei Gao via ltp
2025-10-10  9:13         ` Petr Vorel [this message]
2025-10-10  9:45           ` Petr Vorel
2025-10-10  6:45       ` [LTP] [PATCH v3 2/4] ioctl_loop01.c: Update to new .needs_cmds struct Wei Gao via ltp
2025-10-10  6:45       ` [LTP] [PATCH v3 3/4] Update test cases use new needs_cmds Wei Gao via ltp
2025-10-10  6:45       ` [LTP] [PATCH v3 4/4] tst_run_shell.c: Add new function handle " Wei Gao via ltp
2025-10-17 10:09       ` [LTP] [PATCH v4 0/3] new cmd support option for needs_cmds Wei Gao via ltp
2025-10-17 10:09         ` [LTP] [PATCH v4 1/3] lib: Add support option for .needs_cmds Wei Gao via ltp
2025-10-17 14:35           ` Petr Vorel
2025-10-20  1:22             ` Wei Gao via ltp
2025-10-20 13:21               ` Petr Vorel
2025-10-21  3:42                 ` Wei Gao via ltp
2025-10-22  9:23                 ` Li Wang via ltp
2025-10-22 14:19                   ` Wei Gao via ltp
2025-10-17 15:37           ` Petr Vorel
2025-10-20  1:24             ` Wei Gao via ltp
2025-10-20 13:33           ` Petr Vorel
2025-10-21  3:17             ` Wei Gao via ltp
2025-10-17 10:09         ` [LTP] [PATCH v4 2/3] Update test cases use new needs_cmds Wei Gao via ltp
2025-10-17 10:09         ` [LTP] [PATCH v4 3/3] tst_run_shell.c: Add new function handle " Wei Gao via ltp
2025-10-17 15:30           ` Petr Vorel
2025-10-17 15:41           ` Petr Vorel
2025-10-20  1:41             ` Wei Gao via ltp
2025-11-07  0:30       ` [LTP] [PATCH v4 0/4] new cmd support option for needs_cmds Wei Gao via ltp
2025-11-07  0:30         ` [LTP] [PATCH v4 1/4] tst_cmd.c: Check brk_nosupp when tst_get_path failed Wei Gao via ltp
2025-11-07 10:33           ` Petr Vorel
2025-11-07  0:30         ` [LTP] [PATCH v4 2/4] lib: Add support option for .needs_cmds Wei Gao via ltp
2025-11-07  0:30         ` [LTP] [PATCH v4 3/4] ioctl_loop01.c: Add new support .needs_cmds Wei Gao via ltp
2025-11-07 11:04           ` Petr Vorel
2025-11-08 12:58             ` Wei Gao via ltp
2025-11-07  0:30         ` [LTP] [PATCH v4 4/4] shell_loader_cmd.sh: New test case check needs_cmds Wei Gao via ltp
2025-11-07 11:41           ` Petr Vorel
2025-11-10  2:47         ` [LTP] [PATCH v5 0/3] new cmd support option for needs_cmds Wei Gao via ltp
2025-11-10  2:47           ` [LTP] [PATCH v5 1/3] lib: Add support option for .needs_cmds Wei Gao via ltp
2025-11-11 11:06             ` Petr Vorel
2025-12-12 10:30             ` Cyril Hrubis
2025-12-12 11:16               ` Petr Vorel
2025-12-15  7:33                 ` Wei Gao via ltp
2025-12-15  9:36                   ` Petr Vorel
2025-12-15 10:59                     ` Wei Gao via ltp
2025-12-17 13:18                       ` Petr Vorel
2026-01-07  8:05                   ` Petr Vorel
2025-11-10  2:47           ` [LTP] [PATCH v5 2/3] ioctl_loop01.c: Add new support .needs_cmds Wei Gao via ltp
2025-11-11 11:14             ` Petr Vorel
2025-11-10  2:47           ` [LTP] [PATCH v5 3/3] shell_loader_cmd.sh: New test case check needs_cmds Wei Gao via ltp
2025-11-11 10:41             ` Wei Gao via ltp
2025-11-11 11:15             ` Petr Vorel
2025-12-23  2:08           ` [LTP] [PATCH v6 0/4] new cmd support option for needs_cmds Wei Gao via ltp
2025-12-23  2:08             ` [LTP] [PATCH v6 1/4] lib: Add support option for .needs_cmds Wei Gao via ltp
2026-01-05 13:48               ` Petr Vorel
2026-01-06 10:01               ` Cyril Hrubis
2025-12-23  2:08             ` [LTP] [PATCH v6 2/4] tst_test.c: Add tst_cmd_present check if a command is present Wei Gao via ltp
2026-01-05 13:52               ` Petr Vorel
2026-01-06 10:02               ` Cyril Hrubis
2026-01-07  6:16                 ` Wei Gao via ltp
2026-01-07  8:09                   ` Petr Vorel
2026-01-07  8:27                     ` Petr Vorel
2026-01-07  9:59                       ` Cyril Hrubis
2026-01-09  6:11                         ` Wei Gao via ltp
2026-01-12 11:05                         ` Petr Vorel
2026-01-07  9:56                   ` Cyril Hrubis
2025-12-23  2:08             ` [LTP] [PATCH v6 3/4] ioctl_loop01.c: Add new support .needs_cmds Wei Gao via ltp
2026-01-05 13:56               ` Petr Vorel
2025-12-23  2:08             ` [LTP] [PATCH v6 4/4] shell_loader_cmd.sh: New test case check needs_cmds Wei Gao via ltp
2026-01-05 13:57               ` Petr Vorel
2026-01-09  6:16             ` [LTP] [PATCH v7 0/4] new cmd support option for needs_cmds Wei Gao via ltp
2026-01-09  6:16               ` [LTP] [PATCH v7 1/4] lib: Add support option for .needs_cmds Wei Gao via ltp
2026-01-09 19:15                 ` Petr Vorel
2026-01-09 19:21                   ` Petr Vorel
2026-01-16 14:03                 ` Li Wang via ltp
2026-01-19 14:51                 ` Cyril Hrubis
2026-01-20  6:42                   ` Petr Vorel
2026-01-09  6:16               ` [LTP] [PATCH v7 2/4] tst_test.c: Add tst_cmd_present check if a command is present Wei Gao via ltp
2026-01-09 19:17                 ` Petr Vorel
2026-01-12 11:08                   ` Petr Vorel
2026-01-16 13:58                 ` Li Wang via ltp
2026-01-19 13:17                 ` Cyril Hrubis
2026-01-09  6:16               ` [LTP] [PATCH v7 3/4] ioctl_loop01.c: Add new support .needs_cmds Wei Gao via ltp
2026-01-16 13:25                 ` Li Wang via ltp
2026-01-17 13:16                   ` Wei Gao via ltp
2026-01-19  3:00                     ` Li Wang via ltp
2026-01-19  5:34                       ` Wei Gao via ltp
2026-01-19  6:27                         ` Li Wang via ltp
2026-01-19 14:57                 ` Cyril Hrubis
2026-01-21 13:08                 ` Cyril Hrubis
2026-01-09  6:16               ` [LTP] [PATCH v7 4/4] shell_loader_cmd.sh: New test case check needs_cmds Wei Gao via ltp
2026-01-21 13:09                 ` Cyril Hrubis
2026-01-21 13:11                   ` Petr Vorel
2025-09-28 23:26   ` [LTP] [PATCH v2 2/2] ioctl_loop01.c: Update to new .needs_cmds struct Wei Gao via ltp
2025-09-30 13:12     ` Petr Vorel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251010091305.GB4281@pevik \
    --to=pvorel@suse.cz \
    --cc=ltp@lists.linux.it \
    --cc=wegao@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox