[Qemu-devel] [PATCH for-4.0 v7 00/27] Hi,

Marc-André Lureau posted 27 patches 5 years, 4 months ago
Test checkpatch passed
Test docker-quick@centos7 passed
Test docker-clang@ubuntu passed
Test docker-mingw@fedora passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181208111606.8505-1-marcandre.lureau@redhat.com
qapi/block-core.json                          |  26 +-
qapi/char.json                                | 150 ++++++-----
qapi/migration.json                           |  15 +-
qapi/misc.json                                |   7 +-
qapi/net.json                                 |   3 +-
qapi/tpm.json                                 |   5 +-
qapi/ui.json                                  |   3 +-
scripts/qapi/common.py                        | 253 ++++++++++++------
scripts/qapi/doc.py                           |  30 ++-
scripts/qapi/events.py                        |  13 +-
scripts/qapi/introspect.py                    |  16 +-
scripts/qapi/types.py                         |  13 +-
scripts/qapi/visit.py                         |   8 +-
migration/colo.c                              |  16 +-
monitor.c                                     |   5 -
docs/devel/qapi-code-gen.txt                  |  19 ++
tests/Makefile.include                        |  11 +-
tests/qapi-schema/alternate-base.err          |   1 +
tests/qapi-schema/alternate-invalid-dict.err  |   1 +
...ember.exit => alternate-invalid-dict.exit} |   0
tests/qapi-schema/alternate-invalid-dict.json |   4 +
...-member.out => alternate-invalid-dict.out} |   0
tests/qapi-schema/comments.out                |  14 +-
tests/qapi-schema/doc-bad-section.out         |  13 +-
tests/qapi-schema/doc-good.json               |  11 +-
tests/qapi-schema/doc-good.out                |  22 +-
tests/qapi-schema/doc-good.texi               |   7 +-
tests/qapi-schema/double-type.err             |   1 +
tests/qapi-schema/empty.out                   |   9 +-
tests/qapi-schema/enum-bad-member.err         |   1 +
tests/qapi-schema/enum-bad-member.exit        |   1 +
tests/qapi-schema/enum-bad-member.json        |   2 +
tests/qapi-schema/enum-bad-member.out         |   0
.../qapi-schema/enum-dict-member-unknown.err  |   2 +
.../qapi-schema/enum-dict-member-unknown.exit |   1 +
.../qapi-schema/enum-dict-member-unknown.json |   2 +
.../qapi-schema/enum-dict-member-unknown.out  |   0
tests/qapi-schema/enum-dict-member.err        |   1 -
tests/qapi-schema/enum-dict-member.json       |   2 -
tests/qapi-schema/enum-if-invalid.err         |   1 +
tests/qapi-schema/enum-if-invalid.exit        |   1 +
tests/qapi-schema/enum-if-invalid.json        |   3 +
tests/qapi-schema/enum-if-invalid.out         |   0
tests/qapi-schema/event-case.out              |   9 +-
.../qapi-schema/event-member-invalid-dict.err |   1 +
.../event-member-invalid-dict.exit            |   1 +
.../event-member-invalid-dict.json            |   2 +
.../qapi-schema/event-member-invalid-dict.out |   0
tests/qapi-schema/event-nest-struct.json      |   2 +-
.../flat-union-inline-invalid-dict.err        |   1 +
.../flat-union-inline-invalid-dict.exit       |   1 +
.../flat-union-inline-invalid-dict.json       |  11 +
.../flat-union-inline-invalid-dict.out        |   0
tests/qapi-schema/flat-union-inline.json      |   2 +-
.../flat-union-invalid-if-discriminator.err   |   1 +
.../flat-union-invalid-if-discriminator.exit  |   1 +
.../flat-union-invalid-if-discriminator.json  |  17 ++
.../flat-union-invalid-if-discriminator.out   |   0
tests/qapi-schema/ident-with-escape.out       |   9 +-
tests/qapi-schema/include-relpath.out         |  14 +-
tests/qapi-schema/include-repetition.out      |  14 +-
tests/qapi-schema/include-simple.out          |  14 +-
tests/qapi-schema/indented-expr.out           |   9 +-
.../nested-struct-data-invalid-dict.err       |   1 +
.../nested-struct-data-invalid-dict.exit      |   1 +
.../nested-struct-data-invalid-dict.json      |   3 +
.../nested-struct-data-invalid-dict.out       |   0
tests/qapi-schema/nested-struct-data.json     |   2 +-
tests/qapi-schema/qapi-schema-test.json       |  39 ++-
tests/qapi-schema/qapi-schema-test.out        |  74 ++++-
.../struct-member-invalid-dict.err            |   1 +
.../struct-member-invalid-dict.exit           |   1 +
.../struct-member-invalid-dict.json           |   3 +
.../struct-member-invalid-dict.out            |   0
tests/qapi-schema/test-qapi.py                |   9 +-
.../qapi-schema/union-branch-invalid-dict.err |   1 +
.../union-branch-invalid-dict.exit            |   1 +
.../union-branch-invalid-dict.json            |   4 +
.../qapi-schema/union-branch-invalid-dict.out |   0
tests/qapi-schema/unknown-expr-key.err        |   3 +-
tests/qapi-schema/unknown-expr-key.json       |   2 +-
81 files changed, 681 insertions(+), 266 deletions(-)
create mode 100644 tests/qapi-schema/alternate-invalid-dict.err
rename tests/qapi-schema/{enum-dict-member.exit => alternate-invalid-dict.exit} (100%)
create mode 100644 tests/qapi-schema/alternate-invalid-dict.json
rename tests/qapi-schema/{enum-dict-member.out => alternate-invalid-dict.out} (100%)
create mode 100644 tests/qapi-schema/enum-bad-member.err
create mode 100644 tests/qapi-schema/enum-bad-member.exit
create mode 100644 tests/qapi-schema/enum-bad-member.json
create mode 100644 tests/qapi-schema/enum-bad-member.out
create mode 100644 tests/qapi-schema/enum-dict-member-unknown.err
create mode 100644 tests/qapi-schema/enum-dict-member-unknown.exit
create mode 100644 tests/qapi-schema/enum-dict-member-unknown.json
create mode 100644 tests/qapi-schema/enum-dict-member-unknown.out
delete mode 100644 tests/qapi-schema/enum-dict-member.err
delete mode 100644 tests/qapi-schema/enum-dict-member.json
create mode 100644 tests/qapi-schema/enum-if-invalid.err
create mode 100644 tests/qapi-schema/enum-if-invalid.exit
create mode 100644 tests/qapi-schema/enum-if-invalid.json
create mode 100644 tests/qapi-schema/enum-if-invalid.out
create mode 100644 tests/qapi-schema/event-member-invalid-dict.err
create mode 100644 tests/qapi-schema/event-member-invalid-dict.exit
create mode 100644 tests/qapi-schema/event-member-invalid-dict.json
create mode 100644 tests/qapi-schema/event-member-invalid-dict.out
create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.err
create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.exit
create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.json
create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.out
create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.err
create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.exit
create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.json
create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.out
create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.err
create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.exit
create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.json
create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.out
create mode 100644 tests/qapi-schema/struct-member-invalid-dict.err
create mode 100644 tests/qapi-schema/struct-member-invalid-dict.exit
create mode 100644 tests/qapi-schema/struct-member-invalid-dict.json
create mode 100644 tests/qapi-schema/struct-member-invalid-dict.out
create mode 100644 tests/qapi-schema/union-branch-invalid-dict.err
create mode 100644 tests/qapi-schema/union-branch-invalid-dict.exit
create mode 100644 tests/qapi-schema/union-branch-invalid-dict.json
create mode 100644 tests/qapi-schema/union-branch-invalid-dict.out
[Qemu-devel] [PATCH for-4.0 v7 00/27] Hi,
Posted by Marc-André Lureau 5 years, 4 months ago
This is the second part of the "add #if pre-processor conditions to
generated code" series, adding schema member conditions (roughly
16-38/49).

