qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 2546be: qmp-dispatch: Use CommandNotFound err


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 2546be: qmp-dispatch: Use CommandNotFound error for disabl...
Date: Tue, 01 Oct 2019 05:13:07 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 2546be1c85913da46fe4fb15fefdcbfad026a7df
      
https://github.com/qemu/qemu/commit/2546be1c85913da46fe4fb15fefdcbfad026a7df
  Author: Michal Privoznik <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M qapi/qmp-dispatch.c
    M tests/test-qga.c

  Log Message:
  -----------
  qmp-dispatch: Use CommandNotFound error for disabled commands

If a command is disabled an error is reported.  But due to usage of
error_setg() the class of the error is GenericError which does not
help callers in distinguishing this case from a case where a qmp
command fails regularly due to other reasons.

We used to use class CommandDisabled until the great error
simplification (commit de253f1491 for QMP and commit 93b91c59db for
qemu-ga, both v1.2.0).

Use CommandNotFound error class, which is close enough.

Signed-off-by: Michal Privoznik <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
[Test update squashed in, commit message tweaked]
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: 0ca7b11709b8e81e5e8f28245b5b594b597b062b
      
https://github.com/qemu/qemu/commit/0ca7b11709b8e81e5e8f28245b5b594b597b062b
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py

  Log Message:
  -----------
  qapi: Tighten QAPISchemaFOO.check() assertions

When we introduced the QAPISchema intermediate representation (commit
ac88219a6c7), we took a shortcut: we left check_exprs() & friends
alone instead of moving semantic checks into the
QAPISchemaFOO.check().  check_exprs() still checks and reports errors,
and the .check() assert check_exprs() did the job.  There are a few
gaps, though.

QAPISchemaArrayType.check() neglects to assert the element type is not
an array.  Add the assertion.

QAPISchemaObjectTypeVariants.check() neglects to assert the tag member
is not optional.  Add the assertion.

It neglects to assert the tag member is not conditional.  Add the
assertion.

It neglects to assert we actually have variants.  Add the assertion.

It asserts the variants are object types, but neglects to assert they
don't have variants.  Tighten the assertion.

QAPISchemaObjectTypeVariants.check_clash() has the same issue.
However, it can run only after .check().  Delete the assertion instead
of tightening it.

QAPISchemaAlternateType.check() neglects to assert the branch types
don't conflict.  Fixing that isn't trivial, so add just a TODO comment
for now.  It'll be resolved later in this series.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 57608a5299064f7219d00447160103946c796436
      
https://github.com/qemu/qemu/commit/57608a5299064f7219d00447160103946c796436
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py

  Log Message:
  -----------
  qapi: Rename .owner to .defined_in

QAPISchemaMember.owner is the name of the defining entity.  That's a
confusing name when an object type inherits members from a base type.
Rename it to .defined_in.  Rename .set_owner() and ._pretty_owner() to
match.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 19e950d9d47d3efe4c8d5c6c872a53889a54363c
      
https://github.com/qemu/qemu/commit/19e950d9d47d3efe4c8d5c6c872a53889a54363c
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py

  Log Message:
  -----------
  qapi: New QAPISourceInfo, replacing dict

We track source locations with a dict of the form

    {'file': FNAME, 'line': LINENO, 'parent': PARENT}

where PARENT is None for the main file, and the include directive's
source location for included files.

This is serviceable enough, but the next commit will add information,
and that's going to come out cleaner if we turn this into a class.  So
do that.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 7be6c511943613c60b3e5b640e09bdc916be3b65
      
