From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: marcandre.lureau@redhat.com, eblake@redhat.com,
mdroth@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH v2 for-2.9 00/47] qapi: Put type information back into QMP documentation
Date: Wed, 15 Mar 2017 13:56:49 +0100 [thread overview]
Message-ID: <1489582656-31133-1-git-send-email-armbru@redhat.com> (raw)
I'm proposing this is 2.9 because it fixes a documentation regression.
It affects only documentation; generated C code is unchanged except
for the removal of trailing space in PATCH 46.
Based on my qapi-next branch, which contains Marc-André's PATCH 1/2.
v2:
* Straightforward rebase
* PATCH 02+05+06: Additional test cases, catch non-dictionary value [Eric],
document pragma's scope, R-by dropped
* PATCH 03: Explain lack of positive tests in commit message
[Marc-André]
* PATCH 08: Sort the part of .gitignore we touch [Eric]
* PATCH 14+42: pep8 style fix
* PATCH 15+32: Commit message touched up [Eric]
* PATCH 17: Back out unwanted comment paragraph refill in docs/ [Eric]
* PATCH 30: Another test case [Eric]
* PATCH 31: Catch symbol doc comment before include directive [Eric]
Marc-André's work to merge qmp-commands.txt and qmp-events.txt into
the QAPI schema and generate their replacements from the schema
(commit b6af8ea..56e8bdd) was a big step forward. As committed, it
also was a step back: the documentation lost information on JSON
types, because I didn't like Marc-André's patch to add it. He
reposted it for further review afterwards:
Subject: [PATCH 0/2] qapi2texi: add type information
Message-Id: <20170125130308.16104-1-marcandre.lureau@redhat.com>
https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg05432.html
His PATCH 1/2 is a straightforward cleanup. His PATCH 2/2 adds type
descriptions in a new formal language to the generated documentation.
Quoting the commit message:
Array types have the following syntax: type[]. Ex: str[].
- Struct, commands and events use the following members syntax:
{ 'member': type, ('foo': str), ... }
Optional members are under parentheses.
A structure with a base type will have 'BaseStruct +' prepended.
- Alternates use the following syntax:
[ 'foo': type, 'bar': type, ... ]
- Simple unions use the following syntax:
{ 'type': str, 'data': 'type' = [ 'foo': type, 'bar': type... ] }
- Flat unions use the following syntax:
BaseStruct + 'discriminator' = [ 'foo': type, 'bar': type... ]
End quote. Looks like this in generated documentation:
-- Event: VNC_CONNECTED {'server': VncServerInfo, 'client':
VncBasicInfo}
Emitted when a VNC client establishes a connection
''server''
server information
''client''
client information
Note: This event is emitted before any authentication takes place,
thus the authentication ID is not provided
[...]
-- Struct: VncServerInfo VncBasicInfo + {('auth': str)}
The network connection information for server
''auth'' (optional)
authentication method used for the plain (non-websocket) VNC
server
Since: 2.1
-- Simple Union: SocketAddress { 'type': str, 'data': 'type' = ['inet':
InetSocketAddress, 'unix': UnixSocketAddress, 'vsock':
VsockSocketAddress, 'fd': String] }
Captures the address of a socket, which could also be a named file
descriptor
Since: 1.3
Here's my counter-proposal: instead of inventing a formal language,
fix the natural language documentation to actually mention *all*
members, and add type information in a plain, easy-to-understand way.
Looks like this:
-- Event: VNC_CONNECTED
Emitted when a VNC client establishes a connection
Arguments:
'server: VncServerInfo'
server information
'client: VncBasicInfo'
client information
Note: This event is emitted before any authentication takes place,
thus the authentication ID is not provided
[...]
-- Object: VncServerInfo
The network connection information for server
Members:
'auth: string' (optional)
authentication method used for the plain (non-websocket) VNC
server
The members of 'VncBasicInfo'
Since: 2.1
-- Object: SocketAddress
Captures the address of a socket, which could also be a named file
descriptor
Members:
'type'
One of "inet", "unix", "vsock", "fd"
'data: InetSocketAddress' when 'type' is "inet"
'data: UnixSocketAddress' when 'type' is "unix"
'data: VsockSocketAddress' when 'type' is "vsock"
'data: String' when 'type' is "fd"
Since: 1.3
Additionally, my series fixes a number of bugs and cleans up along the
way. In particular, it converts qapi2texi.py from parse trees to the
visitor interface the other generators use.
Future generated documentation work includes eliding types that aren't
visible in QMP (like introspection does), and making uses of type
names links in HTML.
Markus Armbruster (47):
qapi: Factor QAPISchemaParser._include() out of .__init__()
qapi: Make doc comments optional where we don't need them
qapi: Back out doc comments added just to please qapi.py
docs/qapi-code-gen.txt: Drop confusing reference to 'gen'
qapi: Have each QAPI schema declare its returns white-list
qapi: Have each QAPI schema declare its name rule violations
qapi: Clean up build of generated documentation
tests/qapi-schema: Cover empty union base
qapi: Fix to reject empty union base gracefully
qapi2texi: Fix up output around #optional
qapi: Avoid unwanted blank lines in QAPIDoc
qapi/rocker: Fix up doc comment notes on optional members
qapi: Fix QAPISchemaEnumType.is_implicit() for 'QType'
qapi: Prepare for requiring more complete documentation
qapi: Conjure up QAPIDoc.ArgSection for undocumented members
qapi2texi: Convert to QAPISchemaVisitor
qapi: The #optional tag is redundant, drop
qapi: Use raw strings for regular expressions consistently
qapi: Prefer single-quoted strings more consistently
qapi2texi: Plainer enum value and member name formatting
qapi2texi: Present the table of members more clearly
qapi2texi: Explain enum value undocumentedness more clearly
qapi2texi: Don't hide undocumented members and arguments
qapi2texi: Implement boxed argument documentation
qapi2texi: Include member type in generated documentation
qapi2texi: Generate reference to base type members
qapi2texi: Generate documentation for variant members
qapi2texi: Generate descriptions for simple union tags
qapi2texi: Use category "Object" for all object types
tests/qapi-schema: Improve doc / expression mismatch coverage
qapi: Fix detection of doc / expression mismatch
qapi: Move detection of doc / expression name mismatch
qapi: Improve error message on @NAME: in free-form doc
qapi: Move empty doc section checking to doc parser
tests/qapi-schema: Rename doc-bad-args to doc-bad-command-arg
tests/qapi-schema: Improve coverage of bogus member docs
qapi: Fix detection of bogus member documentation
qapi: Eliminate check_docs() and drop QAPIDoc.expr
qapi: Drop unused variable events
qapi: Simplify what gets stored in enum_types
qapi: Factor add_name() calls out of the meta conditional
qapi: enum_types is a list used like a dict, make it one
qapi: struct_types is a list used like a dict, make it one
qapi: union_types is a list used like a dict, make it one
qapi: Drop unused .check_clash() parameter schema
qapi: Make pylint a bit happier
qapi: Fix a misleading parser error message
.gitignore | 10 +-
Makefile | 27 +-
docs/qapi-code-gen.txt | 80 ++-
docs/qemu-qmp-ref.texi | 2 +-
docs/writing-qmp-commands.txt | 4 +-
qapi-schema.json | 403 +++++++------
qapi/block-core.json | 422 +++++++-------
qapi/block.json | 8 +-
qapi/crypto.json | 22 +-
qapi/event.json | 10 +-
qapi/introspect.json | 6 +-
qapi/rocker.json | 88 +--
qapi/trace.json | 6 +-
qga/qapi-schema.json | 55 +-
rules.mak | 2 +-
scripts/qapi-commands.py | 6 +-
scripts/qapi-event.py | 2 +-
scripts/qapi-introspect.py | 4 +-
scripts/qapi-types.py | 4 +-
scripts/qapi-visit.py | 5 +-
scripts/qapi.py | 637 ++++++++++-----------
scripts/qapi2texi.py | 298 +++++-----
tests/Makefile.include | 16 +-
tests/qapi-schema/alternate-any.err | 2 +-
tests/qapi-schema/alternate-any.json | 4 -
tests/qapi-schema/alternate-array.err | 2 +-
tests/qapi-schema/alternate-array.json | 7 -
tests/qapi-schema/alternate-base.err | 2 +-
tests/qapi-schema/alternate-base.json | 7 -
tests/qapi-schema/alternate-clash.err | 2 +-
tests/qapi-schema/alternate-clash.json | 4 -
tests/qapi-schema/alternate-conflict-dict.err | 2 +-
tests/qapi-schema/alternate-conflict-dict.json | 10 -
tests/qapi-schema/alternate-conflict-string.err | 2 +-
tests/qapi-schema/alternate-conflict-string.json | 7 -
tests/qapi-schema/alternate-empty.err | 2 +-
tests/qapi-schema/alternate-empty.json | 4 -
tests/qapi-schema/alternate-nested.err | 2 +-
tests/qapi-schema/alternate-nested.json | 7 -
tests/qapi-schema/alternate-unknown.err | 2 +-
tests/qapi-schema/alternate-unknown.json | 4 -
tests/qapi-schema/args-alternate.err | 2 +-
tests/qapi-schema/args-alternate.json | 8 -
tests/qapi-schema/args-any.err | 2 +-
tests/qapi-schema/args-any.json | 4 -
tests/qapi-schema/args-array-empty.err | 2 +-
tests/qapi-schema/args-array-empty.json | 4 -
tests/qapi-schema/args-array-unknown.err | 2 +-
tests/qapi-schema/args-array-unknown.json | 4 -
tests/qapi-schema/args-bad-boxed.err | 2 +-
tests/qapi-schema/args-bad-boxed.json | 4 -
tests/qapi-schema/args-boxed-anon.err | 2 +-
tests/qapi-schema/args-boxed-anon.json | 4 -
tests/qapi-schema/args-boxed-empty.err | 2 +-
tests/qapi-schema/args-boxed-empty.json | 8 -
tests/qapi-schema/args-boxed-string.err | 2 +-
tests/qapi-schema/args-boxed-string.json | 4 -
tests/qapi-schema/args-int.err | 2 +-
tests/qapi-schema/args-int.json | 4 -
tests/qapi-schema/args-invalid.err | 2 +-
tests/qapi-schema/args-invalid.json | 3 -
tests/qapi-schema/args-member-array-bad.err | 2 +-
tests/qapi-schema/args-member-array-bad.json | 4 -
tests/qapi-schema/args-member-case.err | 2 +-
tests/qapi-schema/args-member-case.json | 4 -
tests/qapi-schema/args-member-unknown.err | 2 +-
tests/qapi-schema/args-member-unknown.json | 4 -
tests/qapi-schema/args-name-clash.err | 2 +-
tests/qapi-schema/args-name-clash.json | 4 -
tests/qapi-schema/args-union.err | 2 +-
tests/qapi-schema/args-union.json | 7 -
tests/qapi-schema/args-unknown.err | 2 +-
tests/qapi-schema/args-unknown.json | 4 -
tests/qapi-schema/bad-base.err | 2 +-
tests/qapi-schema/bad-base.json | 7 -
tests/qapi-schema/bad-data.err | 2 +-
tests/qapi-schema/bad-data.json | 4 -
tests/qapi-schema/bad-ident.err | 2 +-
tests/qapi-schema/bad-ident.json | 4 -
tests/qapi-schema/bad-type-bool.err | 2 +-
tests/qapi-schema/bad-type-bool.json | 4 -
tests/qapi-schema/bad-type-dict.err | 2 +-
tests/qapi-schema/bad-type-dict.json | 4 -
tests/qapi-schema/base-cycle-direct.err | 2 +-
tests/qapi-schema/base-cycle-direct.json | 4 -
tests/qapi-schema/base-cycle-indirect.err | 2 +-
tests/qapi-schema/base-cycle-indirect.json | 7 -
tests/qapi-schema/command-int.err | 2 +-
tests/qapi-schema/command-int.json | 4 -
tests/qapi-schema/comments.json | 4 -
tests/qapi-schema/comments.out | 1 -
tests/qapi-schema/doc-bad-alternate-member.err | 1 +
...optional.exit => doc-bad-alternate-member.exit} | 0
tests/qapi-schema/doc-bad-alternate-member.json | 9 +
...c-optional.out => doc-bad-alternate-member.out} | 0
tests/qapi-schema/doc-bad-args.err | 1 -
tests/qapi-schema/doc-bad-command-arg.err | 1 +
...{doc-bad-args.exit => doc-bad-command-arg.exit} | 0
...{doc-bad-args.json => doc-bad-command-arg.json} | 0
.../{doc-bad-args.out => doc-bad-command-arg.out} | 0
tests/qapi-schema/doc-bad-symbol.err | 2 +-
tests/qapi-schema/doc-bad-union-member.err | 1 +
tests/qapi-schema/doc-bad-union-member.exit | 1 +
tests/qapi-schema/doc-bad-union-member.json | 19 +
tests/qapi-schema/doc-bad-union-member.out | 0
tests/qapi-schema/doc-before-include.err | 1 +
tests/qapi-schema/doc-before-include.exit | 1 +
tests/qapi-schema/doc-before-include.json | 7 +
tests/qapi-schema/doc-before-include.out | 0
tests/qapi-schema/doc-before-pragma.err | 1 +
tests/qapi-schema/doc-before-pragma.exit | 1 +
tests/qapi-schema/doc-before-pragma.json | 7 +
tests/qapi-schema/doc-before-pragma.out | 0
tests/qapi-schema/doc-empty-section.err | 2 +-
tests/qapi-schema/doc-invalid-section.err | 2 +-
tests/qapi-schema/doc-missing-expr.err | 2 +-
tests/qapi-schema/doc-missing.err | 1 +
tests/qapi-schema/doc-missing.exit | 1 +
tests/qapi-schema/doc-missing.json | 5 +
tests/qapi-schema/doc-missing.out | 0
tests/qapi-schema/doc-no-symbol.err | 1 +
tests/qapi-schema/doc-no-symbol.exit | 1 +
tests/qapi-schema/doc-no-symbol.json | 6 +
tests/qapi-schema/doc-no-symbol.out | 0
tests/qapi-schema/doc-optional.err | 1 -
tests/qapi-schema/doc-optional.json | 7 -
tests/qapi-schema/double-type.err | 2 +-
tests/qapi-schema/double-type.json | 4 -
tests/qapi-schema/enum-bad-name.err | 2 +-
tests/qapi-schema/enum-bad-name.json | 4 -
tests/qapi-schema/enum-bad-prefix.err | 2 +-
tests/qapi-schema/enum-bad-prefix.json | 4 -
tests/qapi-schema/enum-clash-member.err | 2 +-
tests/qapi-schema/enum-clash-member.json | 4 -
tests/qapi-schema/enum-dict-member.err | 2 +-
tests/qapi-schema/enum-dict-member.json | 4 -
tests/qapi-schema/enum-member-case.err | 2 +-
tests/qapi-schema/enum-member-case.json | 8 +-
tests/qapi-schema/enum-missing-data.err | 2 +-
tests/qapi-schema/enum-missing-data.json | 4 -
tests/qapi-schema/enum-wrong-data.err | 2 +-
tests/qapi-schema/enum-wrong-data.json | 4 -
tests/qapi-schema/event-boxed-empty.err | 2 +-
tests/qapi-schema/event-boxed-empty.json | 4 -
tests/qapi-schema/event-case.json | 4 -
tests/qapi-schema/event-case.out | 1 -
tests/qapi-schema/event-nest-struct.err | 2 +-
tests/qapi-schema/event-nest-struct.json | 4 -
tests/qapi-schema/flat-union-array-branch.err | 2 +-
tests/qapi-schema/flat-union-array-branch.json | 12 -
tests/qapi-schema/flat-union-bad-base.err | 2 +-
tests/qapi-schema/flat-union-bad-base.json | 13 -
tests/qapi-schema/flat-union-bad-discriminator.err | 2 +-
.../qapi-schema/flat-union-bad-discriminator.json | 16 -
tests/qapi-schema/flat-union-base-any.err | 2 +-
tests/qapi-schema/flat-union-base-any.json | 13 -
tests/qapi-schema/flat-union-base-union.err | 2 +-
tests/qapi-schema/flat-union-base-union.json | 16 -
tests/qapi-schema/flat-union-clash-member.err | 2 +-
tests/qapi-schema/flat-union-clash-member.json | 16 -
tests/qapi-schema/flat-union-empty.err | 2 +-
tests/qapi-schema/flat-union-empty.json | 10 -
tests/qapi-schema/flat-union-incomplete-branch.err | 2 +-
.../qapi-schema/flat-union-incomplete-branch.json | 10 -
tests/qapi-schema/flat-union-inline.err | 2 +-
tests/qapi-schema/flat-union-inline.json | 10 -
tests/qapi-schema/flat-union-int-branch.err | 2 +-
tests/qapi-schema/flat-union-int-branch.json | 13 -
.../qapi-schema/flat-union-invalid-branch-key.err | 2 +-
.../qapi-schema/flat-union-invalid-branch-key.json | 15 -
.../flat-union-invalid-discriminator.err | 2 +-
.../flat-union-invalid-discriminator.json | 15 -
tests/qapi-schema/flat-union-no-base.err | 2 +-
tests/qapi-schema/flat-union-no-base.json | 13 -
.../flat-union-optional-discriminator.err | 2 +-
.../flat-union-optional-discriminator.json | 13 -
.../flat-union-string-discriminator.err | 2 +-
.../flat-union-string-discriminator.json | 15 -
tests/qapi-schema/ident-with-escape.json | 4 -
tests/qapi-schema/ident-with-escape.out | 1 -
tests/qapi-schema/include-extra-junk.err | 1 +
tests/qapi-schema/include-extra-junk.exit | 1 +
tests/qapi-schema/include-extra-junk.json | 3 +
tests/qapi-schema/include-extra-junk.out | 0
tests/qapi-schema/include-relpath-sub.json | 3 -
tests/qapi-schema/include-relpath.out | 1 -
tests/qapi-schema/include-repetition.out | 1 -
tests/qapi-schema/include-simple-sub.json | 3 -
tests/qapi-schema/include-simple.out | 1 -
tests/qapi-schema/indented-expr.json | 6 -
tests/qapi-schema/indented-expr.out | 2 -
tests/qapi-schema/missing-type.err | 2 +-
tests/qapi-schema/missing-type.json | 4 -
tests/qapi-schema/nested-struct-data.err | 2 +-
tests/qapi-schema/nested-struct-data.json | 4 -
tests/qapi-schema/pragma-doc-required-crap.err | 1 +
tests/qapi-schema/pragma-doc-required-crap.exit | 1 +
tests/qapi-schema/pragma-doc-required-crap.json | 3 +
tests/qapi-schema/pragma-doc-required-crap.out | 0
tests/qapi-schema/pragma-extra-junk.err | 1 +
tests/qapi-schema/pragma-extra-junk.exit | 1 +
tests/qapi-schema/pragma-extra-junk.json | 3 +
tests/qapi-schema/pragma-extra-junk.out | 0
.../pragma-name-case-whitelist-crap.err | 1 +
.../pragma-name-case-whitelist-crap.exit | 1 +
.../pragma-name-case-whitelist-crap.json | 3 +
.../pragma-name-case-whitelist-crap.out | 0
tests/qapi-schema/pragma-non-dict.err | 1 +
tests/qapi-schema/pragma-non-dict.exit | 1 +
tests/qapi-schema/pragma-non-dict.json | 3 +
tests/qapi-schema/pragma-non-dict.out | 0
.../qapi-schema/pragma-returns-whitelist-crap.err | 1 +
.../qapi-schema/pragma-returns-whitelist-crap.exit | 1 +
.../qapi-schema/pragma-returns-whitelist-crap.json | 3 +
.../qapi-schema/pragma-returns-whitelist-crap.out | 0
tests/qapi-schema/qapi-schema-test.json | 218 +------
tests/qapi-schema/qapi-schema-test.out | 130 -----
tests/qapi-schema/redefined-builtin.err | 2 +-
tests/qapi-schema/redefined-builtin.json | 4 -
tests/qapi-schema/redefined-command.err | 2 +-
tests/qapi-schema/redefined-command.json | 7 -
tests/qapi-schema/redefined-event.err | 2 +-
tests/qapi-schema/redefined-event.json | 7 -
tests/qapi-schema/redefined-type.err | 2 +-
tests/qapi-schema/redefined-type.json | 7 -
tests/qapi-schema/reserved-command-q.err | 2 +-
tests/qapi-schema/reserved-command-q.json | 7 -
tests/qapi-schema/reserved-enum-q.err | 2 +-
tests/qapi-schema/reserved-enum-q.json | 4 -
tests/qapi-schema/reserved-member-has.err | 2 +-
tests/qapi-schema/reserved-member-has.json | 4 -
tests/qapi-schema/reserved-member-q.err | 2 +-
tests/qapi-schema/reserved-member-q.json | 4 -
tests/qapi-schema/reserved-member-u.err | 2 +-
tests/qapi-schema/reserved-member-u.json | 4 -
tests/qapi-schema/reserved-member-underscore.err | 2 +-
tests/qapi-schema/reserved-member-underscore.json | 4 -
tests/qapi-schema/reserved-type-kind.err | 2 +-
tests/qapi-schema/reserved-type-kind.json | 4 -
tests/qapi-schema/reserved-type-list.err | 2 +-
tests/qapi-schema/reserved-type-list.json | 4 -
tests/qapi-schema/returns-alternate.err | 2 +-
tests/qapi-schema/returns-alternate.json | 7 -
tests/qapi-schema/returns-array-bad.err | 2 +-
tests/qapi-schema/returns-array-bad.json | 4 -
tests/qapi-schema/returns-dict.err | 2 +-
tests/qapi-schema/returns-dict.json | 4 -
tests/qapi-schema/returns-unknown.err | 2 +-
tests/qapi-schema/returns-unknown.json | 4 -
tests/qapi-schema/returns-whitelist.err | 2 +-
tests/qapi-schema/returns-whitelist.json | 18 +-
tests/qapi-schema/struct-base-clash-deep.err | 2 +-
tests/qapi-schema/struct-base-clash-deep.json | 10 -
tests/qapi-schema/struct-base-clash.err | 2 +-
tests/qapi-schema/struct-base-clash.json | 7 -
tests/qapi-schema/struct-data-invalid.err | 2 +-
tests/qapi-schema/struct-data-invalid.json | 3 -
tests/qapi-schema/struct-member-invalid.err | 2 +-
tests/qapi-schema/struct-member-invalid.json | 3 -
tests/qapi-schema/test-qapi.py | 14 -
tests/qapi-schema/trailing-comma-list.err | 2 +-
tests/qapi-schema/type-bypass-bad-gen.err | 2 +-
tests/qapi-schema/type-bypass-bad-gen.json | 4 -
tests/qapi-schema/unicode-str.err | 2 +-
tests/qapi-schema/unicode-str.json | 4 -
tests/qapi-schema/union-base-empty.err | 1 +
tests/qapi-schema/union-base-empty.exit | 1 +
tests/qapi-schema/union-base-empty.json | 9 +
tests/qapi-schema/union-base-empty.out | 0
tests/qapi-schema/union-base-no-discriminator.err | 2 +-
tests/qapi-schema/union-base-no-discriminator.json | 12 -
tests/qapi-schema/union-branch-case.err | 2 +-
tests/qapi-schema/union-branch-case.json | 4 -
tests/qapi-schema/union-clash-branches.err | 2 +-
tests/qapi-schema/union-clash-branches.json | 4 -
tests/qapi-schema/union-empty.err | 2 +-
tests/qapi-schema/union-empty.json | 4 -
tests/qapi-schema/union-invalid-base.err | 2 +-
tests/qapi-schema/union-invalid-base.json | 10 -
tests/qapi-schema/union-optional-branch.err | 2 +-
tests/qapi-schema/union-optional-branch.json | 4 -
tests/qapi-schema/union-unknown.err | 2 +-
tests/qapi-schema/union-unknown.json | 4 -
tests/qapi-schema/unknown-escape.err | 2 +-
tests/qapi-schema/unknown-escape.json | 4 -
tests/qapi-schema/unknown-expr-key.err | 2 +-
tests/qapi-schema/unknown-expr-key.json | 4 -
287 files changed, 1312 insertions(+), 2104 deletions(-)
create mode 100644 tests/qapi-schema/doc-bad-alternate-member.err
rename tests/qapi-schema/{doc-optional.exit => doc-bad-alternate-member.exit} (100%)
create mode 100644 tests/qapi-schema/doc-bad-alternate-member.json
rename tests/qapi-schema/{doc-optional.out => doc-bad-alternate-member.out} (100%)
delete mode 100644 tests/qapi-schema/doc-bad-args.err
create mode 100644 tests/qapi-schema/doc-bad-command-arg.err
rename tests/qapi-schema/{doc-bad-args.exit => doc-bad-command-arg.exit} (100%)
rename tests/qapi-schema/{doc-bad-args.json => doc-bad-command-arg.json} (100%)
rename tests/qapi-schema/{doc-bad-args.out => doc-bad-command-arg.out} (100%)
create mode 100644 tests/qapi-schema/doc-bad-union-member.err
create mode 100644 tests/qapi-schema/doc-bad-union-member.exit
create mode 100644 tests/qapi-schema/doc-bad-union-member.json
create mode 100644 tests/qapi-schema/doc-bad-union-member.out
create mode 100644 tests/qapi-schema/doc-before-include.err
create mode 100644 tests/qapi-schema/doc-before-include.exit
create mode 100644 tests/qapi-schema/doc-before-include.json
create mode 100644 tests/qapi-schema/doc-before-include.out
create mode 100644 tests/qapi-schema/doc-before-pragma.err
create mode 100644 tests/qapi-schema/doc-before-pragma.exit
create mode 100644 tests/qapi-schema/doc-before-pragma.json
create mode 100644 tests/qapi-schema/doc-before-pragma.out
create mode 100644 tests/qapi-schema/doc-missing.err
create mode 100644 tests/qapi-schema/doc-missing.exit
create mode 100644 tests/qapi-schema/doc-missing.json
create mode 100644 tests/qapi-schema/doc-missing.out
create mode 100644 tests/qapi-schema/doc-no-symbol.err
create mode 100644 tests/qapi-schema/doc-no-symbol.exit
create mode 100644 tests/qapi-schema/doc-no-symbol.json
create mode 100644 tests/qapi-schema/doc-no-symbol.out
delete mode 100644 tests/qapi-schema/doc-optional.err
delete mode 100644 tests/qapi-schema/doc-optional.json
create mode 100644 tests/qapi-schema/include-extra-junk.err
create mode 100644 tests/qapi-schema/include-extra-junk.exit
create mode 100644 tests/qapi-schema/include-extra-junk.json
create mode 100644 tests/qapi-schema/include-extra-junk.out
create mode 100644 tests/qapi-schema/pragma-doc-required-crap.err
create mode 100644 tests/qapi-schema/pragma-doc-required-crap.exit
create mode 100644 tests/qapi-schema/pragma-doc-required-crap.json
create mode 100644 tests/qapi-schema/pragma-doc-required-crap.out
create mode 100644 tests/qapi-schema/pragma-extra-junk.err
create mode 100644 tests/qapi-schema/pragma-extra-junk.exit
create mode 100644 tests/qapi-schema/pragma-extra-junk.json
create mode 100644 tests/qapi-schema/pragma-extra-junk.out
create mode 100644 tests/qapi-schema/pragma-name-case-whitelist-crap.err
create mode 100644 tests/qapi-schema/pragma-name-case-whitelist-crap.exit
create mode 100644 tests/qapi-schema/pragma-name-case-whitelist-crap.json
create mode 100644 tests/qapi-schema/pragma-name-case-whitelist-crap.out
create mode 100644 tests/qapi-schema/pragma-non-dict.err
create mode 100644 tests/qapi-schema/pragma-non-dict.exit
create mode 100644 tests/qapi-schema/pragma-non-dict.json
create mode 100644 tests/qapi-schema/pragma-non-dict.out
create mode 100644 tests/qapi-schema/pragma-returns-whitelist-crap.err
create mode 100644 tests/qapi-schema/pragma-returns-whitelist-crap.exit
create mode 100644 tests/qapi-schema/pragma-returns-whitelist-crap.json
create mode 100644 tests/qapi-schema/pragma-returns-whitelist-crap.out
create mode 100644 tests/qapi-schema/union-base-empty.err
create mode 100644 tests/qapi-schema/union-base-empty.exit
create mode 100644 tests/qapi-schema/union-base-empty.json
create mode 100644 tests/qapi-schema/union-base-empty.out
--
2.7.4
next reply other threads:[~2017-03-15 12:57 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-15 12:56 Markus Armbruster [this message]
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 01/47] qapi: Factor QAPISchemaParser._include() out of .__init__() Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 02/47] qapi: Make doc comments optional where we don't need them Markus Armbruster
2017-03-15 14:25 ` Eric Blake
2017-03-15 15:13 ` Markus Armbruster
2017-03-15 15:19 ` Eric Blake
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 03/47] qapi: Back out doc comments added just to please qapi.py Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 04/47] docs/qapi-code-gen.txt: Drop confusing reference to 'gen' Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 05/47] qapi: Have each QAPI schema declare its returns white-list Markus Armbruster
2017-03-15 14:33 ` Eric Blake
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 06/47] qapi: Have each QAPI schema declare its name rule violations Markus Armbruster
2017-03-15 14:53 ` Eric Blake
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 07/47] qapi: Clean up build of generated documentation Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 08/47] tests/qapi-schema: Cover empty union base Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 09/47] qapi: Fix to reject empty union base gracefully Markus Armbruster
2017-03-15 12:56 ` [Qemu-devel] [PATCH v2 for-2.9 10/47] qapi2texi: Fix up output around #optional Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 11/47] qapi: Avoid unwanted blank lines in QAPIDoc Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 12/47] qapi/rocker: Fix up doc comment notes on optional members Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 13/47] qapi: Fix QAPISchemaEnumType.is_implicit() for 'QType' Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 14/47] qapi: Prepare for requiring more complete documentation Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 15/47] qapi: Conjure up QAPIDoc.ArgSection for undocumented members Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 16/47] qapi2texi: Convert to QAPISchemaVisitor Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 17/47] qapi: The #optional tag is redundant, drop Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 18/47] qapi: Use raw strings for regular expressions consistently Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 19/47] qapi: Prefer single-quoted strings more consistently Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 20/47] qapi2texi: Plainer enum value and member name formatting Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 21/47] qapi2texi: Present the table of members more clearly Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 22/47] qapi2texi: Explain enum value undocumentedness " Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 23/47] qapi2texi: Don't hide undocumented members and arguments Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 24/47] qapi2texi: Implement boxed argument documentation Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 25/47] qapi2texi: Include member type in generated documentation Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 26/47] qapi2texi: Generate reference to base type members Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 27/47] qapi2texi: Generate documentation for variant members Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 28/47] qapi2texi: Generate descriptions for simple union tags Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 29/47] qapi2texi: Use category "Object" for all object types Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 30/47] tests/qapi-schema: Improve doc / expression mismatch coverage Markus Armbruster
2017-03-15 14:59 ` Eric Blake
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 31/47] qapi: Fix detection of doc / expression mismatch Markus Armbruster
2017-03-15 15:01 ` Eric Blake
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 32/47] qapi: Move detection of doc / expression name mismatch Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 33/47] qapi: Improve error message on @NAME: in free-form doc Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 34/47] qapi: Move empty doc section checking to doc parser Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 35/47] tests/qapi-schema: Rename doc-bad-args to doc-bad-command-arg Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 36/47] tests/qapi-schema: Improve coverage of bogus member docs Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 37/47] qapi: Fix detection of bogus member documentation Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 38/47] qapi: Eliminate check_docs() and drop QAPIDoc.expr Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 39/47] qapi: Drop unused variable events Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 40/47] qapi: Simplify what gets stored in enum_types Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 41/47] qapi: Factor add_name() calls out of the meta conditional Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 42/47] qapi: enum_types is a list used like a dict, make it one Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 43/47] qapi: struct_types " Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 44/47] qapi: union_types " Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 45/47] qapi: Drop unused .check_clash() parameter schema Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 46/47] qapi: Make pylint a bit happier Markus Armbruster
2017-03-15 12:57 ` [Qemu-devel] [PATCH v2 for-2.9 47/47] qapi: Fix a misleading parser error message Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1489582656-31133-1-git-send-email-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).