Members can be exploded as dictionnary with 'type'/'if' keys:

{ 'struct': 'TestIfStruct', 'data':
  { 'foo': 'int',
    'bar': { 'type': 'int', 'if': 'defined(TEST_IF_STRUCT_BAR)'} } }

Enum values can be exploded as dictionnary with 'type'/'if' keys:

{ 'enum': 'TestIfEnum', 'data':
  [ 'foo',
    { 'name' : 'bar', 'if': 'defined(TEST_IF_ENUM_BAR)' } ] }

v7:
- replaced osdep.h include by a #warning check
- renamed event_names/event_enum_members, enum_name/event_enum_ename
- move normalization after checking
- simplify make_enum_members()
- some tests changes
- rebase/conflicts tweaks
- squash documentation changes in related patches
- tweak generated documentation code & output
- modify commit comments, add rb tags

v6:
- subset of v5 series: add schema member conditions
- split "qapi: factor out check_known_keys()", error report improvements
- add a patch to "qapi: include osdep.h in type headers" to avoid
  potential build configuration change issues
- rebased, on top of Markus's qapi-next branch (first 4 patches,
  included for patchew testing)

Marc-André Lureau (27):
  qapi: make sure osdep.h is included in type headers
  qapi: do not define enumeration value explicitly
  qapi: rename QAPISchemaEnumType.values to .members
  qapi: change enum visitor and gen_enum* to take QAPISchemaMember
  tests: print enum type members more like object type members
  qapi: factor out checking for keys
  qapi: improve reporting of unknown or missing keys
  qapi: add a dictionary form with 'name' key for enum members
  qapi: add 'if' to enum members
  qapi-events: add 'if' condition to implicit event enum
  qapi: pass long form enum to make_enum_members
  qapi: rename allow_dict to allow_implicit
  qapi: add a dictionary form for TYPE
  qapi: add 'if' to implicit struct members
  qapi: add an error in case a discriminator is conditional
  qapi: add 'if' to union members
  qapi: simplify make_enum_members()
  tests/qapi: add command with condition on union argument
  qapi: add 'if' to alternate members
  tests/qapi: add command with condition on alternate argument
  qapi: add #if conditions to generated code members
  qapi: add 'If:' condition to enum values documentation
  qapi: add 'If:' condition to struct members documentation
  qapi: add condition to variants documentation
  qapi: break long lines at 'data' member
  qapi: add more conditions to SPICE
  qapi: add conditions to REPLICATION type/commands on the schema

 qapi/block-core.json                          |  26 +-
 qapi/char.json                                | 150 ++++++-----
 qapi/migration.json                           |  15 +-
 qapi/misc.json                                |   7 +-
 qapi/net.json                                 |   3 +-
 qapi/tpm.json                                 |   5 +-
 qapi/ui.json                                  |   3 +-
 scripts/qapi/common.py                        | 253 ++++++++++++------
 scripts/qapi/doc.py                           |  30 ++-
 scripts/qapi/events.py                        |  13 +-
 scripts/qapi/introspect.py                    |  16 +-
 scripts/qapi/types.py                         |  13 +-
 scripts/qapi/visit.py                         |   8 +-
 migration/colo.c                              |  16 +-
 monitor.c                                     |   5 -
 docs/devel/qapi-code-gen.txt                  |  19 ++
 tests/Makefile.include                        |  11 +-
 tests/qapi-schema/alternate-base.err          |   1 +
 tests/qapi-schema/alternate-invalid-dict.err  |   1 +
 ...ember.exit => alternate-invalid-dict.exit} |   0
 tests/qapi-schema/alternate-invalid-dict.json |   4 +
 ...-member.out => alternate-invalid-dict.out} |   0
 tests/qapi-schema/comments.out                |  14 +-
 tests/qapi-schema/doc-bad-section.out         |  13 +-
 tests/qapi-schema/doc-good.json               |  11 +-
 tests/qapi-schema/doc-good.out                |  22 +-
 tests/qapi-schema/doc-good.texi               |   7 +-
 tests/qapi-schema/double-type.err             |   1 +
 tests/qapi-schema/empty.out                   |   9 +-
 tests/qapi-schema/enum-bad-member.err         |   1 +
 tests/qapi-schema/enum-bad-member.exit        |   1 +
 tests/qapi-schema/enum-bad-member.json        |   2 +
 tests/qapi-schema/enum-bad-member.out         |   0
 .../qapi-schema/enum-dict-member-unknown.err  |   2 +
 .../qapi-schema/enum-dict-member-unknown.exit |   1 +
 .../qapi-schema/enum-dict-member-unknown.json |   2 +
 .../qapi-schema/enum-dict-member-unknown.out  |   0
 tests/qapi-schema/enum-dict-member.err        |   1 -
 tests/qapi-schema/enum-dict-member.json       |   2 -
 tests/qapi-schema/enum-if-invalid.err         |   1 +
 tests/qapi-schema/enum-if-invalid.exit        |   1 +
 tests/qapi-schema/enum-if-invalid.json        |   3 +
 tests/qapi-schema/enum-if-invalid.out         |   0
 tests/qapi-schema/event-case.out              |   9 +-
 .../qapi-schema/event-member-invalid-dict.err |   1 +
 .../event-member-invalid-dict.exit            |   1 +
 .../event-member-invalid-dict.json            |   2 +
 .../qapi-schema/event-member-invalid-dict.out |   0
 tests/qapi-schema/event-nest-struct.json      |   2 +-
 .../flat-union-inline-invalid-dict.err        |   1 +
 .../flat-union-inline-invalid-dict.exit       |   1 +
 .../flat-union-inline-invalid-dict.json       |  11 +
 .../flat-union-inline-invalid-dict.out        |   0
 tests/qapi-schema/flat-union-inline.json      |   2 +-
 .../flat-union-invalid-if-discriminator.err   |   1 +
 .../flat-union-invalid-if-discriminator.exit  |   1 +
 .../flat-union-invalid-if-discriminator.json  |  17 ++
 .../flat-union-invalid-if-discriminator.out   |   0
 tests/qapi-schema/ident-with-escape.out       |   9 +-
 tests/qapi-schema/include-relpath.out         |  14 +-
 tests/qapi-schema/include-repetition.out      |  14 +-
 tests/qapi-schema/include-simple.out          |  14 +-
 tests/qapi-schema/indented-expr.out           |   9 +-
 .../nested-struct-data-invalid-dict.err       |   1 +
 .../nested-struct-data-invalid-dict.exit      |   1 +
 .../nested-struct-data-invalid-dict.json      |   3 +
 .../nested-struct-data-invalid-dict.out       |   0
 tests/qapi-schema/nested-struct-data.json     |   2 +-
 tests/qapi-schema/qapi-schema-test.json       |  39 ++-
 tests/qapi-schema/qapi-schema-test.out        |  74 ++++-
 .../struct-member-invalid-dict.err            |   1 +
 .../struct-member-invalid-dict.exit           |   1 +
 .../struct-member-invalid-dict.json           |   3 +
 .../struct-member-invalid-dict.out            |   0
 tests/qapi-schema/test-qapi.py                |   9 +-
 .../qapi-schema/union-branch-invalid-dict.err |   1 +
 .../union-branch-invalid-dict.exit            |   1 +
 .../union-branch-invalid-dict.json            |   4 +
 .../qapi-schema/union-branch-invalid-dict.out |   0
 tests/qapi-schema/unknown-expr-key.err        |   3 +-
 tests/qapi-schema/unknown-expr-key.json       |   2 +-
 81 files changed, 681 insertions(+), 266 deletions(-)
 create mode 100644 tests/qapi-schema/alternate-invalid-dict.err
 rename tests/qapi-schema/{enum-dict-member.exit => alternate-invalid-dict.exit} (100%)
 create mode 100644 tests/qapi-schema/alternate-invalid-dict.json
 rename tests/qapi-schema/{enum-dict-member.out => alternate-invalid-dict.out} (100%)
 create mode 100644 tests/qapi-schema/enum-bad-member.err
 create mode 100644 tests/qapi-schema/enum-bad-member.exit
 create mode 100644 tests/qapi-schema/enum-bad-member.json
 create mode 100644 tests/qapi-schema/enum-bad-member.out
 create mode 100644 tests/qapi-schema/enum-dict-member-unknown.err
 create mode 100644 tests/qapi-schema/enum-dict-member-unknown.exit
 create mode 100644 tests/qapi-schema/enum-dict-member-unknown.json
 create mode 100644 tests/qapi-schema/enum-dict-member-unknown.out
 delete mode 100644 tests/qapi-schema/enum-dict-member.err
 delete mode 100644 tests/qapi-schema/enum-dict-member.json
 create mode 100644 tests/qapi-schema/enum-if-invalid.err
 create mode 100644 tests/qapi-schema/enum-if-invalid.exit
 create mode 100644 tests/qapi-schema/enum-if-invalid.json
 create mode 100644 tests/qapi-schema/enum-if-invalid.out
 create mode 100644 tests/qapi-schema/event-member-invalid-dict.err
 create mode 100644 tests/qapi-schema/event-member-invalid-dict.exit
 create mode 100644 tests/qapi-schema/event-member-invalid-dict.json
 create mode 100644 tests/qapi-schema/event-member-invalid-dict.out
 create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.err
 create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.exit
 create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.json
 create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.out
 create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.err
 create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.exit
 create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.json
 create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.out
 create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.err
 create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.exit
 create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.json
 create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.out
 create mode 100644 tests/qapi-schema/struct-member-invalid-dict.err
 create mode 100644 tests/qapi-schema/struct-member-invalid-dict.exit
 create mode 100644 tests/qapi-schema/struct-member-invalid-dict.json
 create mode 100644 tests/qapi-schema/struct-member-invalid-dict.out
 create mode 100644 tests/qapi-schema/union-branch-invalid-dict.err
 create mode 100644 tests/qapi-schema/union-branch-invalid-dict.exit
 create mode 100644 tests/qapi-schema/union-branch-invalid-dict.json
 create mode 100644 tests/qapi-schema/union-branch-invalid-dict.out