https://github.com/qemu/qemu/commit/7be6c511943613c60b3e5b640e09bdc916be3b65
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/alternate-any.err
    M tests/qapi-schema/alternate-array.err
    M tests/qapi-schema/alternate-branch-if-invalid.err
    M tests/qapi-schema/alternate-clash.err
    M tests/qapi-schema/alternate-conflict-bool-string.err
    M tests/qapi-schema/alternate-conflict-dict.err
    M tests/qapi-schema/alternate-conflict-enum-bool.err
    M tests/qapi-schema/alternate-conflict-enum-int.err
    M tests/qapi-schema/alternate-conflict-num-string.err
    M tests/qapi-schema/alternate-conflict-string.err
    M tests/qapi-schema/alternate-empty.err
    M tests/qapi-schema/alternate-invalid-dict.err
    M tests/qapi-schema/alternate-nested.err
    M tests/qapi-schema/alternate-unknown.err
    M tests/qapi-schema/args-alternate.err
    M tests/qapi-schema/args-any.err
    M tests/qapi-schema/args-array-empty.err
    M tests/qapi-schema/args-array-unknown.err
    M tests/qapi-schema/args-boxed-anon.err
    M tests/qapi-schema/args-boxed-string.err
    M tests/qapi-schema/args-int.err
    M tests/qapi-schema/args-invalid.err
    M tests/qapi-schema/args-member-array-bad.err
    M tests/qapi-schema/args-member-case.err
    M tests/qapi-schema/args-member-unknown.err
    M tests/qapi-schema/args-name-clash.err
    M tests/qapi-schema/args-union.err
    M tests/qapi-schema/args-unknown.err
    M tests/qapi-schema/bad-base.err
    M tests/qapi-schema/bad-data.err
    M tests/qapi-schema/base-cycle-direct.err
    M tests/qapi-schema/base-cycle-indirect.err
    M tests/qapi-schema/doc-bad-symbol.err
    M tests/qapi-schema/enum-bad-member.err
    M tests/qapi-schema/enum-bad-name.err
    M tests/qapi-schema/enum-bad-prefix.err
    M tests/qapi-schema/enum-clash-member.err
    M tests/qapi-schema/enum-dict-member-unknown.err
    M tests/qapi-schema/enum-if-invalid.err
    M tests/qapi-schema/enum-member-case.err
    M tests/qapi-schema/enum-wrong-data.err
    M tests/qapi-schema/event-boxed-empty.err
    M tests/qapi-schema/event-member-invalid-dict.err
    M tests/qapi-schema/event-nest-struct.err
    M tests/qapi-schema/features-bad-type.err
    M tests/qapi-schema/features-duplicate-name.err
    M tests/qapi-schema/features-if-invalid.err
    M tests/qapi-schema/features-missing-name.err
    M tests/qapi-schema/features-name-bad-type.err
    M tests/qapi-schema/features-no-list.err
    M tests/qapi-schema/features-unknown-key.err
    M tests/qapi-schema/flat-union-array-branch.err
    M tests/qapi-schema/flat-union-bad-base.err
    M tests/qapi-schema/flat-union-bad-discriminator.err
    M tests/qapi-schema/flat-union-base-any.err
    M tests/qapi-schema/flat-union-base-union.err
    M tests/qapi-schema/flat-union-clash-member.err
    M tests/qapi-schema/flat-union-discriminator-bad-name.err
    M tests/qapi-schema/flat-union-empty.err
    M tests/qapi-schema/flat-union-inline-invalid-dict.err
    M tests/qapi-schema/flat-union-inline.err
    M tests/qapi-schema/flat-union-int-branch.err
    M tests/qapi-schema/flat-union-invalid-branch-key.err
    M tests/qapi-schema/flat-union-invalid-discriminator.err
    M tests/qapi-schema/flat-union-invalid-if-discriminator.err
    M tests/qapi-schema/flat-union-no-base.err
    M tests/qapi-schema/flat-union-optional-discriminator.err
    M tests/qapi-schema/flat-union-string-discriminator.err
    M tests/qapi-schema/nested-struct-data-invalid-dict.err
    M tests/qapi-schema/nested-struct-data.err
    M tests/qapi-schema/reserved-enum-q.err
    M tests/qapi-schema/reserved-member-has.err
    M tests/qapi-schema/reserved-member-q.err
    M tests/qapi-schema/reserved-member-u.err
    M tests/qapi-schema/reserved-member-underscore.err
    M tests/qapi-schema/returns-alternate.err
    M tests/qapi-schema/returns-array-bad.err
    M tests/qapi-schema/returns-dict.err
    M tests/qapi-schema/returns-unknown.err
    M tests/qapi-schema/returns-whitelist.err
    M tests/qapi-schema/struct-base-clash-deep.err
    M tests/qapi-schema/struct-base-clash.err
    M tests/qapi-schema/struct-data-invalid.err
    M tests/qapi-schema/struct-member-if-invalid.err
    M tests/qapi-schema/struct-member-invalid-dict.err
    M tests/qapi-schema/struct-member-invalid.err
    M tests/qapi-schema/union-base-empty.err
    M tests/qapi-schema/union-base-no-discriminator.err
    M tests/qapi-schema/union-branch-case.err
    M tests/qapi-schema/union-branch-if-invalid.err
    M tests/qapi-schema/union-branch-invalid-dict.err
    M tests/qapi-schema/union-clash-branches.err
    M tests/qapi-schema/union-empty.err
    M tests/qapi-schema/union-invalid-base.err
    M tests/qapi-schema/union-optional-branch.err
    M tests/qapi-schema/union-unknown.err

  Log Message:
  -----------
  qapi: Prefix frontend errors with an "in definition" line

We take pains to include the offending expression in error messages,
e.g.

    tests/qapi-schema/alternate-any.json:2: alternate 'Alt' member 'one' cannot 
use type 'any'

But not always:

    tests/qapi-schema/enum-if-invalid.json:2: 'if' condition must be a string 
or a list of strings

Instead of improving them one by one, report the offending expression
whenever it is known, like this:

    tests/qapi-schema/enum-if-invalid.json: In enum 'TestIfEnum':
    tests/qapi-schema/enum-if-invalid.json:2: 'if' condition must be a string 
or a list of strings

Error messages that mention the offending expression become a bit
redundant, e.g.

    tests/qapi-schema/alternate-any.json: In alternate 'Alt':
    tests/qapi-schema/alternate-any.json:2: alternate 'Alt' member 'one' cannot 
use type 'any'

I'll take care of that later in this series.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 638c4af9310ee1f8bf878da99c87c0af26417679
      
https://github.com/qemu/qemu/commit/638c4af9310ee1f8bf878da99c87c0af26417679
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M qapi/qapi-schema.json
    M scripts/qapi/common.py
    M tests/qapi-schema/args-member-case.err
    M tests/qapi-schema/args-member-case.json
    M tests/qapi-schema/enum-member-case.err
    M tests/qapi-schema/union-branch-case.err
    M tests/qapi-schema/union-branch-case.json

  Log Message:
  -----------
  qapi: Clean up member name case checking

QAPISchemaMember.check_clash() checks for member names that map to the
same c_name().  Takes care of rejecting duplicate names.

It also checks a naming rule: no uppercase in member names.  That's a
rather odd place to do it.  Enforcing naming rules is
check_name_str()'s job.

qapi-code-gen.txt specifies the name case rule applies to the name as
it appears in the schema.  check_clash() checks c_name(name) instead.
No difference, as c_name() leaves alone case, but unclean.

Move the name case check into check_name_str(), less the c_name().
New argument @permit_upper suppresses it.  Pass permit_upper=True for
definitions (which are not members), and when the member's owner is
whitelisted with pragma name-case-whitelist.

Bonus: name-case-whitelist now applies to a union's inline base, too.
Update qapi/qapi-schema.json pragma to whitelist union CpuInfo instead
of CpuInfo's implicit base type's name q_obj_CpuInfo-base.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 2ab218aad6e2ddf4e95a7d583492ad7142927ca5
      
