QEMU-6.2 is reporting enum values in the new 'members' array which we'll be switching to. Rewrite the logic so that adding the new checker is more straightforward. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> Reviewed-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- tests/testutilsqemuschema.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/tests/testutilsqemuschema.c b/tests/testutilsqemuschema.c index 4f9db98e07..82c5994604 100644 --- a/tests/testutilsqemuschema.c +++ b/tests/testutilsqemuschema.c @@ -324,7 +324,6 @@ testQEMUSchemaValidateEnum(virJSONValue *obj, { const char *objstr; virJSONValue *values = NULL; - virJSONValue *value; size_t i; if (virJSONValueGetType(obj) != VIR_JSON_TYPE_STRING) { @@ -334,24 +333,24 @@ testQEMUSchemaValidateEnum(virJSONValue *obj, objstr = virJSONValueGetString(obj); - if (!(values = virJSONValueObjectGetArray(root, "values"))) { - virBufferAsprintf(ctxt->debug, "ERROR: missing enum values in schema '%s'", - NULLSTR(virJSONValueObjectGetString(root, "name"))); - return -2; - } - - for (i = 0; i < virJSONValueArraySize(values); i++) { - value = virJSONValueArrayGet(values, i); + if ((values = virJSONValueObjectGetArray(root, "values"))) { + for (i = 0; i < virJSONValueArraySize(values); i++) { + virJSONValue *value = virJSONValueArrayGet(values, i); - if (STREQ_NULLABLE(objstr, virJSONValueGetString(value))) { - virBufferAsprintf(ctxt->debug, "'%s' OK", NULLSTR(objstr)); - return 0; + if (STREQ_NULLABLE(objstr, virJSONValueGetString(value))) { + virBufferAsprintf(ctxt->debug, "'%s' OK", NULLSTR(objstr)); + return 0; + } } + + virBufferAsprintf(ctxt->debug, "ERROR: enum value '%s' is not in schema", + NULLSTR(objstr)); + return -1; } - virBufferAsprintf(ctxt->debug, "ERROR: enum value '%s' is not in schema", - NULLSTR(objstr)); - return -1; + virBufferAsprintf(ctxt->debug, "ERROR: missing enum values in schema '%s'", + NULLSTR(virJSONValueObjectGetString(root, "name"))); + return -2; } -- 2.31.1