-- 
2.20.0.rc1


Re: [Qemu-devel] [PATCH for-4.0 v7 00/27] Hi,
Posted by Marc-André Lureau 5 years, 4 months ago
Hi,

The cover letter title should be "qapi: add #if pre-processor
conditions to generated code (part 2)"


On Sat, Dec 8, 2018 at 3:16 PM Marc-André Lureau
<marcandre.lureau@redhat.com> wrote:
>
> This is the second part of the "add #if pre-processor conditions to
> generated code" series, adding schema member conditions (roughly
> 16-38/49).
>
> Members can be exploded as dictionnary with 'type'/'if' keys:
>
> { 'struct': 'TestIfStruct', 'data':
>   { 'foo': 'int',
>     'bar': { 'type': 'int', 'if': 'defined(TEST_IF_STRUCT_BAR)'} } }
>
> Enum values can be exploded as dictionnary with 'type'/'if' keys:
>
> { 'enum': 'TestIfEnum', 'data':
>   [ 'foo',
>     { 'name' : 'bar', 'if': 'defined(TEST_IF_ENUM_BAR)' } ] }
>
> v7:
> - replaced osdep.h include by a #warning check
> - renamed event_names/event_enum_members, enum_name/event_enum_ename
> - move normalization after checking
> - simplify make_enum_members()
> - some tests changes
> - rebase/conflicts tweaks
> - squash documentation changes in related patches
> - tweak generated documentation code & output
> - modify commit comments, add rb tags
>
> v6:
> - subset of v5 series: add schema member conditions
> - split "qapi: factor out check_known_keys()", error report improvements
> - add a patch to "qapi: include osdep.h in type headers" to avoid
>   potential build configuration change issues
> - rebased, on top of Markus's qapi-next branch (first 4 patches,
>   included for patchew testing)
>
> Marc-André Lureau (27):
>   qapi: make sure osdep.h is included in type headers
>   qapi: do not define enumeration value explicitly
>   qapi: rename QAPISchemaEnumType.values to .members
>   qapi: change enum visitor and gen_enum* to take QAPISchemaMember
>   tests: print enum type members more like object type members
>   qapi: factor out checking for keys
>   qapi: improve reporting of unknown or missing keys
>   qapi: add a dictionary form with 'name' key for enum members
>   qapi: add 'if' to enum members
>   qapi-events: add 'if' condition to implicit event enum
>   qapi: pass long form enum to make_enum_members
>   qapi: rename allow_dict to allow_implicit
>   qapi: add a dictionary form for TYPE
>   qapi: add 'if' to implicit struct members
>   qapi: add an error in case a discriminator is conditional
>   qapi: add 'if' to union members
>   qapi: simplify make_enum_members()
>   tests/qapi: add command with condition on union argument
>   qapi: add 'if' to alternate members
>   tests/qapi: add command with condition on alternate argument
>   qapi: add #if conditions to generated code members
>   qapi: add 'If:' condition to enum values documentation
>   qapi: add 'If:' condition to struct members documentation
>   qapi: add condition to variants documentation
>   qapi: break long lines at 'data' member
>   qapi: add more conditions to SPICE
>   qapi: add conditions to REPLICATION type/commands on the schema
>
>  qapi/block-core.json                          |  26 +-
>  qapi/char.json                                | 150 ++++++-----
>  qapi/migration.json                           |  15 +-
>  qapi/misc.json                                |   7 +-
>  qapi/net.json                                 |   3 +-
>  qapi/tpm.json                                 |   5 +-
>  qapi/ui.json                                  |   3 +-
>  scripts/qapi/common.py                        | 253 ++++++++++++------
>  scripts/qapi/doc.py                           |  30 ++-
>  scripts/qapi/events.py                        |  13 +-
>  scripts/qapi/introspect.py                    |  16 +-
>  scripts/qapi/types.py                         |  13 +-
>  scripts/qapi/visit.py                         |   8 +-
>  migration/colo.c                              |  16 +-
>  monitor.c                                     |   5 -
>  docs/devel/qapi-code-gen.txt                  |  19 ++
>  tests/Makefile.include                        |  11 +-
>  tests/qapi-schema/alternate-base.err          |   1 +
>  tests/qapi-schema/alternate-invalid-dict.err  |   1 +
>  ...ember.exit => alternate-invalid-dict.exit} |   0
>  tests/qapi-schema/alternate-invalid-dict.json |   4 +
>  ...-member.out => alternate-invalid-dict.out} |   0
>  tests/qapi-schema/comments.out                |  14 +-
>  tests/qapi-schema/doc-bad-section.out         |  13 +-
>  tests/qapi-schema/doc-good.json               |  11 +-
>  tests/qapi-schema/doc-good.out                |  22 +-
>  tests/qapi-schema/doc-good.texi               |   7 +-
>  tests/qapi-schema/double-type.err             |   1 +
>  tests/qapi-schema/empty.out                   |   9 +-
>  tests/qapi-schema/enum-bad-member.err         |   1 +
>  tests/qapi-schema/enum-bad-member.exit        |   1 +
>  tests/qapi-schema/enum-bad-member.json        |   2 +
>  tests/qapi-schema/enum-bad-member.out         |   0
>  .../qapi-schema/enum-dict-member-unknown.err  |   2 +
>  .../qapi-schema/enum-dict-member-unknown.exit |   1 +
>  .../qapi-schema/enum-dict-member-unknown.json |   2 +
>  .../qapi-schema/enum-dict-member-unknown.out  |   0
>  tests/qapi-schema/enum-dict-member.err        |   1 -
>  tests/qapi-schema/enum-dict-member.json       |   2 -
>  tests/qapi-schema/enum-if-invalid.err         |   1 +
>  tests/qapi-schema/enum-if-invalid.exit        |   1 +
>  tests/qapi-schema/enum-if-invalid.json        |   3 +
>  tests/qapi-schema/enum-if-invalid.out         |   0
>  tests/qapi-schema/event-case.out              |   9 +-
>  .../qapi-schema/event-member-invalid-dict.err |   1 +
>  .../event-member-invalid-dict.exit            |   1 +
>  .../event-member-invalid-dict.json            |   2 +
>  .../qapi-schema/event-member-invalid-dict.out |   0
>  tests/qapi-schema/event-nest-struct.json      |   2 +-
>  .../flat-union-inline-invalid-dict.err        |   1 +
>  .../flat-union-inline-invalid-dict.exit       |   1 +
>  .../flat-union-inline-invalid-dict.json       |  11 +
>  .../flat-union-inline-invalid-dict.out        |   0
>  tests/qapi-schema/flat-union-inline.json      |   2 +-
>  .../flat-union-invalid-if-discriminator.err   |   1 +
>  .../flat-union-invalid-if-discriminator.exit  |   1 +
>  .../flat-union-invalid-if-discriminator.json  |  17 ++
>  .../flat-union-invalid-if-discriminator.out   |   0
>  tests/qapi-schema/ident-with-escape.out       |   9 +-
>  tests/qapi-schema/include-relpath.out         |  14 +-
>  tests/qapi-schema/include-repetition.out      |  14 +-
>  tests/qapi-schema/include-simple.out          |  14 +-
>  tests/qapi-schema/indented-expr.out           |   9 +-
>  .../nested-struct-data-invalid-dict.err       |   1 +
>  .../nested-struct-data-invalid-dict.exit      |   1 +
>  .../nested-struct-data-invalid-dict.json      |   3 +
>  .../nested-struct-data-invalid-dict.out       |   0
>  tests/qapi-schema/nested-struct-data.json     |   2 +-
>  tests/qapi-schema/qapi-schema-test.json       |  39 ++-
>  tests/qapi-schema/qapi-schema-test.out        |  74 ++++-
>  .../struct-member-invalid-dict.err            |   1 +
>  .../struct-member-invalid-dict.exit           |   1 +
>  .../struct-member-invalid-dict.json           |   3 +
>  .../struct-member-invalid-dict.out            |   0
>  tests/qapi-schema/test-qapi.py                |   9 +-
>  .../qapi-schema/union-branch-invalid-dict.err |   1 +
>  .../union-branch-invalid-dict.exit            |   1 +
>  .../union-branch-invalid-dict.json            |   4 +
>  .../qapi-schema/union-branch-invalid-dict.out |   0
>  tests/qapi-schema/unknown-expr-key.err        |   3 +-
>  tests/qapi-schema/unknown-expr-key.json       |   2 +-
>  81 files changed, 681 insertions(+), 266 deletions(-)
>  create mode 100644 tests/qapi-schema/alternate-invalid-dict.err
>  rename tests/qapi-schema/{enum-dict-member.exit => alternate-invalid-dict.exit} (100%)
>  create mode 100644 tests/qapi-schema/alternate-invalid-dict.json
>  rename tests/qapi-schema/{enum-dict-member.out => alternate-invalid-dict.out} (100%)
>  create mode 100644 tests/qapi-schema/enum-bad-member.err
>  create mode 100644 tests/qapi-schema/enum-bad-member.exit
>  create mode 100644 tests/qapi-schema/enum-bad-member.json
>  create mode 100644 tests/qapi-schema/enum-bad-member.out
>  create mode 100644 tests/qapi-schema/enum-dict-member-unknown.err
>  create mode 100644 tests/qapi-schema/enum-dict-member-unknown.exit
>  create mode 100644 tests/qapi-schema/enum-dict-member-unknown.json
>  create mode 100644 tests/qapi-schema/enum-dict-member-unknown.out
>  delete mode 100644 tests/qapi-schema/enum-dict-member.err
>  delete mode 100644 tests/qapi-schema/enum-dict-member.json
>  create mode 100644 tests/qapi-schema/enum-if-invalid.err
>  create mode 100644 tests/qapi-schema/enum-if-invalid.exit
>  create mode 100644 tests/qapi-schema/enum-if-invalid.json
>  create mode 100644 tests/qapi-schema/enum-if-invalid.out
>  create mode 100644 tests/qapi-schema/event-member-invalid-dict.err
>  create mode 100644 tests/qapi-schema/event-member-invalid-dict.exit
>  create mode 100644 tests/qapi-schema/event-member-invalid-dict.json
>  create mode 100644 tests/qapi-schema/event-member-invalid-dict.out
>  create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.err
>  create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.exit
>  create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.json
>  create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.out
>  create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.err
>  create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.exit
>  create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.json
>  create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.out
>  create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.err
>  create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.exit
>  create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.json
>  create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.out
>  create mode 100644 tests/qapi-schema/struct-member-invalid-dict.err
>  create mode 100644 tests/qapi-schema/struct-member-invalid-dict.exit
>  create mode 100644 tests/qapi-schema/struct-member-invalid-dict.json
>  create mode 100644 tests/qapi-schema/struct-member-invalid-dict.out
>  create mode 100644 tests/qapi-schema/union-branch-invalid-dict.err
>  create mode 100644 tests/qapi-schema/union-branch-invalid-dict.exit
>  create mode 100644 tests/qapi-schema/union-branch-invalid-dict.json
>  create mode 100644 tests/qapi-schema/union-branch-invalid-dict.out
>
> --
> 2.20.0.rc1
>