https://github.com/qemu/qemu/commit/2ab218aad6e2ddf4e95a7d583492ad7142927ca5
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/alternate-any.err
    M tests/qapi-schema/alternate-array.err
    M tests/qapi-schema/alternate-base.err
    M tests/qapi-schema/alternate-conflict-bool-string.err
    M tests/qapi-schema/alternate-conflict-dict.err
    M tests/qapi-schema/alternate-conflict-enum-bool.err
    M tests/qapi-schema/alternate-conflict-enum-int.err
    M tests/qapi-schema/alternate-conflict-num-string.err
    M tests/qapi-schema/alternate-conflict-string.err
    M tests/qapi-schema/alternate-empty.err
    M tests/qapi-schema/alternate-invalid-dict.err
    M tests/qapi-schema/alternate-nested.err
    M tests/qapi-schema/alternate-unknown.err
    M tests/qapi-schema/args-array-empty.err
    M tests/qapi-schema/args-array-unknown.err
    M tests/qapi-schema/args-member-array-bad.err
    M tests/qapi-schema/args-member-case.err
    M tests/qapi-schema/args-member-unknown.err
    M tests/qapi-schema/bad-type-int.err
    M tests/qapi-schema/base-cycle-direct.err
    M tests/qapi-schema/base-cycle-indirect.err
    M tests/qapi-schema/doc-bad-alternate-member.err
    M tests/qapi-schema/doc-bad-command-arg.err
    M tests/qapi-schema/doc-bad-symbol.err
    M tests/qapi-schema/doc-bad-union-member.err
    M tests/qapi-schema/doc-before-include.err
    M tests/qapi-schema/doc-before-pragma.err
    M tests/qapi-schema/doc-duplicated-return.err
    M tests/qapi-schema/doc-duplicated-since.err
    M tests/qapi-schema/doc-empty-arg.err
    M tests/qapi-schema/doc-empty-section.err
    M tests/qapi-schema/doc-empty-symbol.err
    M tests/qapi-schema/doc-invalid-end.err
    M tests/qapi-schema/doc-invalid-end2.err
    M tests/qapi-schema/doc-invalid-start.err
    M tests/qapi-schema/doc-missing-colon.err
    M tests/qapi-schema/doc-missing-expr.err
    M tests/qapi-schema/doc-missing-space.err
    M tests/qapi-schema/doc-missing.err
    M tests/qapi-schema/doc-no-symbol.err
    M tests/qapi-schema/double-type.err
    M tests/qapi-schema/duplicate-key.err
    M tests/qapi-schema/enum-bad-member.err
    M tests/qapi-schema/enum-bad-name.err
    M tests/qapi-schema/enum-bad-prefix.err
    M tests/qapi-schema/enum-dict-member-unknown.err
    M tests/qapi-schema/enum-int-member.err
    M tests/qapi-schema/enum-member-case.err
    M tests/qapi-schema/enum-missing-data.err
    M tests/qapi-schema/enum-wrong-data.err
    M tests/qapi-schema/escape-outside-string.err
    M tests/qapi-schema/event-boxed-empty.err
    M tests/qapi-schema/event-member-invalid-dict.err
    M tests/qapi-schema/event-nest-struct.err
    M tests/qapi-schema/features-bad-type.err
    M tests/qapi-schema/features-missing-name.err
    M tests/qapi-schema/features-name-bad-type.err
    M tests/qapi-schema/features-no-list.err
    M tests/qapi-schema/features-unknown-key.err
    M tests/qapi-schema/flat-union-array-branch.err
    M tests/qapi-schema/flat-union-bad-discriminator.err
    M tests/qapi-schema/flat-union-discriminator-bad-name.err
    M tests/qapi-schema/flat-union-empty.err
    M tests/qapi-schema/flat-union-inline-invalid-dict.err
    M tests/qapi-schema/flat-union-inline.err
    M tests/qapi-schema/flat-union-int-branch.err
    M tests/qapi-schema/flat-union-invalid-branch-key.err
    M tests/qapi-schema/flat-union-invalid-discriminator.err
    M tests/qapi-schema/flat-union-invalid-if-discriminator.err
    M tests/qapi-schema/flat-union-no-base.err
    M tests/qapi-schema/flat-union-optional-discriminator.err
    M tests/qapi-schema/flat-union-string-discriminator.err
    M tests/qapi-schema/funny-char.err
    M tests/qapi-schema/funny-word.err
    M tests/qapi-schema/ident-with-escape.err
    M tests/qapi-schema/include-before-err.err
    M tests/qapi-schema/include-cycle.err
    M tests/qapi-schema/include-extra-junk.err
    M tests/qapi-schema/include-nested-err.err
    M tests/qapi-schema/include-non-file.err
    M tests/qapi-schema/include-self-cycle.err
    M tests/qapi-schema/leading-comma-list.err
    M tests/qapi-schema/leading-comma-object.err
    M tests/qapi-schema/missing-colon.err
    M tests/qapi-schema/missing-comma-list.err
    M tests/qapi-schema/missing-comma-object.err
    M tests/qapi-schema/missing-type.err
    M tests/qapi-schema/nested-struct-data-invalid-dict.err
    M tests/qapi-schema/nested-struct-data.err
    M tests/qapi-schema/non-objects.err
    M tests/qapi-schema/pragma-doc-required-crap.err
    M tests/qapi-schema/pragma-extra-junk.err
    M tests/qapi-schema/pragma-name-case-whitelist-crap.err
    M tests/qapi-schema/pragma-non-dict.err
    M tests/qapi-schema/pragma-returns-whitelist-crap.err
    M tests/qapi-schema/pragma-unknown.err
    M tests/qapi-schema/quoted-structural-chars.err
    M tests/qapi-schema/reserved-enum-q.err
    M tests/qapi-schema/reserved-member-has.err
    M tests/qapi-schema/reserved-member-q.err
    M tests/qapi-schema/reserved-member-u.err
    M tests/qapi-schema/reserved-member-underscore.err
    M tests/qapi-schema/string-code-point-127.err
    M tests/qapi-schema/string-code-point-31.err
    M tests/qapi-schema/struct-member-invalid-dict.err
    M tests/qapi-schema/struct-member-invalid.err
    M tests/qapi-schema/trailing-comma-list.err
    M tests/qapi-schema/trailing-comma-object.err
    M tests/qapi-schema/unclosed-list.err
    M tests/qapi-schema/unclosed-object.err
    M tests/qapi-schema/unclosed-string.err
    M tests/qapi-schema/union-base-empty.err
    M tests/qapi-schema/union-base-no-discriminator.err
    M tests/qapi-schema/union-branch-case.err
    M tests/qapi-schema/union-branch-invalid-dict.err
    M tests/qapi-schema/union-empty.err
    M tests/qapi-schema/union-optional-branch.err
    M tests/qapi-schema/union-unknown.err
    M tests/qapi-schema/unknown-escape.err
    M tests/qapi-schema/unknown-expr-key.err

  Log Message:
  -----------
  qapi: Change frontend error messages to start with lower case

