All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v6 00/36] drop qapi nested structs
@ 2015-04-05  4:07 Eric Blake
  2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 01/36] qapi: Add copyright declaration on docs Eric Blake
                   ` (39 more replies)
  0 siblings, 40 replies; 72+ messages in thread
From: Eric Blake @ 2015-04-05  4:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, berto, armbru

We want to eventually allow qapi defaults, by making:
 'data':{'*flag':'bool'}
as shorthand for something like:
 'data':{'flag':{'type':'bool', 'optional':true}}
so that the default can be specified:
 'data':{'flag':{'type':'bool', 'optional':true, 'default':true}}

This series does not quite get us there, but it DOES do a number
of other things.  It gets rid of the three uses of nested inline
structs, changes anonymous unions to use a specific 'alternate'
metatype rather than abusing 'union', changes the ambiguous 'type'
to the obvious 'struct', and fixes lots of other parser bugs found
while designing the testsuite.  The testsuite changes make the
bulk of this series, with a repeating pattern of writing tests
that expose weaknesses in the old parser, then beefing up the
generator to catch the problem during the initial parse rather
than choking with an obscure python message or even causing a C
compilation failure.  There are a couple of ideas for things to
still fix before all is said and done (such as preventing a
collision of members between a struct and its base class, or
fixing the parser to understand \uXXXX escape sequences in
strings), but at this point, anything raised as a review comment
is probably better addressed as followup patches rather than
respinning a v7.

v5 was here:
https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg05034.html

v6 changes are noted in each patch; in particular, several new
patches were added (additional tests, split some patches, conversion
to 'struct' instead of 'type'). But most of the changes were in
direct response to review comments or rebase fallout, so I kept
in Reviewed-by markings where possible, to help focus review on
the remainder.

I wrote another patch while working on this series, but it was
independent enough that I posted it separately (although I based
the documentation in this patch as if that, or Markus' alternative,
had been applied):
https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg00373.html

Eric Blake (35):
  qapi: Add copyright declaration on docs
  qapi: Document type-safety considerations
  qapi: Simplify builtin type handling
  qapi: Fix generation of 'size' builtin type
  qapi: Require ASCII in schema
  qapi: Add some enum tests
  qapi: Better error messages for bad enums
  qapi: Add some union tests
  qapi: Clean up test coverage of simple unions
  qapi: Forbid base without discriminator in unions
  qapi: Tighten checking of unions
  qapi: Prepare for catching more semantic parse errors
  qapi: Segregate anonymous unions into alternates in generator
  qapi: Rename anonymous union type in test
  qapi: Document new 'alternate' meta-type
  qapi: Use 'alternate' to replace anonymous union
  qapi: Add some expr tests
  qapi: Better error messages for bad expressions
  qapi: Add tests of redefined expressions
  qapi: Better error messages for duplicated expressions
  qapi: Unify type bypass and add tests
  qapi: Add some type check tests
  qapi: More rigourous checking of types
  qapi: Require valid names
  qapi: Whitelist commands that don't return dictionary
  qapi: More rigorous checking for type safety bypass
  qapi: Prefer 'struct' over 'type' in generator
  qapi: Document 'struct' metatype
  qapi: Use 'struct' instead of 'type' in schema
  qapi: Merge UserDefTwo and UserDefNested in tests
  qapi: Drop tests for inline nested structs
  qapi: Drop inline nested struct in query-version
  qapi: Drop inline nested structs in query-pci
  qapi: Drop support for inline nested types
  qapi: Tweak doc references to QMP when QGA is also meant

Fam Zheng (1):
  qapi: Allow true, false and null in schema json

 docs/qapi-code-gen.txt                             | 479 ++++++++++++++++-----
 docs/qmp/qmp-spec.txt                              | 120 ++++--
 hmp.c                                              |  28 +-
 hw/pci/pci.c                                       |  42 +-
 qapi-schema.json                                   | 270 +++++++-----
 qapi/block-core.json                               |  68 ++-
 qapi/block.json                                    |   2 +-
 qapi/common.json                                   |  30 +-
 qapi/trace.json                                    |   2 +-
 qga/qapi-schema.json                               |  36 +-
 qmp.c                                              |   9 +-
 scripts/qapi-commands.py                           |   8 +-
 scripts/qapi-event.py                              |   4 +-
 scripts/qapi-types.py                              |  77 ++--
 scripts/qapi-visit.py                              |  83 ++--
 scripts/qapi.py                                    | 479 +++++++++++++++++----
 tests/Makefile                                     |  35 +-
 tests/qapi-schema/alternate-array.err              |   1 +
 tests/qapi-schema/alternate-array.exit             |   1 +
 tests/qapi-schema/alternate-array.json             |   7 +
 tests/qapi-schema/alternate-array.out              |   0
 tests/qapi-schema/alternate-base.err               |   1 +
 tests/qapi-schema/alternate-base.exit              |   1 +
 tests/qapi-schema/alternate-base.json              |   6 +
 tests/qapi-schema/alternate-base.out               |   0
 tests/qapi-schema/alternate-clash.err              |   1 +
 tests/qapi-schema/alternate-clash.exit             |   1 +
 tests/qapi-schema/alternate-clash.json             |   3 +
 tests/qapi-schema/alternate-clash.out              |   0
 tests/qapi-schema/alternate-conflict-dict.err      |   1 +
 tests/qapi-schema/alternate-conflict-dict.exit     |   1 +
 tests/qapi-schema/alternate-conflict-dict.json     |   8 +
 tests/qapi-schema/alternate-conflict-dict.out      |   0
 tests/qapi-schema/alternate-conflict-string.err    |   1 +
 tests/qapi-schema/alternate-conflict-string.exit   |   1 +
 tests/qapi-schema/alternate-conflict-string.json   |   6 +
 tests/qapi-schema/alternate-conflict-string.out    |   0
 tests/qapi-schema/alternate-good.err               |   0
 tests/qapi-schema/alternate-good.exit              |   1 +
 tests/qapi-schema/alternate-good.json              |   9 +
 tests/qapi-schema/alternate-good.out               |   6 +
 tests/qapi-schema/alternate-nested.err             |   1 +
 tests/qapi-schema/alternate-nested.exit            |   1 +
 tests/qapi-schema/alternate-nested.json            |   5 +
 tests/qapi-schema/alternate-nested.out             |   0
 tests/qapi-schema/alternate-unknown.err            |   1 +
 tests/qapi-schema/alternate-unknown.exit           |   1 +
 tests/qapi-schema/alternate-unknown.json           |   3 +
 tests/qapi-schema/alternate-unknown.out            |   0
 tests/qapi-schema/bad-base.err                     |   1 +
 tests/qapi-schema/bad-base.exit                    |   1 +
 tests/qapi-schema/bad-base.json                    |   3 +
 tests/qapi-schema/bad-base.out                     |   0
 tests/qapi-schema/bad-data.err                     |   1 +
 tests/qapi-schema/bad-data.exit                    |   1 +
 tests/qapi-schema/bad-data.json                    |   2 +
 tests/qapi-schema/bad-data.out                     |   0
 tests/qapi-schema/bad-ident.err                    |   1 +
 tests/qapi-schema/bad-ident.exit                   |   1 +
 tests/qapi-schema/bad-ident.json                   |   2 +
 tests/qapi-schema/bad-ident.out                    |   0
 tests/qapi-schema/bad-type-bool.err                |   1 +
 tests/qapi-schema/bad-type-bool.exit               |   1 +
 tests/qapi-schema/bad-type-bool.json               |   2 +
 tests/qapi-schema/bad-type-bool.out                |   0
 tests/qapi-schema/bad-type-dict.err                |   1 +
 tests/qapi-schema/bad-type-dict.exit               |   1 +
 tests/qapi-schema/bad-type-dict.json               |   2 +
 tests/qapi-schema/bad-type-dict.out                |   0
 tests/qapi-schema/bad-type-int.err                 |   1 +
 tests/qapi-schema/bad-type-int.exit                |   1 +
 tests/qapi-schema/bad-type-int.json                |   3 +
 tests/qapi-schema/bad-type-int.out                 |   0
 tests/qapi-schema/command-int.err                  |   1 +
 tests/qapi-schema/command-int.exit                 |   1 +
 tests/qapi-schema/command-int.json                 |   3 +
 tests/qapi-schema/command-int.out                  |   0
 tests/qapi-schema/data-array-empty.err             |   1 +
 tests/qapi-schema/data-array-empty.exit            |   1 +
 tests/qapi-schema/data-array-empty.json            |   2 +
 tests/qapi-schema/data-array-empty.out             |   0
 tests/qapi-schema/data-array-unknown.err           |   1 +
 tests/qapi-schema/data-array-unknown.exit          |   1 +
 tests/qapi-schema/data-array-unknown.json          |   2 +
 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                    |   2 +
 tests/qapi-schema/data-int.out                     |   0
 tests/qapi-schema/data-member-array-bad.err        |   1 +
 tests/qapi-schema/data-member-array-bad.exit       |   1 +
 tests/qapi-schema/data-member-array-bad.json       |   2 +
 tests/qapi-schema/data-member-array-bad.out        |   0
 tests/qapi-schema/data-member-array.err            |   0
 tests/qapi-schema/data-member-array.exit           |   1 +
 tests/qapi-schema/data-member-array.json           |   4 +
 tests/qapi-schema/data-member-array.out            |   5 +
 tests/qapi-schema/data-member-unknown.err          |   1 +
 tests/qapi-schema/data-member-unknown.exit         |   1 +
 tests/qapi-schema/data-member-unknown.json         |   2 +
 tests/qapi-schema/data-member-unknown.out          |   0
 tests/qapi-schema/data-unknown.err                 |   1 +
 tests/qapi-schema/data-unknown.exit                |   1 +
 tests/qapi-schema/data-unknown.json                |   2 +
 tests/qapi-schema/data-unknown.out                 |   0
 tests/qapi-schema/double-data.err                  |   1 +
 tests/qapi-schema/double-data.exit                 |   1 +
 tests/qapi-schema/double-data.json                 |   2 +
 tests/qapi-schema/double-data.out                  |   0
 tests/qapi-schema/double-type.err                  |   1 +
 tests/qapi-schema/double-type.exit                 |   1 +
 tests/qapi-schema/double-type.json                 |   2 +
 tests/qapi-schema/double-type.out                  |   0
 tests/qapi-schema/enum-bad-name.err                |   1 +
 tests/qapi-schema/enum-bad-name.exit               |   1 +
 tests/qapi-schema/enum-bad-name.json               |   2 +
 tests/qapi-schema/enum-bad-name.out                |   0
 tests/qapi-schema/enum-clash-member.err            |   1 +
 tests/qapi-schema/enum-clash-member.exit           |   1 +
 tests/qapi-schema/enum-clash-member.json           |   2 +
 tests/qapi-schema/enum-clash-member.out            |   0
 tests/qapi-schema/enum-dict-member.err             |   1 +
 tests/qapi-schema/enum-dict-member.exit            |   1 +
 tests/qapi-schema/enum-dict-member.json            |   2 +
 tests/qapi-schema/enum-dict-member.out             |   0
 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                   |   3 +
 tests/qapi-schema/enum-int-member.err              |   1 +
 tests/qapi-schema/enum-int-member.exit             |   1 +
 tests/qapi-schema/enum-int-member.json             |   3 +
 tests/qapi-schema/enum-int-member.out              |   0
 tests/qapi-schema/enum-max-member.err              |   1 +
 tests/qapi-schema/enum-max-member.exit             |   1 +
 tests/qapi-schema/enum-max-member.json             |   3 +
 tests/qapi-schema/enum-max-member.out              |   0
 tests/qapi-schema/enum-missing-data.err            |   1 +
 tests/qapi-schema/enum-missing-data.exit           |   1 +
 tests/qapi-schema/enum-missing-data.json           |   2 +
 tests/qapi-schema/enum-missing-data.out            |   0
 tests/qapi-schema/enum-union-clash.err             |   1 +
 tests/qapi-schema/enum-union-clash.exit            |   1 +
 tests/qapi-schema/enum-union-clash.json            |   4 +
 tests/qapi-schema/enum-union-clash.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             |   2 +
 tests/qapi-schema/enum-wrong-data.out              |   0
 tests/qapi-schema/event-case.err                   |   0
 tests/qapi-schema/event-case.exit                  |   1 +
 tests/qapi-schema/event-case.json                  |   3 +
 tests/qapi-schema/event-case.out                   |   3 +
 tests/qapi-schema/event-max.err                    |   1 +
 tests/qapi-schema/event-max.exit                   |   1 +
 tests/qapi-schema/event-max.json                   |   2 +
 tests/qapi-schema/event-max.out                    |   0
 tests/qapi-schema/event-nest-struct.err            |   2 +-
 tests/qapi-schema/flat-union-bad-base.err          |   1 +
 tests/qapi-schema/flat-union-bad-base.exit         |   1 +
 tests/qapi-schema/flat-union-bad-base.json         |  13 +
 tests/qapi-schema/flat-union-bad-base.out          |   0
 tests/qapi-schema/flat-union-bad-discriminator.err |   1 +
 .../qapi-schema/flat-union-bad-discriminator.exit  |   1 +
 .../qapi-schema/flat-union-bad-discriminator.json  |  15 +
 tests/qapi-schema/flat-union-bad-discriminator.out |   0
 tests/qapi-schema/flat-union-base-star.err         |   1 +
 tests/qapi-schema/flat-union-base-star.exit        |   1 +
 tests/qapi-schema/flat-union-base-star.json        |  12 +
 tests/qapi-schema/flat-union-base-star.out         |   0
 tests/qapi-schema/flat-union-base-union.err        |   1 +
 tests/qapi-schema/flat-union-base-union.exit       |   1 +
 tests/qapi-schema/flat-union-base-union.json       |  15 +
 tests/qapi-schema/flat-union-base-union.out        |   0
 tests/qapi-schema/flat-union-branch-clash.err      |   0
 tests/qapi-schema/flat-union-branch-clash.exit     |   1 +
 tests/qapi-schema/flat-union-branch-clash.json     |  14 +
 tests/qapi-schema/flat-union-branch-clash.out      |   9 +
 tests/qapi-schema/flat-union-inline.err            |   1 +
 tests/qapi-schema/flat-union-inline.exit           |   1 +
 tests/qapi-schema/flat-union-inline.json           |  11 +
 tests/qapi-schema/flat-union-inline.out            |   0
 tests/qapi-schema/flat-union-int-branch.err        |   1 +
 tests/qapi-schema/flat-union-int-branch.exit       |   1 +
 tests/qapi-schema/flat-union-int-branch.json       |  12 +
 tests/qapi-schema/flat-union-int-branch.out        |   0
 .../qapi-schema/flat-union-invalid-branch-key.json |   6 +-
 .../flat-union-invalid-discriminator.err           |   2 +-
 .../flat-union-invalid-discriminator.json          |   6 +-
 tests/qapi-schema/flat-union-no-base.err           |   2 +-
 tests/qapi-schema/flat-union-no-base.json          |  12 +-
 .../flat-union-optional-discriminator.err          |   1 +
 .../flat-union-optional-discriminator.exit         |   1 +
 .../flat-union-optional-discriminator.json         |  10 +
 .../flat-union-optional-discriminator.out          |   0
 tests/qapi-schema/flat-union-reverse-define.json   |   6 +-
 tests/qapi-schema/flat-union-reverse-define.out    |  12 +-
 .../flat-union-string-discriminator.json           |   6 +-
 tests/qapi-schema/ident-with-escape.err            |   1 +
 tests/qapi-schema/ident-with-escape.exit           |   1 +
 tests/qapi-schema/ident-with-escape.json           |   4 +
 tests/qapi-schema/ident-with-escape.out            |   0
 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                |   2 +
 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          |   4 +
 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       |   3 +
 tests/qapi-schema/nested-struct-returns.out        |   0
 tests/qapi-schema/qapi-schema-test.json            |  46 +-
 tests/qapi-schema/qapi-schema-test.out             |  54 +--
 tests/qapi-schema/redefined-builtin.err            |   1 +
 tests/qapi-schema/redefined-builtin.exit           |   1 +
 tests/qapi-schema/redefined-builtin.json           |   2 +
 tests/qapi-schema/redefined-builtin.out            |   0
 tests/qapi-schema/redefined-command.err            |   1 +
 tests/qapi-schema/redefined-command.exit           |   1 +
 tests/qapi-schema/redefined-command.json           |   3 +
 tests/qapi-schema/redefined-command.out            |   0
 tests/qapi-schema/redefined-event.err              |   1 +
 tests/qapi-schema/redefined-event.exit             |   1 +
 tests/qapi-schema/redefined-event.json             |   3 +
 tests/qapi-schema/redefined-event.out              |   0
 tests/qapi-schema/redefined-type.err               |   1 +
 tests/qapi-schema/redefined-type.exit              |   1 +
 tests/qapi-schema/redefined-type.json              |   3 +
 tests/qapi-schema/redefined-type.out               |   0
 tests/qapi-schema/returns-alternate.err            |   1 +
 tests/qapi-schema/returns-alternate.exit           |   1 +
 tests/qapi-schema/returns-alternate.json           |   3 +
 tests/qapi-schema/returns-alternate.out            |   0
 tests/qapi-schema/returns-array-bad.err            |   1 +
 tests/qapi-schema/returns-array-bad.exit           |   1 +
 tests/qapi-schema/returns-array-bad.json           |   2 +
 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                 |   3 +
 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             |   2 +
 tests/qapi-schema/returns-unknown.out              |   0
 tests/qapi-schema/returns-whitelist.err            |   1 +
 tests/qapi-schema/returns-whitelist.exit           |   1 +
 tests/qapi-schema/returns-whitelist.json           |  11 +
 tests/qapi-schema/returns-whitelist.out            |   0
 tests/qapi-schema/type-bypass-bad-gen.err          |   1 +
 tests/qapi-schema/type-bypass-bad-gen.exit         |   1 +
 tests/qapi-schema/type-bypass-bad-gen.json         |   2 +
 tests/qapi-schema/type-bypass-bad-gen.out          |   0
 tests/qapi-schema/type-bypass-no-gen.err           |   1 +
 tests/qapi-schema/type-bypass-no-gen.exit          |   1 +
 tests/qapi-schema/type-bypass-no-gen.json          |   2 +
 tests/qapi-schema/type-bypass-no-gen.out           |   0
 tests/qapi-schema/type-bypass.err                  |   0
 tests/qapi-schema/type-bypass.exit                 |   1 +
 tests/qapi-schema/type-bypass.json                 |   2 +
 tests/qapi-schema/type-bypass.out                  |   3 +
 tests/qapi-schema/union-bad-branch.err             |   1 +
 tests/qapi-schema/union-bad-branch.exit            |   1 +
 tests/qapi-schema/union-bad-branch.json            |   8 +
 tests/qapi-schema/union-bad-branch.out             |   0
 tests/qapi-schema/union-base-no-discriminator.err  |   1 +
 tests/qapi-schema/union-base-no-discriminator.exit |   1 +
 tests/qapi-schema/union-base-no-discriminator.json |  14 +
 tests/qapi-schema/union-base-no-discriminator.out  |   0
 tests/qapi-schema/union-invalid-base.err           |   2 +-
 tests/qapi-schema/union-invalid-base.json          |   8 +-
 tests/qapi-schema/union-max.err                    |   1 +
 tests/qapi-schema/union-max.exit                   |   1 +
 tests/qapi-schema/union-max.json                   |   3 +
 tests/qapi-schema/union-max.out                    |   0
 tests/qapi-schema/union-optional-branch.err        |   1 +
 tests/qapi-schema/union-optional-branch.exit       |   1 +
 tests/qapi-schema/union-optional-branch.json       |   2 +
 tests/qapi-schema/union-optional-branch.out        |   0
 tests/qapi-schema/union-unknown.err                |   1 +
 tests/qapi-schema/union-unknown.exit               |   1 +
 tests/qapi-schema/union-unknown.json               |   3 +
 tests/qapi-schema/union-unknown.out                |   0
 tests/qapi-schema/unknown-expr-key.err             |   1 +
 tests/qapi-schema/unknown-expr-key.exit            |   1 +
 tests/qapi-schema/unknown-expr-key.json            |   2 +
 tests/qapi-schema/unknown-expr-key.out             |   0
 tests/test-qmp-commands.c                          |  37 +-
 tests/test-qmp-input-strict.c                      |  98 +++--
 tests/test-qmp-input-visitor.c                     | 117 +++--
 tests/test-qmp-output-visitor.c                    | 152 +++----
 tests/test-visitor-serialization.c                 |  88 ++--
 297 files changed, 2003 insertions(+), 882 deletions(-)
 create mode 100644 tests/qapi-schema/alternate-array.err
 create mode 100644 tests/qapi-schema/alternate-array.exit
 create mode 100644 tests/qapi-schema/alternate-array.json
 create mode 100644 tests/qapi-schema/alternate-array.out
 create mode 100644 tests/qapi-schema/alternate-base.err
 create mode 100644 tests/qapi-schema/alternate-base.exit
 create mode 100644 tests/qapi-schema/alternate-base.json
 create mode 100644 tests/qapi-schema/alternate-base.out
 create mode 100644 tests/qapi-schema/alternate-clash.err
 create mode 100644 tests/qapi-schema/alternate-clash.exit
 create mode 100644 tests/qapi-schema/alternate-clash.json
 create mode 100644 tests/qapi-schema/alternate-clash.out
 create mode 100644 tests/qapi-schema/alternate-conflict-dict.err
 create mode 100644 tests/qapi-schema/alternate-conflict-dict.exit
 create mode 100644 tests/qapi-schema/alternate-conflict-dict.json
 create mode 100644 tests/qapi-schema/alternate-conflict-dict.out
 create mode 100644 tests/qapi-schema/alternate-conflict-string.err
 create mode 100644 tests/qapi-schema/alternate-conflict-string.exit
 create mode 100644 tests/qapi-schema/alternate-conflict-string.json
 create mode 100644 tests/qapi-schema/alternate-conflict-string.out
 create mode 100644 tests/qapi-schema/alternate-good.err
 create mode 100644 tests/qapi-schema/alternate-good.exit
 create mode 100644 tests/qapi-schema/alternate-good.json
 create mode 100644 tests/qapi-schema/alternate-good.out
 create mode 100644 tests/qapi-schema/alternate-nested.err
 create mode 100644 tests/qapi-schema/alternate-nested.exit
 create mode 100644 tests/qapi-schema/alternate-nested.json
 create mode 100644 tests/qapi-schema/alternate-nested.out
 create mode 100644 tests/qapi-schema/alternate-unknown.err
 create mode 100644 tests/qapi-schema/alternate-unknown.exit
 create mode 100644 tests/qapi-schema/alternate-unknown.json
 create mode 100644 tests/qapi-schema/alternate-unknown.out
 create mode 100644 tests/qapi-schema/bad-base.err
 create mode 100644 tests/qapi-schema/bad-base.exit
 create mode 100644 tests/qapi-schema/bad-base.json
 create mode 100644 tests/qapi-schema/bad-base.out
 create mode 100644 tests/qapi-schema/bad-data.err
 create mode 100644 tests/qapi-schema/bad-data.exit
 create mode 100644 tests/qapi-schema/bad-data.json
 create mode 100644 tests/qapi-schema/bad-data.out
 create mode 100644 tests/qapi-schema/bad-ident.err
 create mode 100644 tests/qapi-schema/bad-ident.exit
 create mode 100644 tests/qapi-schema/bad-ident.json
 create mode 100644 tests/qapi-schema/bad-ident.out
 create mode 100644 tests/qapi-schema/bad-type-bool.err
 create mode 100644 tests/qapi-schema/bad-type-bool.exit
 create mode 100644 tests/qapi-schema/bad-type-bool.json
 create mode 100644 tests/qapi-schema/bad-type-bool.out
 create mode 100644 tests/qapi-schema/bad-type-dict.err
 create mode 100644 tests/qapi-schema/bad-type-dict.exit
 create mode 100644 tests/qapi-schema/bad-type-dict.json
 create mode 100644 tests/qapi-schema/bad-type-dict.out
 create mode 100644 tests/qapi-schema/bad-type-int.err
 create mode 100644 tests/qapi-schema/bad-type-int.exit
 create mode 100644 tests/qapi-schema/bad-type-int.json
 create mode 100644 tests/qapi-schema/bad-type-int.out
 create mode 100644 tests/qapi-schema/command-int.err
 create mode 100644 tests/qapi-schema/command-int.exit
 create mode 100644 tests/qapi-schema/command-int.json
 create mode 100644 tests/qapi-schema/command-int.out
 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-member-array-bad.err
 create mode 100644 tests/qapi-schema/data-member-array-bad.exit
 create mode 100644 tests/qapi-schema/data-member-array-bad.json
 create mode 100644 tests/qapi-schema/data-member-array-bad.out
 create mode 100644 tests/qapi-schema/data-member-array.err
 create mode 100644 tests/qapi-schema/data-member-array.exit
 create mode 100644 tests/qapi-schema/data-member-array.json
 create mode 100644 tests/qapi-schema/data-member-array.out
 create mode 100644 tests/qapi-schema/data-member-unknown.err
 create mode 100644 tests/qapi-schema/data-member-unknown.exit
 create mode 100644 tests/qapi-schema/data-member-unknown.json
 create mode 100644 tests/qapi-schema/data-member-unknown.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-data.err
 create mode 100644 tests/qapi-schema/double-data.exit
 create mode 100644 tests/qapi-schema/double-data.json
 create mode 100644 tests/qapi-schema/double-data.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-bad-name.err
 create mode 100644 tests/qapi-schema/enum-bad-name.exit
 create mode 100644 tests/qapi-schema/enum-bad-name.json
 create mode 100644 tests/qapi-schema/enum-bad-name.out
 create mode 100644 tests/qapi-schema/enum-clash-member.err
 create mode 100644 tests/qapi-schema/enum-clash-member.exit
 create mode 100644 tests/qapi-schema/enum-clash-member.json
 create mode 100644 tests/qapi-schema/enum-clash-member.out
 create mode 100644 tests/qapi-schema/enum-dict-member.err
 create mode 100644 tests/qapi-schema/enum-dict-member.exit
 create mode 100644 tests/qapi-schema/enum-dict-member.json
 create mode 100644 tests/qapi-schema/enum-dict-member.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-int-member.err
 create mode 100644 tests/qapi-schema/enum-int-member.exit
 create mode 100644 tests/qapi-schema/enum-int-member.json
 create mode 100644 tests/qapi-schema/enum-int-member.out
 create mode 100644 tests/qapi-schema/enum-max-member.err
 create mode 100644 tests/qapi-schema/enum-max-member.exit
 create mode 100644 tests/qapi-schema/enum-max-member.json
 create mode 100644 tests/qapi-schema/enum-max-member.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-union-clash.err
 create mode 100644 tests/qapi-schema/enum-union-clash.exit
 create mode 100644 tests/qapi-schema/enum-union-clash.json
 create mode 100644 tests/qapi-schema/enum-union-clash.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/event-case.err
 create mode 100644 tests/qapi-schema/event-case.exit
 create mode 100644 tests/qapi-schema/event-case.json
 create mode 100644 tests/qapi-schema/event-case.out
 create mode 100644 tests/qapi-schema/event-max.err
 create mode 100644 tests/qapi-schema/event-max.exit
 create mode 100644 tests/qapi-schema/event-max.json
 create mode 100644 tests/qapi-schema/event-max.out
 create mode 100644 tests/qapi-schema/flat-union-bad-base.err
 create mode 100644 tests/qapi-schema/flat-union-bad-base.exit
 create mode 100644 tests/qapi-schema/flat-union-bad-base.json
 create mode 100644 tests/qapi-schema/flat-union-bad-base.out
 create mode 100644 tests/qapi-schema/flat-union-bad-discriminator.err
 create mode 100644 tests/qapi-schema/flat-union-bad-discriminator.exit
 create mode 100644 tests/qapi-schema/flat-union-bad-discriminator.json
 create mode 100644 tests/qapi-schema/flat-union-bad-discriminator.out
 create mode 100644 tests/qapi-schema/flat-union-base-star.err
 create mode 100644 tests/qapi-schema/flat-union-base-star.exit
 create mode 100644 tests/qapi-schema/flat-union-base-star.json
 create mode 100644 tests/qapi-schema/flat-union-base-star.out
 create mode 100644 tests/qapi-schema/flat-union-base-union.err
 create mode 100644 tests/qapi-schema/flat-union-base-union.exit
 create mode 100644 tests/qapi-schema/flat-union-base-union.json
 create mode 100644 tests/qapi-schema/flat-union-base-union.out
 create mode 100644 tests/qapi-schema/flat-union-branch-clash.err
 create mode 100644 tests/qapi-schema/flat-union-branch-clash.exit
 create mode 100644 tests/qapi-schema/flat-union-branch-clash.json
 create mode 100644 tests/qapi-schema/flat-union-branch-clash.out
 create mode 100644 tests/qapi-schema/flat-union-inline.err
 create mode 100644 tests/qapi-schema/flat-union-inline.exit
 create mode 100644 tests/qapi-schema/flat-union-inline.json
 create mode 100644 tests/qapi-schema/flat-union-inline.out
 create mode 100644 tests/qapi-schema/flat-union-int-branch.err
 create mode 100644 tests/qapi-schema/flat-union-int-branch.exit
 create mode 100644 tests/qapi-schema/flat-union-int-branch.json
 create mode 100644 tests/qapi-schema/flat-union-int-branch.out
 create mode 100644 tests/qapi-schema/flat-union-optional-discriminator.err
 create mode 100644 tests/qapi-schema/flat-union-optional-discriminator.exit
 create mode 100644 tests/qapi-schema/flat-union-optional-discriminator.json
 create mode 100644 tests/qapi-schema/flat-union-optional-discriminator.out
 create mode 100644 tests/qapi-schema/ident-with-escape.err
 create mode 100644 tests/qapi-schema/ident-with-escape.exit
 create mode 100644 tests/qapi-schema/ident-with-escape.json
 create mode 100644 tests/qapi-schema/ident-with-escape.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/redefined-builtin.err
 create mode 100644 tests/qapi-schema/redefined-builtin.exit
 create mode 100644 tests/qapi-schema/redefined-builtin.json
 create mode 100644 tests/qapi-schema/redefined-builtin.out
 create mode 100644 tests/qapi-schema/redefined-command.err
 create mode 100644 tests/qapi-schema/redefined-command.exit
 create mode 100644 tests/qapi-schema/redefined-command.json
 create mode 100644 tests/qapi-schema/redefined-command.out
 create mode 100644 tests/qapi-schema/redefined-event.err
 create mode 100644 tests/qapi-schema/redefined-event.exit
 create mode 100644 tests/qapi-schema/redefined-event.json
 create mode 100644 tests/qapi-schema/redefined-event.out
 create mode 100644 tests/qapi-schema/redefined-type.err
 create mode 100644 tests/qapi-schema/redefined-type.exit
 create mode 100644 tests/qapi-schema/redefined-type.json
 create mode 100644 tests/qapi-schema/redefined-type.out
 create mode 100644 tests/qapi-schema/returns-alternate.err
 create mode 100644 tests/qapi-schema/returns-alternate.exit
 create mode 100644 tests/qapi-schema/returns-alternate.json
 create mode 100644 tests/qapi-schema/returns-alternate.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
 create mode 100644 tests/qapi-schema/returns-whitelist.err
 create mode 100644 tests/qapi-schema/returns-whitelist.exit
 create mode 100644 tests/qapi-schema/returns-whitelist.json
 create mode 100644 tests/qapi-schema/returns-whitelist.out
 create mode 100644 tests/qapi-schema/type-bypass-bad-gen.err
 create mode 100644 tests/qapi-schema/type-bypass-bad-gen.exit
 create mode 100644 tests/qapi-schema/type-bypass-bad-gen.json
 create mode 100644 tests/qapi-schema/type-bypass-bad-gen.out
 create mode 100644 tests/qapi-schema/type-bypass-no-gen.err
 create mode 100644 tests/qapi-schema/type-bypass-no-gen.exit
 create mode 100644 tests/qapi-schema/type-bypass-no-gen.json
 create mode 100644 tests/qapi-schema/type-bypass-no-gen.out
 create mode 100644 tests/qapi-schema/type-bypass.err
 create mode 100644 tests/qapi-schema/type-bypass.exit
 create mode 100644 tests/qapi-schema/type-bypass.json
 create mode 100644 tests/qapi-schema/type-bypass.out
 create mode 100644 tests/qapi-schema/union-bad-branch.err
 create mode 100644 tests/qapi-schema/union-bad-branch.exit
 create mode 100644 tests/qapi-schema/union-bad-branch.json
 create mode 100644 tests/qapi-schema/union-bad-branch.out
 create mode 100644 tests/qapi-schema/union-base-no-discriminator.err
 create mode 100644 tests/qapi-schema/union-base-no-discriminator.exit
 create mode 100644 tests/qapi-schema/union-base-no-discriminator.json
 create mode 100644 tests/qapi-schema/union-base-no-discriminator.out
 create mode 100644 tests/qapi-schema/union-max.err
 create mode 100644 tests/qapi-schema/union-max.exit
 create mode 100644 tests/qapi-schema/union-max.json
 create mode 100644 tests/qapi-schema/union-max.out
 create mode 100644 tests/qapi-schema/union-optional-branch.err
 create mode 100644 tests/qapi-schema/union-optional-branch.exit
 create mode 100644 tests/qapi-schema/union-optional-branch.json
 create mode 100644 tests/qapi-schema/union-optional-branch.out
 create mode 100644 tests/qapi-schema/union-unknown.err
 create mode 100644 tests/qapi-schema/union-unknown.exit
 create mode 100644 tests/qapi-schema/union-unknown.json
 create mode 100644 tests/qapi-schema/union-unknown.out
 create mode 100644 tests/qapi-schema/unknown-expr-key.err
 create mode 100644 tests/qapi-schema/unknown-expr-key.exit
 create mode 100644 tests/qapi-schema/unknown-expr-key.json
 create mode 100644 tests/qapi-schema/unknown-expr-key.out

-- 
2.1.0

^ permalink raw reply	[flat|nested] 72+ messages in thread

end of thread, other threads:[~2015-04-29 12:41 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-05  4:07 [Qemu-devel] [PATCH v6 00/36] drop qapi nested structs Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 01/36] qapi: Add copyright declaration on docs Eric Blake
2015-04-27 14:42   ` Markus Armbruster
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 02/36] qapi: Document type-safety considerations Eric Blake
2015-04-08 16:50   ` Eric Blake
2015-04-27 15:42   ` Markus Armbruster
2015-04-28 19:42   ` Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 03/36] qapi: Simplify builtin type handling Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 04/36] qapi: Fix generation of 'size' builtin type Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 05/36] qapi: Require ASCII in schema Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 06/36] qapi: Add some enum tests Eric Blake
2015-04-27 16:00   ` Markus Armbruster
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 07/36] qapi: Better error messages for bad enums Eric Blake
2015-04-28 23:08   ` Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 08/36] qapi: Add some union tests Eric Blake
2015-04-27 16:18   ` Markus Armbruster
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 09/36] qapi: Clean up test coverage of simple unions Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 10/36] qapi: Forbid base without discriminator in unions Eric Blake
2015-04-27 17:36   ` Markus Armbruster
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 11/36] qapi: Tighten checking of unions Eric Blake
2015-04-27 18:15   ` Markus Armbruster
2015-04-27 18:32     ` Eric Blake
2015-04-29  2:51       ` Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 12/36] qapi: Prepare for catching more semantic parse errors Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 13/36] qapi: Segregate anonymous unions into alternates in generator Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 14/36] qapi: Rename anonymous union type in test Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 15/36] qapi: Document new 'alternate' meta-type Eric Blake
2015-04-28  8:27   ` Markus Armbruster
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 16/36] qapi: Use 'alternate' to replace anonymous union Eric Blake
2015-04-28  8:41   ` Markus Armbruster
2015-04-28 17:29     ` Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 17/36] qapi: Add some expr tests Eric Blake
2015-04-28 11:01   ` Markus Armbruster
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 18/36] qapi: Better error messages for bad expressions Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 19/36] qapi: Add tests of redefined expressions Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 20/36] qapi: Better error messages for duplicated expressions Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 21/36] qapi: Allow true, false and null in schema json Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 22/36] qapi: Unify type bypass and add tests Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 23/36] qapi: Add some type check tests Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 24/36] qapi: More rigourous checking of types Eric Blake
2015-04-28 11:30   ` Markus Armbruster
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 25/36] qapi: Require valid names Eric Blake
2015-04-28 11:46   ` Markus Armbruster
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 26/36] qapi: Whitelist commands that don't return dictionary Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 27/36] qapi: More rigorous checking for type safety bypass Eric Blake
2015-04-27 17:02   ` Eric Blake
2015-04-05  4:07 ` [Qemu-devel] [PATCH v6 28/36] qapi: Prefer 'struct' over 'type' in generator Eric Blake
2015-04-28 12:04   ` Markus Armbruster
2015-04-05  4:08 ` [Qemu-devel] [PATCH v6 29/36] qapi: Document 'struct' metatype Eric Blake
2015-04-28 12:12   ` Markus Armbruster
2015-04-05  4:08 ` [Qemu-devel] [PATCH v6 30/36] qapi: Use 'struct' instead of 'type' in schema Eric Blake
2015-04-28 12:23   ` Markus Armbruster
2015-04-05  4:08 ` [Qemu-devel] [PATCH v6 31/36] qapi: Merge UserDefTwo and UserDefNested in tests Eric Blake
2015-04-28 12:28   ` Markus Armbruster
2015-04-05  4:08 ` [Qemu-devel] [PATCH v6 32/36] qapi: Drop tests for inline nested structs Eric Blake
2015-04-28 13:00   ` Markus Armbruster
2015-04-28 17:29     ` Eric Blake
2015-04-05  4:08 ` [Qemu-devel] [PATCH v6 33/36] qapi: Drop inline nested struct in query-version Eric Blake
2015-04-05  4:08 ` [Qemu-devel] [PATCH v6 34/36] qapi: Drop inline nested structs in query-pci Eric Blake
2015-04-05  4:08 ` [Qemu-devel] [PATCH v6 35/36] qapi: Drop support for inline nested types Eric Blake
2015-04-05  4:08 ` [Qemu-devel] [PATCH v6 36/36] qapi: Tweak doc references to QMP when QGA is also meant Eric Blake
2015-04-06 13:13 ` [Qemu-devel] [PATCH v6 00/36] drop qapi nested structs Eric Blake
2015-04-08  7:35   ` Alberto Garcia
2015-04-10 20:28 ` [Qemu-devel] [PATCH v6 37/36] qapi: Support (subset of) \u escapes in strings Eric Blake
2015-04-28 13:23   ` Markus Armbruster
2015-04-10 20:28 ` [Qemu-devel] [PATCH v6 38/36] qapi: Check for member name conflicts with a base class Eric Blake
2015-04-28 13:35   ` Markus Armbruster
2015-04-28 14:02 ` [Qemu-devel] [PATCH v6 00/36] drop qapi nested structs Markus Armbruster
2015-04-28 17:51   ` Eric Blake
2015-04-29  6:48     ` Markus Armbruster
2015-04-29 12:34       ` Eric Blake
2015-04-29 12:40         ` Luiz Capitulino

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.