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