Starting error messages with a capital letter complicates things when
text can get interpolated both at the beginning and in the middle of
an error message.  The next patch will do that.  Switch to lower case
to keep it simpler.

For what it's worth, the GNU Coding Standards advise the message
"should not begin with a capital letter when it follows a program name
and/or file name, because that isn’t the beginning of a sentence. (The
sentence conceptually starts at the beginning of the line.)"

While there, avoid breaking lines containing multiple arguments in the
middle of an argument.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 481a6bd15c4fb99429c3337584c66b40384cb09c
      
https://github.com/qemu/qemu/commit/481a6bd15c4fb99429c3337584c66b40384cb09c
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/alternate-clash.err
    M tests/qapi-schema/args-name-clash.err
    M tests/qapi-schema/enum-clash-member.err
    M tests/qapi-schema/features-duplicate-name.err
    M tests/qapi-schema/flat-union-bad-base.err
    M tests/qapi-schema/flat-union-clash-member.err
    M tests/qapi-schema/struct-base-clash-deep.err
    M tests/qapi-schema/struct-base-clash.err
    M tests/qapi-schema/union-clash-branches.err

  Log Message:
  -----------
  qapi: Improve reporting of member name clashes

We report name clashes like this:

    struct-base-clash.json: In struct 'Sub':
    struct-base-clash.json:5: 'name' (member of Sub) collides with 'name' 
(member of Base)

The "(member of Sub)" is redundant with "In struct 'Sub'".  Comes from
QAPISchemaMember.describe().  Pass info to it, so it can detect the
redundancy and avoid it.  Result:

    struct-base-clash.json: In struct 'Sub':
    struct-base-clash.json:5: member 'name' collides with member 'name' of type 
'Base'

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: c9efc984ca5b5f75f184680e1ab9a7784d241578
      
https://github.com/qemu/qemu/commit/c9efc984ca5b5f75f184680e1ab9a7784d241578
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py

  Log Message:
  -----------
  qapi: Reorder check_FOO() parameters for consistency

Most check_FOO() take the thing being checked as first argument.
check_name(), check_type(), check_known_keys() don't.  Clean that up.

While there, drop a "Todo" comment that should have been dropped in
commit 87adbbffd4 "qapi: add a dictionary form for TYPE".

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: d7bc17c602f128bb358376e6976b3b5dee1ad732
      
https://github.com/qemu/qemu/commit/d7bc17c602f128bb358376e6976b3b5dee1ad732
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/bad-ident.err
    M tests/qapi-schema/command-int.err
    M tests/qapi-schema/redefined-builtin.err
    M tests/qapi-schema/redefined-command.err
    M tests/qapi-schema/redefined-event.err
    M tests/qapi-schema/redefined-type.err
    M tests/qapi-schema/reserved-command-q.err
    M tests/qapi-schema/reserved-type-kind.err
    M tests/qapi-schema/reserved-type-list.err

  Log Message:
  -----------
  qapi: Improve reporting of invalid name errors

Split check_name() into check_name_is_str() and check_name_str(), keep
check_name() as a wrapper.

Move add_name()'s call into its caller check_exprs(), and inline.

This permits delaying check_name_str() there, so its error message
gains an "in definition" line.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 6ba1ba7f0e54f100af8d4e28e9bc9978c971c0e0
      
https://github.com/qemu/qemu/commit/6ba1ba7f0e54f100af8d4e28e9bc9978c971c0e0
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py

  Log Message:
  -----------
  qapi: Use check_name_str() where it suffices

Replace check_name() by check_name_str() where the name is known to be
a string.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 64e04f7149dd7f0f32b8e7aa5a89a0c1e6d0b5d6
      
https://github.com/qemu/qemu/commit/64e04f7149dd7f0f32b8e7aa5a89a0c1e6d0b5d6
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/bad-ident.err
    M tests/qapi-schema/flat-union-discriminator-bad-name.err
    M tests/qapi-schema/flat-union-discriminator-bad-name.json
    M tests/qapi-schema/union-optional-branch.err

  Log Message:
  -----------
  qapi: Report invalid '*' prefix like any other invalid name

The special "does not allow optional name" error is well meant, but
confusing in practice.  Drop it.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 67fa64ce0ef92943a25de0f0760f8cfc10c2bbf3
      
https://github.com/qemu/qemu/commit/67fa64ce0ef92943a25de0f0760f8cfc10c2bbf3
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/bad-ident.err
    M tests/qapi-schema/reserved-command-q.err

  Log Message:
  -----------
  qapi: Move check for reserved names out of add_name()

The checks for reserved names are spread far and wide.  Move one from
add_name() to new check_defn_name_str().  This is a first step towards
collecting them all in dedicated name checking functions next to
check_name().

While there, drop the quotes around the meta-type in
check_name_str()'s error messages: "'command' uses ... name 'NAME'"
becomes "command uses ... name 'NAME'".

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 88112488cf228df8b7588c8aa38e16ecd0dff48e
      
https://github.com/qemu/qemu/commit/88112488cf228df8b7588c8aa38e16ecd0dff48e
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py

  Log Message:
  -----------
  qapi: Make check_type()'s array case a bit more obvious

check_type() checks the array's contents, then peels off the array and
falls through to the "not array" code without resetting allow_array
and allow_dict to False.  Works because the peeled value is a string,
and allow_array and allow_dict aren't used then.  Tidy up anyway:
recurse instead, defaulting allow_array and allow_dict to False.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: e6f9678da5371642e237d6d93595dbc11bd17f85
      
https://github.com/qemu/qemu/commit/e6f9678da5371642e237d6d93595dbc11bd17f85
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M scripts/qapi/events.py

  Log Message:
  -----------
  qapi: Plumb info to the QAPISchemaMember

Future commits will need info in the .check() methods of
QAPISchemaMember and its descendants.  Get it there.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 77daece3d95dc7edaa5982fbbfd7afe3bc4121ac
      
https://github.com/qemu/qemu/commit/77daece3d95dc7edaa5982fbbfd7afe3bc4121ac
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py

  Log Message:
  -----------
  qapi: Inline check_name() into check_union()