Re: [Qemu-devel] [PATCH for-4.0 v7 00/27] Hi,
Posted by Markus Armbruster 5 years, 4 months ago
Marc-André Lureau <marcandre.lureau@redhat.com> writes:

> This is the second part of the "add #if pre-processor conditions to
> generated code" series, adding schema member conditions (roughly
> 16-38/49).
>
> Members can be exploded as dictionnary with 'type'/'if' keys:
>
> { 'struct': 'TestIfStruct', 'data':
>   { 'foo': 'int',
>     'bar': { 'type': 'int', 'if': 'defined(TEST_IF_STRUCT_BAR)'} } }
>
> Enum values can be exploded as dictionnary with 'type'/'if' keys:
>
> { 'enum': 'TestIfEnum', 'data':
>   [ 'foo',
>     { 'name' : 'bar', 'if': 'defined(TEST_IF_ENUM_BAR)' } ] }

PATCH 03,18,20,25 are only losely related to this second part.  They are
also ready.  Queued on branch qapi-next in my public repository, with
PATCH 18 and 20 squashed together.

I took the liberty to implement the the idea on normalization I
mentioned in review of PATCH 08.  I also squashed a few patches that are
essentially fixups into the patches they fix.  I did not address any
other review comments.  Result is on branch qapi-if-2.  Please have a
look.

