According to this email: https://lists.gnu.org/archive/html/qemu-devel/2014-05/msg00708.html we want to repurpose 'data': { 'name': {dict...} } in qapi files for future use of designating default values of optional parameters. But to do that, we must first nuke existing use of that syntax for declaring nested structs. Enhancing the testsuite while at it never hurts.
v3: No code changes, but fix mis-send of 11-14 [Peter] v2: New patches: 1-2, 5-9 consistent TAB usage in Makefile [Fam] catch more bad coding constructs, and test them avoid code duplication in type validity checks (patch 14 [former 7] is simpler because of patch 9) Eric Blake (14): qapi: consistent whitespace in tests/Makefile qapi: ignore files created during make check qapi: add some enum tests qapi: better error message for bad enum qapi: add some expr tests qapi: require valid expressions qapi: add some type check tests qapi: add expr_name() helper qapi: add check_type helper function qapi: merge UserDefTwo and UserDefNested in tests qapi: drop tests for inline subtypes qapi: drop inline subtype in query-version qapi: drop inline subtype in query-pci qapi: drop support for inline subtypes hmp.c | 28 ++++---- hw/pci/pci.c | 42 ++++++------ qapi-schema.json | 90 ++++++++++++++++++-------- qapi/common.json | 26 ++++++-- qmp.c | 9 +-- scripts/qapi-commands.py | 8 +-- scripts/qapi-event.py | 4 +- scripts/qapi-types.py | 9 +-- scripts/qapi-visit.py | 37 ++--------- scripts/qapi.py | 96 ++++++++++++++++++++++------ tests/.gitignore | 3 + tests/Makefile | 37 ++++++----- tests/qapi-schema/data-array-empty.err | 0 tests/qapi-schema/data-array-empty.exit | 1 + tests/qapi-schema/data-array-empty.json | 1 + tests/qapi-schema/data-array-empty.out | 3 + tests/qapi-schema/data-array-unknown.err | 1 + tests/qapi-schema/data-array-unknown.exit | 1 + tests/qapi-schema/data-array-unknown.json | 1 + tests/qapi-schema/data-array-unknown.out | 0 tests/qapi-schema/data-int.err | 1 + tests/qapi-schema/data-int.exit | 1 + tests/qapi-schema/data-int.json | 1 + tests/qapi-schema/data-int.out | 0 tests/qapi-schema/data-unknown.err | 1 + tests/qapi-schema/data-unknown.exit | 1 + tests/qapi-schema/data-unknown.json | 1 + tests/qapi-schema/data-unknown.out | 0 tests/qapi-schema/double-type.err | 1 + tests/qapi-schema/double-type.exit | 1 + tests/qapi-schema/double-type.json | 1 + tests/qapi-schema/double-type.out | 0 tests/qapi-schema/enum-empty.err | 0 tests/qapi-schema/enum-empty.exit | 1 + tests/qapi-schema/enum-empty.json | 1 + tests/qapi-schema/enum-empty.out | 3 + tests/qapi-schema/enum-missing-data.err | 1 + tests/qapi-schema/enum-missing-data.exit | 1 + tests/qapi-schema/enum-missing-data.json | 1 + tests/qapi-schema/enum-missing-data.out | 0 tests/qapi-schema/enum-wrong-data.err | 1 + tests/qapi-schema/enum-wrong-data.exit | 1 + tests/qapi-schema/enum-wrong-data.json | 1 + tests/qapi-schema/enum-wrong-data.out | 0 tests/qapi-schema/event-nest-struct.err | 2 +- tests/qapi-schema/indented-expr.json | 4 +- tests/qapi-schema/indented-expr.out | 2 +- tests/qapi-schema/missing-type.err | 1 + tests/qapi-schema/missing-type.exit | 1 + tests/qapi-schema/missing-type.json | 1 + tests/qapi-schema/missing-type.out | 0 tests/qapi-schema/nested-struct-data.err | 1 + tests/qapi-schema/nested-struct-data.exit | 1 + tests/qapi-schema/nested-struct-data.json | 3 + tests/qapi-schema/nested-struct-data.out | 0 tests/qapi-schema/nested-struct-returns.err | 1 + tests/qapi-schema/nested-struct-returns.exit | 1 + tests/qapi-schema/nested-struct-returns.json | 2 + tests/qapi-schema/nested-struct-returns.out | 0 tests/qapi-schema/qapi-schema-test.json | 18 +++--- tests/qapi-schema/qapi-schema-test.out | 10 +-- tests/qapi-schema/returns-array-bad.err | 1 + tests/qapi-schema/returns-array-bad.exit | 1 + tests/qapi-schema/returns-array-bad.json | 1 + tests/qapi-schema/returns-array-bad.out | 0 tests/qapi-schema/returns-int.err | 0 tests/qapi-schema/returns-int.exit | 1 + tests/qapi-schema/returns-int.json | 1 + tests/qapi-schema/returns-int.out | 3 + tests/qapi-schema/returns-unknown.err | 1 + tests/qapi-schema/returns-unknown.exit | 1 + tests/qapi-schema/returns-unknown.json | 1 + tests/qapi-schema/returns-unknown.out | 0 tests/test-qmp-commands.c | 35 +++++----- tests/test-qmp-input-strict.c | 19 +++--- tests/test-qmp-input-visitor.c | 25 +++++--- tests/test-qmp-output-visitor.c | 64 ++++++++++--------- tests/test-visitor-serialization.c | 84 +++++++++++++----------- 78 files changed, 433 insertions(+), 270 deletions(-) create mode 100644 tests/qapi-schema/data-array-empty.err create mode 100644 tests/qapi-schema/data-array-empty.exit create mode 100644 tests/qapi-schema/data-array-empty.json create mode 100644 tests/qapi-schema/data-array-empty.out create mode 100644 tests/qapi-schema/data-array-unknown.err create mode 100644 tests/qapi-schema/data-array-unknown.exit create mode 100644 tests/qapi-schema/data-array-unknown.json create mode 100644 tests/qapi-schema/data-array-unknown.out create mode 100644 tests/qapi-schema/data-int.err create mode 100644 tests/qapi-schema/data-int.exit create mode 100644 tests/qapi-schema/data-int.json create mode 100644 tests/qapi-schema/data-int.out create mode 100644 tests/qapi-schema/data-unknown.err create mode 100644 tests/qapi-schema/data-unknown.exit create mode 100644 tests/qapi-schema/data-unknown.json create mode 100644 tests/qapi-schema/data-unknown.out create mode 100644 tests/qapi-schema/double-type.err create mode 100644 tests/qapi-schema/double-type.exit create mode 100644 tests/qapi-schema/double-type.json create mode 100644 tests/qapi-schema/double-type.out create mode 100644 tests/qapi-schema/enum-empty.err create mode 100644 tests/qapi-schema/enum-empty.exit create mode 100644 tests/qapi-schema/enum-empty.json create mode 100644 tests/qapi-schema/enum-empty.out create mode 100644 tests/qapi-schema/enum-missing-data.err create mode 100644 tests/qapi-schema/enum-missing-data.exit create mode 100644 tests/qapi-schema/enum-missing-data.json create mode 100644 tests/qapi-schema/enum-missing-data.out create mode 100644 tests/qapi-schema/enum-wrong-data.err create mode 100644 tests/qapi-schema/enum-wrong-data.exit create mode 100644 tests/qapi-schema/enum-wrong-data.json create mode 100644 tests/qapi-schema/enum-wrong-data.out create mode 100644 tests/qapi-schema/missing-type.err create mode 100644 tests/qapi-schema/missing-type.exit create mode 100644 tests/qapi-schema/missing-type.json create mode 100644 tests/qapi-schema/missing-type.out create mode 100644 tests/qapi-schema/nested-struct-data.err create mode 100644 tests/qapi-schema/nested-struct-data.exit create mode 100644 tests/qapi-schema/nested-struct-data.json create mode 100644 tests/qapi-schema/nested-struct-data.out create mode 100644 tests/qapi-schema/nested-struct-returns.err create mode 100644 tests/qapi-schema/nested-struct-returns.exit create mode 100644 tests/qapi-schema/nested-struct-returns.json create mode 100644 tests/qapi-schema/nested-struct-returns.out create mode 100644 tests/qapi-schema/returns-array-bad.err create mode 100644 tests/qapi-schema/returns-array-bad.exit create mode 100644 tests/qapi-schema/returns-array-bad.json create mode 100644 tests/qapi-schema/returns-array-bad.out create mode 100644 tests/qapi-schema/returns-int.err create mode 100644 tests/qapi-schema/returns-int.exit create mode 100644 tests/qapi-schema/returns-int.json create mode 100644 tests/qapi-schema/returns-int.out create mode 100644 tests/qapi-schema/returns-unknown.err create mode 100644 tests/qapi-schema/returns-unknown.exit create mode 100644 tests/qapi-schema/returns-unknown.json create mode 100644 tests/qapi-schema/returns-unknown.out -- 1.9.3