check_name() consists of check_name_is_str() and check_name_str().
check_union() relies on the latter to catch optional discriminators.
The next commit will replace that by a more straightforward check.
Inlining check_name() into check_union() now should make that easier
to review.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: fa110c6a9e6c0ae0ce2d4bcf5771cdb8c3e53a7e
      
https://github.com/qemu/qemu/commit/fa110c6a9e6c0ae0ce2d4bcf5771cdb8c3e53a7e
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/alternate-any.err
    M tests/qapi-schema/alternate-conflict-bool-string.err
    M tests/qapi-schema/alternate-conflict-dict.err
    M tests/qapi-schema/alternate-conflict-enum-bool.err
    M tests/qapi-schema/alternate-conflict-enum-int.err
    M tests/qapi-schema/alternate-conflict-num-string.err
    M tests/qapi-schema/alternate-conflict-string.err
    M tests/qapi-schema/alternate-nested.err
    M tests/qapi-schema/alternate-unknown.err
    M tests/qapi-schema/args-alternate.err
    M tests/qapi-schema/args-any.err
    M tests/qapi-schema/args-array-unknown.err
    M tests/qapi-schema/args-boxed-string.err
    M tests/qapi-schema/args-int.err
    M tests/qapi-schema/args-member-unknown.err
    M tests/qapi-schema/args-union.err
    M tests/qapi-schema/args-unknown.err
    M tests/qapi-schema/bad-base.err
    M tests/qapi-schema/command-int.err
    M tests/qapi-schema/flat-union-base-any.err
    M tests/qapi-schema/flat-union-base-union.err
    M tests/qapi-schema/flat-union-discriminator-bad-name.err
    M tests/qapi-schema/flat-union-discriminator-bad-name.json
    M tests/qapi-schema/flat-union-empty.err
    M tests/qapi-schema/flat-union-int-branch.err
    M tests/qapi-schema/flat-union-invalid-branch-key.err
    M tests/qapi-schema/flat-union-invalid-if-discriminator.err
    M tests/qapi-schema/flat-union-optional-discriminator.err
    M tests/qapi-schema/flat-union-optional-discriminator.json
    M tests/qapi-schema/flat-union-string-discriminator.err
    M tests/qapi-schema/redefined-builtin.err
    M tests/qapi-schema/redefined-type.err
    M tests/qapi-schema/returns-alternate.err
    M tests/qapi-schema/returns-unknown.err
    M tests/qapi-schema/returns-whitelist.err
    M tests/qapi-schema/union-empty.err
    M tests/qapi-schema/union-invalid-base.err
    M tests/qapi-schema/union-unknown.err
    M tests/qapi-schema/union-unknown.json

  Log Message:
  -----------
  qapi: Move context-sensitive checking to the proper place

When we introduced the QAPISchema intermediate representation (commit
ac88219a6c7), we took a shortcut: we left check_exprs() & friends
alone instead of moving semantic checks into the
QAPISchemaFOO.check().  The .check() assert check_exprs() did its job.

Time to finish the conversion job.  Move exactly the context-sensitive
checks to the .check().  They replace assertions there.  Context-free
checks stay put.

Fixes the misleading optional tag error demonstrated by test
flat-union-optional-discriminator.

A few other error message improve.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 4ebda5abdb9704a3bde299209f8fcaf034079095
      
https://github.com/qemu/qemu/commit/4ebda5abdb9704a3bde299209f8fcaf034079095
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/event-boxed-empty.err

  Log Message:
  -----------
  qapi: Move context-free checking to the proper place

QAPISchemaCommand.check() and QAPISchemaEvent().check() check 'data'
is present when 'boxed': true.  That's context-free.  Move to
check_command() and check_event().

Tweak the error message while there.

check_exprs() & friends now check exactly what qapi-code-gen.txt calls
the second layer of syntax.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 576f0b8a53ab12d6ca46ec8f89ec0901d80d0ad8
      
https://github.com/qemu/qemu/commit/576f0b8a53ab12d6ca46ec8f89ec0901d80d0ad8
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/bad-if-empty-list.err
    M tests/qapi-schema/bad-if-empty.err
    M tests/qapi-schema/bad-if-list.err
    M tests/qapi-schema/bad-if.err

  Log Message:
  -----------
  qapi: Improve reporting of invalid 'if' errors

Move check_if() from check_keys() to check_exprs() and call it later,
so its error messages gain an "in definition" line.

Checking values in a function named check_keys() is unclean anyway.
The original sin was commit 0545f6b887 "qapi: Better error messages
for bad expressions", which checks the value of key 'name'.  More
sinning in commit 2cbf09925a "qapi: More rigorous checking for type
safety bypass", commit c818408e44 "qapi: Implement boxed types for
commands/events", and commit 967c885108 "qapi: add 'if' to top-level
expressions".  This commit does penance for the latter.  The next
commits will do penance for the others.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: a6735a574382b214d7f1ee7b315cc81421aaa77e
      
https://github.com/qemu/qemu/commit/a6735a574382b214d7f1ee7b315cc81421aaa77e
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/allow-preconfig-test.err
    M tests/qapi-schema/args-bad-boxed.err
    M tests/qapi-schema/oob-test.err
    M tests/qapi-schema/type-bypass-bad-gen.err

  Log Message:
  -----------
  qapi: Improve reporting of invalid flags

Split check_flags() off check_keys() and have check_exprs() call it
later, so its error messages gain an "in definition" line.  Tweak the
error messages.

Checking values in a function named check_keys() is unclean anyway.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 3f58cc29a8d2f01dc498ff4624a25e72448059a1
      
https://github.com/qemu/qemu/commit/3f58cc29a8d2f01dc498ff4624a25e72448059a1
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/alternate-base.err
    M tests/qapi-schema/bad-type-bool.err
    M tests/qapi-schema/bad-type-dict.err
    M tests/qapi-schema/double-type.err
    M tests/qapi-schema/enum-missing-data.err
    M tests/qapi-schema/unknown-expr-key.err

  Log Message:
  -----------
  qapi: Improve reporting of missing / unknown definition keys

Have check_exprs() call check_keys() later, so its error messages gain
an "in definition" line.

Both check_keys() and check_name_is_str() check the definition's name
is a string.  Since check_keys() now runs after check_name_is_str()
rather than before, its check is dead.  Bury it.  Checking values in
check_keys() is unclean anyway.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: eeb57c85da04b0c120562b25e3eac5cb16d8bf15
      
