Pending prerequisite: Markus' qapi-next branch (which has my subset A patches): git://repo.or.cz/qemu/armbru.git qapi-next http://thread.gmane.org/gmane.comp.emulators.qemu/365827/focus=366351 as well as my subset B patches (currently at v7): http://article.gmane.org/gmane.comp.emulators.qemu/366810 http://repo.or.cz/qemu/ericb.git/shortlog/refs/tags/qapi-cleanupv7b
Also available as a tag at this location: git fetch git://repo.or.cz/qemu/ericb.git qapi-cleanupv6c and I plan to eventually forcefully update my branch with the rest of the v5 series, at: http://repo.or.cz/qemu/ericb.git/shortlog/refs/heads/qapi v6 notes: Add some patches and rebase onto work on subset B. Rearrange some patches from v5 (this set includes 17-20, 23, 25-27). Backport diff gets a bit confused by one patch title changing. 001/15:[down] 'qapi: Move empty-enum to compile-time test' 002/15:[down] 'qapi: Drop redundant returns-int test' 003/15:[down] 'qapi: Drop redundant flat-union-reverse-define test' 004/15:[down] 'qapi: Use generated TestStruct machinery in tests' 005/15:[----] [--] 'qapi: Provide nicer array names in introspection' 006/15:[----] [--] 'qapi-introspect: Guarantee particular sorting' 007/15:[down] 'qapi: Change alternate layout to use 'type'' 008/15:[0141] [FC] 'qapi: Simplify visiting of alternate types' 009/15:[0023] [FC] 'qapi: Fix alternates that accept 'number' but not 'int'' 010/15:[----] [--] 'qapi: Remove dead visitor code' 011/15:[down] 'qapi: Plug leaks in test-qmp-*' 012/15:[down] 'qapi: Simplify error testing in test-qmp-*' 013/15:[0007] [FC] 'qapi: Test failure in middle of array parse' 014/15:[down] 'qapi: More tests of input arrays' 015/15:[0021] [FC] 'qapi: Simplify visits of optional fields' Not much direct review comments, although some of the changes here are updated based on comments made on other patches in the v5 series. Subset D (and more?) will come later. In v5: https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg05410.html I _did_ rearrange patches to try and group related features: 1-2: Groundwork cleanups 3-5: Add more test cases 6-16: Front-end cleanups 17-18: Introspection output cleanups 19-20: 'alternate' type cleanups 21-29: qapi visitor cleanups 30-45: qapi-ify netdev_add 46: add qapi shorthand for flat unions Lots of fixes based on additional testing, and rebased to track other changes that happened in the meantime. The series is huge; I can split off smaller portions as requested. In v4: https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg02580.html add some more clean up patches rebase to Markus' recent work pull in part of Zoltán's work to make netdev_add a flat union, further enhancing it to be introspectible I might be able to rearrange some of these patches, or separate it into smaller independent series, if requested; but I'm posting now to get review started. In v3: https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg02059.html redo cleanup of dealloc of partial struct add patches to make all visit_type_*() avoid leaks on failure add patches to allow boxed command arguments and events In v2: https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg00900.html rebase to Markus' v3 series rework how comments are emitted for fields inherited from base additional patches added for deleting colliding 'void *data' documentation updates to match code changes v1 was here: https://lists.gnu.org/archive/html/qemu-devel/2015-07/msg05266.html https://lists.gnu.org/archive/html/qemu-devel/2015-07/msg05325.html Eric Blake (15): qapi: Move empty-enum to compile-time test qapi: Drop redundant returns-int test qapi: Drop redundant flat-union-reverse-define test qapi: Use generated TestStruct machinery in tests qapi: Provide nicer array names in introspection qapi-introspect: Guarantee particular sorting qapi: Change alternate layout to use 'type' qapi: Simplify visiting of alternate types qapi: Fix alternates that accept 'number' but not 'int' qapi: Remove dead visitor code qapi: Plug leaks in test-qmp-* qapi: Simplify error testing in test-qmp-* qapi: Test failure in middle of array parse qapi: More tests of input arrays qapi: Simplify visits of optional fields docs/qapi-code-gen.txt | 31 ++- include/qapi/visitor-impl.h | 27 +-- include/qapi/visitor.h | 22 +- qapi/introspect.json | 22 +- qapi/opts-visitor.c | 2 +- qapi/qapi-visit-core.c | 141 +++++------- qapi/qmp-input-visitor.c | 11 +- qapi/string-input-visitor.c | 3 +- scripts/qapi-introspect.py | 17 +- scripts/qapi-types.py | 36 +-- scripts/qapi-visit.py | 25 ++- scripts/qapi.py | 60 +++-- tests/Makefile | 3 - tests/qapi-schema/alternate-clash-members.err | 2 +- tests/qapi-schema/alternate-clash-type.err | 2 +- tests/qapi-schema/alternate-clash-type.json | 2 +- tests/qapi-schema/alternate-empty.out | 1 - tests/qapi-schema/enum-empty.err | 0 tests/qapi-schema/enum-empty.exit | 1 - tests/qapi-schema/enum-empty.json | 2 - tests/qapi-schema/enum-empty.out | 2 - tests/qapi-schema/flat-union-reverse-define.err | 0 tests/qapi-schema/flat-union-reverse-define.exit | 1 - tests/qapi-schema/flat-union-reverse-define.json | 17 -- tests/qapi-schema/flat-union-reverse-define.out | 13 -- tests/qapi-schema/qapi-schema-test.json | 28 ++- tests/qapi-schema/qapi-schema-test.out | 24 +- tests/qapi-schema/returns-int.err | 0 tests/qapi-schema/returns-int.exit | 1 - tests/qapi-schema/returns-int.json | 3 - tests/qapi-schema/returns-int.out | 3 - tests/test-qmp-commands.c | 4 +- tests/test-qmp-input-strict.c | 108 +++------ tests/test-qmp-input-visitor.c | 268 ++++++++++------------- tests/test-qmp-output-visitor.c | 135 +++--------- tests/test-visitor-serialization.c | 76 ++----- 36 files changed, 427 insertions(+), 666 deletions(-) delete mode 100644 tests/qapi-schema/enum-empty.err delete mode 100644 tests/qapi-schema/enum-empty.exit delete mode 100644 tests/qapi-schema/enum-empty.json delete mode 100644 tests/qapi-schema/enum-empty.out delete mode 100644 tests/qapi-schema/flat-union-reverse-define.err delete mode 100644 tests/qapi-schema/flat-union-reverse-define.exit delete mode 100644 tests/qapi-schema/flat-union-reverse-define.json delete mode 100644 tests/qapi-schema/flat-union-reverse-define.out delete mode 100644 tests/qapi-schema/returns-int.err delete mode 100644 tests/qapi-schema/returns-int.exit delete mode 100644 tests/qapi-schema/returns-int.json delete mode 100644 tests/qapi-schema/returns-int.out -- 2.4.3