Re: [Qemu-devel] [PATCH for-4.0 v7 00/27] Hi,
Posted by Marc-André Lureau 5 years, 4 months ago
Hi

On Wed, Dec 12, 2018 at 9:18 PM Markus Armbruster <armbru@redhat.com> wrote:
>
> Marc-André Lureau <marcandre.lureau@redhat.com> writes:
>
> > This is the second part of the "add #if pre-processor conditions to
> > generated code" series, adding schema member conditions (roughly
> > 16-38/49).
> >
> > Members can be exploded as dictionnary with 'type'/'if' keys:
> >
> > { 'struct': 'TestIfStruct', 'data':
> >   { 'foo': 'int',
> >     'bar': { 'type': 'int', 'if': 'defined(TEST_IF_STRUCT_BAR)'} } }
> >
> > Enum values can be exploded as dictionnary with 'type'/'if' keys:
> >
> > { 'enum': 'TestIfEnum', 'data':
> >   [ 'foo',
> >     { 'name' : 'bar', 'if': 'defined(TEST_IF_ENUM_BAR)' } ] }
>
> PATCH 03,18,20,25 are only losely related to this second part.  They are
> also ready.  Queued on branch qapi-next in my public repository, with
> PATCH 18 and 20 squashed together.
>
> I took the liberty to implement the the idea on normalization I
> mentioned in review of PATCH 08.  I also squashed a few patches that are
> essentially fixups into the patches they fix.  I did not address any
> other review comments.  Result is on branch qapi-if-2.  Please have a
> look.
>