https://github.com/qemu/qemu/commit/eeb57c85da04b0c120562b25e3eac5cb16d8bf15
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/alternate-array.err
    M tests/qapi-schema/alternate-base.err
    M tests/qapi-schema/alternate-empty.err
    M tests/qapi-schema/alternate-invalid-dict.err
    M tests/qapi-schema/args-array-empty.err
    M tests/qapi-schema/args-boxed-anon.err
    M tests/qapi-schema/args-invalid.err
    M tests/qapi-schema/args-member-array-bad.err
    M tests/qapi-schema/args-member-case.err
    M tests/qapi-schema/bad-data.err
    M tests/qapi-schema/bad-ident.err
    M tests/qapi-schema/doc-bad-symbol.err
    M tests/qapi-schema/double-type.err
    M tests/qapi-schema/enum-bad-member.err
    M tests/qapi-schema/enum-bad-name.err
    M tests/qapi-schema/enum-bad-prefix.err
    M tests/qapi-schema/enum-dict-member-unknown.err
    M tests/qapi-schema/enum-member-case.err
    M tests/qapi-schema/enum-missing-data.err
    M tests/qapi-schema/enum-wrong-data.err
    M tests/qapi-schema/event-member-invalid-dict.err
    M tests/qapi-schema/event-nest-struct.err
    M tests/qapi-schema/features-bad-type.err
    M tests/qapi-schema/features-missing-name.err
    M tests/qapi-schema/features-name-bad-type.err
    M tests/qapi-schema/features-no-list.err
    M tests/qapi-schema/features-unknown-key.err
    M tests/qapi-schema/flat-union-array-branch.err
    M tests/qapi-schema/flat-union-bad-discriminator.err
    M tests/qapi-schema/flat-union-inline-invalid-dict.err
    M tests/qapi-schema/flat-union-inline.err
    M tests/qapi-schema/flat-union-no-base.err
    M tests/qapi-schema/nested-struct-data-invalid-dict.err
    M tests/qapi-schema/nested-struct-data.err
    M tests/qapi-schema/reserved-command-q.err
    M tests/qapi-schema/reserved-enum-q.err
    M tests/qapi-schema/reserved-member-has.err
    M tests/qapi-schema/reserved-member-q.err
    M tests/qapi-schema/reserved-member-u.err
    M tests/qapi-schema/reserved-member-underscore.err
    M tests/qapi-schema/reserved-type-kind.err
    M tests/qapi-schema/reserved-type-list.err
    M tests/qapi-schema/returns-array-bad.err
    M tests/qapi-schema/returns-dict.err
    M tests/qapi-schema/struct-data-invalid.err
    M tests/qapi-schema/struct-member-invalid-dict.err
    M tests/qapi-schema/struct-member-invalid.err
    M tests/qapi-schema/union-base-no-discriminator.err
    M tests/qapi-schema/union-branch-case.err
    M tests/qapi-schema/union-branch-invalid-dict.err
    M tests/qapi-schema/union-optional-branch.err
    M tests/qapi-schema/unknown-expr-key.err

  Log Message:
  -----------
  qapi: Avoid redundant definition references in error messages

Many error messages refer to the offending definition even though
they're preceded by an "in definition" line.  Rephrase them.

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: fab12376d0234ce46517f88b9ecc9a6080522118
      
https://github.com/qemu/qemu/commit/fab12376d0234ce46517f88b9ecc9a6080522118
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/alternate-branch-if-invalid.err
    M tests/qapi-schema/bad-if-empty-list.err
    M tests/qapi-schema/bad-if-empty.err
    M tests/qapi-schema/bad-if-list.err
    M tests/qapi-schema/bad-if.err
    M tests/qapi-schema/enum-if-invalid.err
    M tests/qapi-schema/features-if-invalid.err
    M tests/qapi-schema/struct-member-if-invalid.err
    M tests/qapi-schema/union-branch-if-invalid.err

  Log Message:
  -----------
  qapi: Improve reporting of invalid 'if' further

check_if()'s errors don't point to the offending part of the
expression.  For instance:

    tests/qapi-schema/alternate-branch-if-invalid.json:2: 'if' condition ' ' 
makes no sense

Other check_FOO() do, with the help of a @source argument.  Make
check_if() do that, too.  The example above improves to:

    tests/qapi-schema/alternate-branch-if-invalid.json:2: 'if' condition ' ' of 
'data' member 'branch' makes no sense

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 13b3997f148bc35d2050bc2fe4bb405791ece94f
      
https://github.com/qemu/qemu/commit/13b3997f148bc35d2050bc2fe4bb405791ece94f
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py

  Log Message:
  -----------
  qapi: Eliminate check_keys(), rename check_known_keys()

check_keys() has become a trivial wrapper for check_known_keys().
Eliminate it.

This makes its name available.  Rename check_known_keys().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: f63326985a23cc1bb6327a003050e6fdb52eb9cd
      
https://github.com/qemu/qemu/commit/f63326985a23cc1bb6327a003050e6fdb52eb9cd
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/doc-missing.err

  Log Message:
  -----------
  qapi: Improve reporting of missing documentation comment

Have check_exprs() check this later, so the error message gains an "in
definition line".  Tweak the error message.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 56d2df5e65d873ca0e9841f7bb7676cab759f8da
      
https://github.com/qemu/qemu/commit/56d2df5e65d873ca0e9841f7bb7676cab759f8da
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/redefined-command.err
    M tests/qapi-schema/redefined-event.err
    M tests/qapi-schema/redefined-type.err

  Log Message:
  -----------
  qapi: Improve reporting of redefinition

Point to the previous definition, unless it's a built-in.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: c615550df306a7b16e75d21f65ee38898c756bac
      
https://github.com/qemu/qemu/commit/c615550df306a7b16e75d21f65ee38898c756bac
  Author: Markus Armbruster <address@hidden>
  Date:   2019-09-28 (Sat, 28 Sep 2019)

  Changed paths:
    M scripts/qapi/common.py
    M tests/qapi-schema/include-no-file.err

  Log Message:
  -----------
  qapi: Improve source file read error handling

