This series is respined from RFC series at: http://lists.nongnu.org/archive/html/qemu-devel/2013-11/msg00363.html
Patch 1-6 add support for enum as discriminator. Patch 7 improve enum name generation, now AIOContext->AIO_CONTEXT, X86CPU-> X86_CPU. Patch 8 are the test cases. Changes from RFC: Mainly address Eric's comments: fix typo, add patch 2 to allow partly mapping enum value in union, add related test case, remove direct inherit support "_base" and related test case. v2: General: 3: use Raise exception instead of sys.error.write in qapi.py. Address Eric's comments: 2,3: more check for enum value at compile time. 8: correspond test case change. Wenchao Xia (8): 1 qapi script: remember enum values 2 qapi script: add check for duplicated key 3 qapi script: check correctness of discriminator values in union 4 qapi script: code move for generate_enum_name() 5 qapi script: use same function to generate enum string 6 qapi script: not generate hidden enum type for pre-defined enum discriminator 7 qapi script: do not add "_" for every capitalized char in enum 8 tests: add cases for inherited struct and union with discriminator include/qapi/qmp/qerror.h | 2 +- scripts/qapi-types.py | 34 ++++---- scripts/qapi-visit.py | 55 +++++++++-- scripts/qapi.py | 84 ++++++++++++++++- target-i386/cpu.c | 2 +- tests/qapi-schema/comments.out | 2 +- tests/qapi-schema/qapi-schema-test.json | 27 ++++++ tests/qapi-schema/qapi-schema-test.out | 15 +++- tests/test-qmp-input-visitor.c | 120 +++++++++++++++++++++++++ tests/test-qmp-output-visitor.c | 149 +++++++++++++++++++++++++++++++ 10 files changed, 454 insertions(+), 36 deletions(-)