Commit 61a94661 authored by Eric Blake's avatar Eric Blake Committed by Markus Armbruster
Browse files

qapi: Remove outdated tests related to QMP/branch collisions



Now that branches are in a separate C namespace, we can remove
the restrictions in the parser that claim a branch name would
collide with QMP, and delete the negative tests that are no
longer problematic.  A separate patch can then add positive
tests to qapi-schema-test to test that any corner cases will
compile correctly.

This reverts the scripts/qapi.py portion of commit 7b2a5c2f,
now that the assertions that it plugged are no longer possible.

Signed-off-by: default avatarEric Blake <eblake@redhat.com>
Message-Id: <1447836791-369-15-git-send-email-eblake@redhat.com>
Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
parent 10565ca9
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -548,8 +548,7 @@ def check_union(expr, expr_info):
    base = expr.get('base')
    discriminator = expr.get('discriminator')
    members = expr['data']
    values = {'MAX': '(automatic)', 'KIND': '(automatic)',
              'TYPE': '(automatic)'}
    values = {'MAX': '(automatic)'}

    # Two types of unions, determined by discriminator.

@@ -607,19 +606,13 @@ def check_union(expr, expr_info):
                               " of branch '%s'" % key)

        # If the discriminator names an enum type, then all members
        # of 'data' must also be members of the enum type, which in turn
        # must not collide with the discriminator name.
        # of 'data' must also be members of the enum type.
        if enum_define:
            if key not in enum_define['enum_values']:
                raise QAPIExprError(expr_info,
                                    "Discriminator value '%s' is not found in "
                                    "enum '%s'" %
                                    (key, enum_define["enum_name"]))
            if discriminator in enum_define['enum_values']:
                raise QAPIExprError(expr_info,
                                    "Discriminator name '%s' collides with "
                                    "enum value in '%s'" %
                                    (discriminator, enum_define["enum_name"]))

        # Otherwise, check for conflicts in the generated enum
        else:
+0 −3
Original line number Diff line number Diff line
@@ -281,9 +281,7 @@ qapi-schema += flat-union-bad-base.json
qapi-schema += flat-union-bad-discriminator.json
qapi-schema += flat-union-base-any.json
qapi-schema += flat-union-base-union.json
qapi-schema += flat-union-clash-branch.json
qapi-schema += flat-union-clash-member.json
qapi-schema += flat-union-clash-type.json
qapi-schema += flat-union-empty.json
qapi-schema += flat-union-inline.json
qapi-schema += flat-union-int-branch.json
@@ -345,7 +343,6 @@ qapi-schema += union-bad-branch.json
qapi-schema += union-base-no-discriminator.json
qapi-schema += union-clash-branches.json
qapi-schema += union-clash-data.json
qapi-schema += union-clash-type.json
qapi-schema += union-empty.json
qapi-schema += union-invalid-base.json
qapi-schema += union-max.json
+0 −0

Empty file deleted.

+0 −1
Original line number Diff line number Diff line
0
+0 −18
Original line number Diff line number Diff line
# Flat union branch name collision
# FIXME: this parses, but then fails to compile due to a duplicate 'c_d'
# (one from the base member, the other from the branch name).  We should
# either reject the collision at parse time, or munge the generated branch
# name to allow this to compile.
{ 'enum': 'TestEnum',
  'data': [ 'base', 'c-d' ] }
{ 'struct': 'Base',
  'data': { 'enum1': 'TestEnum', '*c_d': 'str' } }
{ 'struct': 'Branch1',
  'data': { 'string': 'str' } }
{ 'struct': 'Branch2',
  'data': { 'value': 'int' } }
{ 'union': 'TestUnion',
  'base': 'Base',
  'discriminator': 'enum1',
  'data': { 'base': 'Branch1',
            'c-d': 'Branch2' } }
Loading