[dpdk-dev] [PATCH 1/7] examples/fips_validation: enhance getopt_long usage
David Marchand
david.marchand at redhat.com
Mon Dec 7 11:50:55 CET 2020
On Tue, Nov 24, 2020 at 1:33 PM Ibtisam Tariq <ibtisam.tariq at emumba.com> wrote:
>
> Instead of using getopt_long return value, strcmp was used to
> compare the input parameters with the struct option array. This
> patch get rid of all those strcmp by directly binding each longopt
> with an int enum. This is to improve readability and consistency in
> all examples.
>
> Bugzilla ID: 238
> Cc: marko.kovacevic at intel.com
>
> Reported-by: David Marchand <david.marchand at redhat.com>
> Signed-off-by: Ibtisam Tariq <ibtisam.tariq at emumba.com>
> ---
> v3:
> * None.
We lost the version prefix in the patch title, please do not forget it
in the next revision.
[snip]
> diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c
> index cad6bcb18..36ed4b546 100644
> --- a/examples/fips_validation/main.c
> +++ b/examples/fips_validation/main.c
> @@ -15,17 +15,26 @@
> #include "fips_validation.h"
> #include "fips_dev_self_test.h"
>
> -#define REQ_FILE_PATH_KEYWORD "req-file"
> -#define RSP_FILE_PATH_KEYWORD "rsp-file"
> -#define MBUF_DATAROOM_KEYWORD "mbuf-dataroom"
> -#define FOLDER_KEYWORD "path-is-folder"
> -#define CRYPTODEV_KEYWORD "cryptodev"
> -#define CRYPTODEV_ID_KEYWORD "cryptodev-id"
> -#define CRYPTODEV_ST_KEYWORD "self-test"
> -#define CRYPTODEV_BK_ID_KEYWORD "broken-test-id"
> -#define CRYPTODEV_BK_DIR_KEY "broken-test-dir"
> -#define CRYPTODEV_ENC_KEYWORD "enc"
> -#define CRYPTODEV_DEC_KEYWORD "dec"
> +enum {
> +#define OPT_REQ_FILE_PATH "req-file"
> + OPT_REQ_FILE_PATH_NUM = 256,
> +#define OPT_RSP_FILE_PATH "rsp-file"
> + OPT_RSP_FILE_PATH_NUM,
> +#define OPT_MBUF_DATAROOM "mbuf-dataroom"
> + OPT_MBUF_DATAROOM_NUM,
> +#define OPT_FOLDER "path-is-folder"
> + OPT_FOLDER_NUM,
> +#define OPT_CRYPTODEV "cryptodev"
> + OPT_CRYPTODEV_NUM,
Nit: could you realign those two strings?
> +#define OPT_CRYPTODEV_ID "cryptodev-id"
> + OPT_CRYPTODEV_ID_NUM,
> +#define OPT_CRYPTODEV_ST "self-test"
> + OPT_CRYPTODEV_ST_NUM,
> +#define OPT_CRYPTODEV_BK_ID "broken-test-id"
> + OPT_CRYPTODEV_BK_ID_NUM,
> +#define OPT_CRYPTODEV_BK_DIR_KEY "broken-test-dir"
> + OPT_CRYPTODEV_BK_DIR_KEY_NUM,
> +};
[snip]
> @@ -248,108 +266,113 @@ cryptodev_fips_validate_parse_args(int argc, char **argv)
> return -EINVAL;
> }
>
> - while ((opt = getopt_long(argc, argvopt, "s:",
> + while ((opt = getopt_long(argc, argvopt, "",
Passing "s:" was a bug (since nothing was done with it).
But this was not an issue requiring a separate fix + backport from my pov.
Let's at least mention it in the commitlog.
> lgopts, &option_index)) != EOF) {
>
> + if (opt == '?') {
> + cryptodev_fips_validate_usage(prgname);
> + return -1;
> + }
Why a separate check here?
The default: block below will handle an unknown option fine.
> +
> switch (opt) {
[snip]
> +
> default:
> - return -1;
> + cryptodev_fips_validate_usage(prgname);
> + return -EINVAL;
> }
> }
>
--
David Marchand
More information about the dev
mailing list