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 <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190927134639.4284-21-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2019-09-27 15:46:33 +02:00
parent a6735a5743
commit 3f58cc29a8
7 changed files with 25 additions and 23 deletions

View file

@ -1,2 +1,3 @@
tests/qapi-schema/alternate-base.json: In alternate 'Alt':
tests/qapi-schema/alternate-base.json:4: unknown key 'base' in alternate 'Alt'
Valid keys are 'alternate', 'data', 'if'.

View file

@ -1 +1 @@
tests/qapi-schema/bad-type-bool.json:2: 'struct' key must have a string value
tests/qapi-schema/bad-type-bool.json:2: 'struct' requires a string name

View file

@ -1 +1 @@
tests/qapi-schema/bad-type-dict.json:2: 'command' key must have a string value
tests/qapi-schema/bad-type-dict.json:2: 'command' requires a string name

View file

@ -1,2 +1,3 @@
tests/qapi-schema/double-type.json: In struct 'bar':
tests/qapi-schema/double-type.json:2: unknown key 'command' in struct 'bar'
Valid keys are 'base', 'data', 'features', 'if', 'struct'.

View file

@ -1 +1,2 @@
tests/qapi-schema/enum-missing-data.json: In enum 'MyEnum':
tests/qapi-schema/enum-missing-data.json:2: key 'data' is missing from enum 'MyEnum'

View file

@ -1,2 +1,3 @@
tests/qapi-schema/unknown-expr-key.json: In struct 'bar':
tests/qapi-schema/unknown-expr-key.json:2: unknown keys 'bogus', 'phony' in struct 'bar'
Valid keys are 'base', 'data', 'features', 'if', 'struct'.