qapi-gen.py crashes when it can't open the main schema file, and when
it can't read from any schema file.  Lazy.

Change QAPISchema.__init__() to take a file name instead of a file
object.  Move the open code from _include() to __init__(), so it's
used for the main schema file, too.

Move the read into the try for good measure, and rephrase the error
message.

Reporting open or read failure for the main schema file needs a
QAPISourceInfo representing "no source".  Make QAPISourceInfo cope
with fname=None.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 2094695689f74ff6d6fb273ccecde45a1de88cc2
      
https://github.com/qemu/qemu/commit/2094695689f74ff6d6fb273ccecde45a1de88cc2
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-01 (Tue, 01 Oct 2019)

  Changed paths:
    M qapi/qapi-schema.json
    M qapi/qmp-dispatch.c
    M scripts/qapi/common.py
    M scripts/qapi/events.py
    M tests/qapi-schema/allow-preconfig-test.err
    M tests/qapi-schema/alternate-any.err
    M tests/qapi-schema/alternate-array.err
    M tests/qapi-schema/alternate-base.err
    M tests/qapi-schema/alternate-branch-if-invalid.err
    M tests/qapi-schema/alternate-clash.err
    M tests/qapi-schema/alternate-conflict-bool-string.err
    M tests/qapi-schema/alternate-conflict-dict.err
    M tests/qapi-schema/alternate-conflict-enum-bool.err
    M tests/qapi-schema/alternate-conflict-enum-int.err
    M tests/qapi-schema/alternate-conflict-num-string.err
    M tests/qapi-schema/alternate-conflict-string.err
    M tests/qapi-schema/alternate-empty.err
    M tests/qapi-schema/alternate-invalid-dict.err
    M tests/qapi-schema/alternate-nested.err
    M tests/qapi-schema/alternate-unknown.err
    M tests/qapi-schema/args-alternate.err
    M tests/qapi-schema/args-any.err
    M tests/qapi-schema/args-array-empty.err
    M tests/qapi-schema/args-array-unknown.err
    M tests/qapi-schema/args-bad-boxed.err
    M tests/qapi-schema/args-boxed-anon.err
    M tests/qapi-schema/args-boxed-string.err
    M tests/qapi-schema/args-int.err
    M tests/qapi-schema/args-invalid.err
    M tests/qapi-schema/args-member-array-bad.err
    M tests/qapi-schema/args-member-case.err
    M tests/qapi-schema/args-member-case.json
    M tests/qapi-schema/args-member-unknown.err
    M tests/qapi-schema/args-name-clash.err
    M tests/qapi-schema/args-union.err
    M tests/qapi-schema/args-unknown.err
    M tests/qapi-schema/bad-base.err
    M tests/qapi-schema/bad-data.err
    M tests/qapi-schema/bad-ident.err
    M tests/qapi-schema/bad-if-empty-list.err
    M tests/qapi-schema/bad-if-empty.err
    M tests/qapi-schema/bad-if-list.err
    M tests/qapi-schema/bad-if.err
    M tests/qapi-schema/bad-type-bool.err
    M tests/qapi-schema/bad-type-dict.err
    M tests/qapi-schema/bad-type-int.err
    M tests/qapi-schema/base-cycle-direct.err
    M tests/qapi-schema/base-cycle-indirect.err
    M tests/qapi-schema/command-int.err
    M tests/qapi-schema/doc-bad-alternate-member.err
    M tests/qapi-schema/doc-bad-command-arg.err
    M tests/qapi-schema/doc-bad-symbol.err
    M tests/qapi-schema/doc-bad-union-member.err
    M tests/qapi-schema/doc-before-include.err
    M tests/qapi-schema/doc-before-pragma.err
    M tests/qapi-schema/doc-duplicated-return.err
    M tests/qapi-schema/doc-duplicated-since.err
    M tests/qapi-schema/doc-empty-arg.err
    M tests/qapi-schema/doc-empty-section.err
    M tests/qapi-schema/doc-empty-symbol.err
    M tests/qapi-schema/doc-invalid-end.err
    M tests/qapi-schema/doc-invalid-end2.err
    M tests/qapi-schema/doc-invalid-start.err
    M tests/qapi-schema/doc-missing-colon.err
    M tests/qapi-schema/doc-missing-expr.err
    M tests/qapi-schema/doc-missing-space.err
    M tests/qapi-schema/doc-missing.err
    M tests/qapi-schema/doc-no-symbol.err
    M tests/qapi-schema/double-type.err
    M tests/qapi-schema/duplicate-key.err
    M tests/qapi-schema/enum-bad-member.err
    M tests/qapi-schema/enum-bad-name.err
    M tests/qapi-schema/enum-bad-prefix.err
    M tests/qapi-schema/enum-clash-member.err
    M tests/qapi-schema/enum-dict-member-unknown.err
    M tests/qapi-schema/enum-if-invalid.err
    M tests/qapi-schema/enum-int-member.err
    M tests/qapi-schema/enum-member-case.err
    M tests/qapi-schema/enum-missing-data.err
    M tests/qapi-schema/enum-wrong-data.err
    M tests/qapi-schema/escape-outside-string.err
    M tests/qapi-schema/event-boxed-empty.err
    M tests/qapi-schema/event-member-invalid-dict.err
    M tests/qapi-schema/event-nest-struct.err
    M tests/qapi-schema/features-bad-type.err
    M tests/qapi-schema/features-duplicate-name.err
    M tests/qapi-schema/features-if-invalid.err
    M tests/qapi-schema/features-missing-name.err
    M tests/qapi-schema/features-name-bad-type.err
    M tests/qapi-schema/features-no-list.err
    M tests/qapi-schema/features-unknown-key.err
    M tests/qapi-schema/flat-union-array-branch.err
    M tests/qapi-schema/flat-union-bad-base.err
    M tests/qapi-schema/flat-union-bad-discriminator.err
    M tests/qapi-schema/flat-union-base-any.err
    M tests/qapi-schema/flat-union-base-union.err
    M tests/qapi-schema/flat-union-clash-member.err
    M tests/qapi-schema/flat-union-discriminator-bad-name.err
    M tests/qapi-schema/flat-union-discriminator-bad-name.json
    M tests/qapi-schema/flat-union-empty.err
    M tests/qapi-schema/flat-union-inline-invalid-dict.err
    M tests/qapi-schema/flat-union-inline.err
    M tests/qapi-schema/flat-union-int-branch.err
    M tests/qapi-schema/flat-union-invalid-branch-key.err
    M tests/qapi-schema/flat-union-invalid-discriminator.err
    M tests/qapi-schema/flat-union-invalid-if-discriminator.err
    M tests/qapi-schema/flat-union-no-base.err
    M tests/qapi-schema/flat-union-optional-discriminator.err
    M tests/qapi-schema/flat-union-optional-discriminator.json
    M tests/qapi-schema/flat-union-string-discriminator.err
    M tests/qapi-schema/funny-char.err
    M tests/qapi-schema/funny-word.err
    M tests/qapi-schema/ident-with-escape.err
    M tests/qapi-schema/include-before-err.err
    M tests/qapi-schema/include-cycle.err
    M tests/qapi-schema/include-extra-junk.err
    M tests/qapi-schema/include-nested-err.err
    M tests/qapi-schema/include-no-file.err
    M tests/qapi-schema/include-non-file.err
    M tests/qapi-schema/include-self-cycle.err
    M tests/qapi-schema/leading-comma-list.err
    M tests/qapi-schema/leading-comma-object.err
    M tests/qapi-schema/missing-colon.err
    M tests/qapi-schema/missing-comma-list.err
    M tests/qapi-schema/missing-comma-object.err
    M tests/qapi-schema/missing-type.err
    M tests/qapi-schema/nested-struct-data-invalid-dict.err
    M tests/qapi-schema/nested-struct-data.err
    M tests/qapi-schema/non-objects.err
    M tests/qapi-schema/oob-test.err
    M tests/qapi-schema/pragma-doc-required-crap.err
    M tests/qapi-schema/pragma-extra-junk.err
    M tests/qapi-schema/pragma-name-case-whitelist-crap.err
    M tests/qapi-schema/pragma-non-dict.err
    M tests/qapi-schema/pragma-returns-whitelist-crap.err
    M tests/qapi-schema/pragma-unknown.err
    M tests/qapi-schema/quoted-structural-chars.err
    M tests/qapi-schema/redefined-builtin.err
    M tests/qapi-schema/redefined-command.err
    M tests/qapi-schema/redefined-event.err
    M tests/qapi-schema/redefined-type.err
    M tests/qapi-schema/reserved-command-q.err
    M tests/qapi-schema/reserved-enum-q.err
    M tests/qapi-schema/reserved-member-has.err
    M tests/qapi-schema/reserved-member-q.err
    M tests/qapi-schema/reserved-member-u.err
    M tests/qapi-schema/reserved-member-underscore.err
    M tests/qapi-schema/reserved-type-kind.err
    M tests/qapi-schema/reserved-type-list.err
    M tests/qapi-schema/returns-alternate.err
    M tests/qapi-schema/returns-array-bad.err
    M tests/qapi-schema/returns-dict.err
    M tests/qapi-schema/returns-unknown.err
    M tests/qapi-schema/returns-whitelist.err
    M tests/qapi-schema/string-code-point-127.err
    M tests/qapi-schema/string-code-point-31.err
    M tests/qapi-schema/struct-base-clash-deep.err
    M tests/qapi-schema/struct-base-clash.err
    M tests/qapi-schema/struct-data-invalid.err
    M tests/qapi-schema/struct-member-if-invalid.err
    M tests/qapi-schema/struct-member-invalid-dict.err
    M tests/qapi-schema/struct-member-invalid.err
    M tests/qapi-schema/trailing-comma-list.err
    M tests/qapi-schema/trailing-comma-object.err
    M tests/qapi-schema/type-bypass-bad-gen.err
    M tests/qapi-schema/unclosed-list.err
    M tests/qapi-schema/unclosed-object.err
    M tests/qapi-schema/unclosed-string.err
    M tests/qapi-schema/union-base-empty.err
    M tests/qapi-schema/union-base-no-discriminator.err
    M tests/qapi-schema/union-branch-case.err
    M tests/qapi-schema/union-branch-case.json
    M tests/qapi-schema/union-branch-if-invalid.err
    M tests/qapi-schema/union-branch-invalid-dict.err
    M tests/qapi-schema/union-clash-branches.err
    M tests/qapi-schema/union-empty.err
    M tests/qapi-schema/union-invalid-base.err
    M tests/qapi-schema/union-optional-branch.err
    M tests/qapi-schema/union-unknown.err
    M tests/qapi-schema/union-unknown.json
    M tests/qapi-schema/unknown-escape.err
    M tests/qapi-schema/unknown-expr-key.err
    M tests/test-qga.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2019-09-28' into 
