The new test APIs allow to validate JSON objects against the QAPI schema. The infrastructure was developed as part of not-yet-posted blockdev JSON property generator. It is quite useful for developing generators for complex objects against the schema. Since it's kind of useful by itself I decided to post it prior to finishing the blockdev work. It at least makes the 'simple' test cases in the qemumonitorjsontest slightly useful. Peter Krempa (11): util: buffer: Tolerate NULL 'buf' in virBufferStrcat qemu: caps: Move QAPI schema related code into separate file qemu: qapi: Fix naming of moved functions qemu: monitor: Move processing of QMP schema to the new file util: json: Add accessor for looking up JSON value type qemu: qapi: Return correct entry in virQEMUQapiSchemaTraverse tests: Add data file with QEMU QAPI schema tests: qemu: Add infrastructure for QAPI schema testing tests: qemumonitorjson: Fix few arguments of test cases tests: qemumonitor: Allow testing schema for fake monitor interactions tests: qemumonitorjson: Do some useful testing in the 'simple' tests po/POTFILES.in | 1 + src/libvirt_private.syms | 1 + src/qemu/Makefile.inc.am | 2 + src/qemu/qemu_capabilities.c | 171 +- src/qemu/qemu_monitor.c | 2 +- src/qemu/qemu_monitor.h | 2 +- src/qemu/qemu_monitor_json.c | 41 +- src/qemu/qemu_monitor_json.h | 2 +- src/qemu/qemu_qapi.c | 237 + src/qemu/qemu_qapi.h | 40 + src/util/virbuffer.c | 3 + src/util/virjson.c | 7 + src/util/virjson.h | 2 + tests/Makefile.am | 3 + tests/qemuhotplugtest.c | 3 +- tests/qemumonitorjsontest.c | 117 +- tests/qemumonitortestutils.c | 85 +- tests/qemumonitortestutils.h | 7 +- tests/qemuqapischema.json | 11364 +++++++++++++++++++++++++++++++++++++++++ tests/testutilsqemuschema.c | 536 ++ tests/testutilsqemuschema.h | 30 + 21 files changed, 12446 insertions(+), 210 deletions(-) create mode 100644 src/qemu/qemu_qapi.c create mode 100644 src/qemu/qemu_qapi.h create mode 100644 tests/qemuqapischema.json create mode 100644 tests/testutilsqemuschema.c create mode 100644 tests/testutilsqemuschema.h -- 2.16.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list