tests/qapi-schema: Demonstrate misleading optional tag error
commitcd346bdc46eb2046d7f744135a7e3d740490d166
authorMarkus Armbruster <armbru@redhat.com>
Sat, 14 Sep 2019 15:34:50 +0000 (14 17:34 +0200)
committerMarkus Armbruster <armbru@redhat.com>
Tue, 24 Sep 2019 12:07:22 +0000 (24 14:07 +0200)
tree568af81e8465c7b59f2b118553f97a9a03d693b0
parent352ada9ad46a2e67283e8201d8056c27e57c0447
tests/qapi-schema: Demonstrate misleading optional tag error

Test flat-union-optional-discriminator declares its union tag as
'*switch': 'Enum', and points to it with 'discriminator': '*switch'.
This gets rejected as "discriminator of flat union 'MyUnion' uses
invalid name '*switch'".  Correct; member 'discriminator' doesn't
accept a '*' prefix.

However, this merely tests name validity checking, which we already
cover elsewhere.  More interesting is testing the valid name 'switch'.
This reports "discriminator 'switch' is not a member of base struct
'Base'", which is misleading.

Copy the existing 'discriminator': '*switch' test to
flat-union-discriminator-bad-name, and rewrite its comment.  Change
flat-union-optional-discriminator to test 'discriminator': 'switch',
and mark it FIXME.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190914153506.2151-4-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
tests/Makefile.include
tests/qapi-schema/flat-union-discriminator-bad-name.err [copied from tests/qapi-schema/flat-union-optional-discriminator.err with 53% similarity]
tests/qapi-schema/flat-union-discriminator-bad-name.exit [new file with mode: 0644]
tests/qapi-schema/flat-union-discriminator-bad-name.json [copied from tests/qapi-schema/flat-union-optional-discriminator.json with 69% similarity]
tests/qapi-schema/flat-union-discriminator-bad-name.out [new file with mode: 0644]
tests/qapi-schema/flat-union-optional-discriminator.err
tests/qapi-schema/flat-union-optional-discriminator.json