staging

QAPI patches for 2019-09-28

# gpg: Signature made Sat 28 Sep 2019 16:18:13 BST
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Markus Armbruster <address@hidden>" [full]
# gpg:                 aka "Markus Armbruster <address@hidden>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* remotes/armbru/tags/pull-qapi-2019-09-28: (27 commits)
  qapi: Improve source file read error handling
  qapi: Improve reporting of redefinition
  qapi: Improve reporting of missing documentation comment
  qapi: Eliminate check_keys(), rename check_known_keys()
  qapi: Improve reporting of invalid 'if' further
  qapi: Avoid redundant definition references in error messages
  qapi: Improve reporting of missing / unknown definition keys
  qapi: Improve reporting of invalid flags
  qapi: Improve reporting of invalid 'if' errors
  qapi: Move context-free checking to the proper place
  qapi: Move context-sensitive checking to the proper place
  qapi: Inline check_name() into check_union()
  qapi: Plumb info to the QAPISchemaMember
  qapi: Make check_type()'s array case a bit more obvious
  qapi: Move check for reserved names out of add_name()
  qapi: Report invalid '*' prefix like any other invalid name
  qapi: Use check_name_str() where it suffices
  qapi: Improve reporting of invalid name errors
  qapi: Reorder check_FOO() parameters for consistency
  qapi: Improve reporting of member name clashes
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/95e9d74fe428...2094695689f7



reply via email to

[Prev in Thread] Current Thread [Next in Thread]