> -----Original Message-----
> From: Gowrishankar Muthukrishnan <gmuthukri...@marvell.com>
> Sent: Monday 6 February 2023 14:46
> To: dev@dpdk.org
> Cc: Anoob Joseph <ano...@marvell.com>; jer...@marvell.com; Akhil Goyal
> <gak...@marvell.com>; Dooley, Brian <brian.doo...@intel.com>;
> Gowrishankar Muthukrishnan <gmuthukri...@marvell.com>
> Subject: [v1, 03/10] examples/fips_validation: fix integer parse in test case
> 
> Parsing integer value in test case vector does not store it because only 
> string
> was expected. This patch adds handling for integer value as well.
> 
> Fixes: 58cc98801eb ("examples/fips_validation: add JSON parsing")
> 
> Signed-off-by: Gowrishankar Muthukrishnan <gmuthukri...@marvell.com>
> ---
>  examples/fips_validation/fips_validation.c | 29 ++++++++++++++++------
>  1 file changed, 21 insertions(+), 8 deletions(-)
> 
> diff --git a/examples/fips_validation/fips_validation.c
> b/examples/fips_validation/fips_validation.c
> index f7a6d821ea..d3b6099d73 100644
> --- a/examples/fips_validation/fips_validation.c
> +++ b/examples/fips_validation/fips_validation.c
> @@ -543,15 +543,28 @@ fips_test_parse_one_json_case(void)
> 
>       for (i = 0; info.callbacks[i].key != NULL; i++) {
>               param = json_object_get(json_info.json_test_case,
> info.callbacks[i].key);
> -             if (param) {
> -                     strcpy(info.one_line_text,
> json_string_value(param));
> -                     ret = info.callbacks[i].cb(
> -                             info.callbacks[i].key, info.one_line_text,
> -                             info.callbacks[i].val
> -                     );
> -                     if (ret < 0)
> -                             return ret;
> +             if (!param)
> +                     continue;
> +
> +             switch (json_typeof(param)) {
> +             case JSON_STRING:
> +                     snprintf(info.one_line_text, MAX_LINE_CHAR, "%s",
> +                                      json_string_value(param));
> +                     break;
> +
> +             case JSON_INTEGER:
> +                     snprintf(info.one_line_text, MAX_LINE_CHAR,
> "%"JSON_INTEGER_FORMAT,
> +                                      json_integer_value(param));
> +                     break;
> +
> +             default:
> +                     return -EINVAL;
>               }
> +
> +             ret = info.callbacks[i].cb(info.callbacks[i].key,
> info.one_line_text,
> +                             info.callbacks[i].val);
> +             if (ret < 0)
> +                     return ret;
>       }
> 
>       return 0;
> --
> 2.25.1

Acked-by: Brian Dooley <brian.doo...@intel.com>

Reply via email to