diff mbox

[20/26] qapi: Fix to reject union command and event arguments

Message ID 55D232AB.2080004@redhat.com
State New
Headers show

Commit Message

Eric Blake Aug. 17, 2015, 7:14 p.m. UTC
On 08/04/2015 02:18 AM, Markus Armbruster wrote:
> A command's or event's 'data' must be a struct type, given either as a
> dictionary, or as struct type name.
> 
> Commit dd883c6 tightened the checking there, but not enough: we still
> accept 'union'.  Fix to reject it.
> 
> We may want to support union types there, but we'll have to extend
> qapi-commands.py and qapi-events.py for it.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  scripts/qapi.py                   | 4 ++--
>  tests/qapi-schema/args-union.err  | 1 +
>  tests/qapi-schema/args-union.exit | 2 +-
>  tests/qapi-schema/args-union.json | 2 +-
>  tests/qapi-schema/args-union.out  | 4 ----
>  5 files changed, 5 insertions(+), 8 deletions(-)

Our documentation is also wrong; you may want to squash this in:

Comments

Markus Armbruster Aug. 24, 2015, 11:17 a.m. UTC | #1
Eric Blake <eblake@redhat.com> writes:

> On 08/04/2015 02:18 AM, Markus Armbruster wrote:
>> A command's or event's 'data' must be a struct type, given either as a
>> dictionary, or as struct type name.
>> 
>> Commit dd883c6 tightened the checking there, but not enough: we still
>> accept 'union'.  Fix to reject it.
>> 
>> We may want to support union types there, but we'll have to extend
>> qapi-commands.py and qapi-events.py for it.
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  scripts/qapi.py                   | 4 ++--
>>  tests/qapi-schema/args-union.err  | 1 +
>>  tests/qapi-schema/args-union.exit | 2 +-
>>  tests/qapi-schema/args-union.json | 2 +-
>>  tests/qapi-schema/args-union.out  | 4 ----
>>  5 files changed, 5 insertions(+), 8 deletions(-)
>
> Our documentation is also wrong; you may want to squash this in:
>
> diff --git i/docs/qapi-code-gen.txt w/docs/qapi-code-gen.txt
> index 688a60c..4652a75 100644
> --- i/docs/qapi-code-gen.txt
> +++ w/docs/qapi-code-gen.txt
> @@ -408,10 +408,9 @@ Client JSON Protocol command exchange.
>  The 'data' argument maps to the "arguments" dictionary passed in as
>  part of a Client JSON Protocol command.  The 'data' member is optional
>  and defaults to {} (an empty dictionary).  If present, it must be the
> -string name of a complex type, a one-element array containing the name
> -of a complex type, or a dictionary that declares an anonymous type
> -with the same semantics as a 'struct' expression, with one exception
> -noted below when 'gen' is used.
> +string name of a complex type, or a dictionary that declares an
> +anonymous type with the same semantics as a 'struct' expression, with
> +one exception noted below when 'gen' is used.
>
>  The 'returns' member describes what will appear in the "return" field
>  of a Client JSON Protocol reply on successful completion of a command.

Will do, thanks!
diff mbox

Patch

diff --git i/docs/qapi-code-gen.txt w/docs/qapi-code-gen.txt
index 688a60c..4652a75 100644
--- i/docs/qapi-code-gen.txt
+++ w/docs/qapi-code-gen.txt
@@ -408,10 +408,9 @@  Client JSON Protocol command exchange.
 The 'data' argument maps to the "arguments" dictionary passed in as
 part of a Client JSON Protocol command.  The 'data' member is optional
 and defaults to {} (an empty dictionary).  If present, it must be the
-string name of a complex type, a one-element array containing the name
-of a complex type, or a dictionary that declares an anonymous type
-with the same semantics as a 'struct' expression, with one exception
-noted below when 'gen' is used.
+string name of a complex type, or a dictionary that declares an
+anonymous type with the same semantics as a 'struct' expression, with
+one exception noted below when 'gen' is used.

 The 'returns' member describes what will appear in the "return" field
 of a Client JSON Protocol reply on successful completion of a command.