[v1,03/10] examples/fips_validation: fix integer parse in test case
Checks
Commit Message
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 <gmuthukrishn@marvell.com>
---
examples/fips_validation/fips_validation.c | 29 ++++++++++++++++------
1 file changed, 21 insertions(+), 8 deletions(-)
Comments
> -----Original Message-----
> From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> Sent: Monday 6 February 2023 14:46
> To: dev@dpdk.org
> Cc: Anoob Joseph <anoobj@marvell.com>; jerinj@marvell.com; Akhil Goyal
> <gakhil@marvell.com>; Dooley, Brian <brian.dooley@intel.com>;
> Gowrishankar Muthukrishnan <gmuthukrishn@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 <gmuthukrishn@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.dooley@intel.com>
@@ -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;