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