Looks good to me.  Is there something left to rework from this branch
or it is good to go?
thanks

-- 
Marc-André Lureau

Re: [Qemu-devel] [PATCH for-4.0 v7 00/27] Hi,
Posted by Markus Armbruster 5 years, 4 months ago
Marc-André Lureau <marcandre.lureau@gmail.com> writes:

> Hi
>
> On Wed, Dec 12, 2018 at 9:18 PM Markus Armbruster <armbru@redhat.com> wrote:
>>
>> Marc-André Lureau <marcandre.lureau@redhat.com> writes:
>>
>> > This is the second part of the "add #if pre-processor conditions to
>> > generated code" series, adding schema member conditions (roughly
>> > 16-38/49).
>> >
>> > Members can be exploded as dictionnary with 'type'/'if' keys:
>> >
>> > { 'struct': 'TestIfStruct', 'data':
>> >   { 'foo': 'int',
>> >     'bar': { 'type': 'int', 'if': 'defined(TEST_IF_STRUCT_BAR)'} } }
>> >
>> > Enum values can be exploded as dictionnary with 'type'/'if' keys:
>> >
>> > { 'enum': 'TestIfEnum', 'data':
>> >   [ 'foo',
>> >     { 'name' : 'bar', 'if': 'defined(TEST_IF_ENUM_BAR)' } ] }
>>
>> PATCH 03,18,20,25 are only losely related to this second part.  They are
>> also ready.  Queued on branch qapi-next in my public repository, with
>> PATCH 18 and 20 squashed together.
>>
>> I took the liberty to implement the the idea on normalization I
>> mentioned in review of PATCH 08.  I also squashed a few patches that are
>> essentially fixups into the patches they fix.  I did not address any
>> other review comments.  Result is on branch qapi-if-2.  Please have a
>> look.
>>
>
> Looks good to me.  Is there something left to rework from this branch
> or it is good to go?
> thanks

I adressed only the one review comment that was hard to explain, plus
some patch squashing.  The other review comments still need to be
considered and worked in.