From 75276710ae0a9f802a9774a8d845a2c84f89305a Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Wed, 10 Jun 2015 13:03:04 +0200 Subject: [PATCH] tests/qapi-schema: New flat union array branch test case The new test demonstrates another generator crash. Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake --- tests/Makefile | 3 ++- tests/qapi-schema/flat-union-array-branch.err | 10 ++++++++++ tests/qapi-schema/flat-union-array-branch.exit | 1 + tests/qapi-schema/flat-union-array-branch.json | 12 ++++++++++++ tests/qapi-schema/flat-union-array-branch.out | 0 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 tests/qapi-schema/flat-union-array-branch.err create mode 100644 tests/qapi-schema/flat-union-array-branch.exit create mode 100644 tests/qapi-schema/flat-union-array-branch.json create mode 100644 tests/qapi-schema/flat-union-array-branch.out diff --git a/tests/Makefile b/tests/Makefile index c5e474455c..4de40deb2f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -237,7 +237,8 @@ check-qapi-schema-y := $(addprefix tests/qapi-schema/, \ flat-union-invalid-branch-key.json flat-union-reverse-define.json \ flat-union-string-discriminator.json union-base-no-discriminator.json \ flat-union-bad-discriminator.json flat-union-bad-base.json \ - flat-union-base-star.json flat-union-int-branch.json \ + flat-union-base-star.json \ + flat-union-array-branch.json flat-union-int-branch.json \ flat-union-base-union.json flat-union-branch-clash.json \ alternate-nested.json alternate-unknown.json alternate-clash.json \ alternate-good.json alternate-base.json alternate-array.json \ diff --git a/tests/qapi-schema/flat-union-array-branch.err b/tests/qapi-schema/flat-union-array-branch.err new file mode 100644 index 0000000000..b45ef43e51 --- /dev/null +++ b/tests/qapi-schema/flat-union-array-branch.err @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "tests/qapi-schema/test-qapi.py", line 19, in + exprs = parse_schema(sys.argv[1]) + File "scripts/qapi.py", line 760, in parse_schema + return check_exprs(schema.exprs) + File "scripts/qapi.py", line 743, in check_exprs + check_union(expr, info) + File "scripts/qapi.py", line 586, in check_union + assert branch_struct +AssertionError diff --git a/tests/qapi-schema/flat-union-array-branch.exit b/tests/qapi-schema/flat-union-array-branch.exit new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/qapi-schema/flat-union-array-branch.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/flat-union-array-branch.json b/tests/qapi-schema/flat-union-array-branch.json new file mode 100644 index 0000000000..0b98820a8f --- /dev/null +++ b/tests/qapi-schema/flat-union-array-branch.json @@ -0,0 +1,12 @@ +# we require flat union branches to be a struct +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } +{ 'struct': 'Base', + 'data': { 'enum1': 'TestEnum' } } +{ 'struct': 'TestTypeB', + 'data': { 'integer': 'int' } } +{ 'union': 'TestUnion', + 'base': 'Base', + 'discriminator': 'enum1', + 'data': { 'value1': ['TestTypeB'], + 'value2': 'TestTypeB' } } diff --git a/tests/qapi-schema/flat-union-array-branch.out b/tests/qapi-schema/flat-union-array-branch.out new file mode 100644 index 0000000000..e69de29bb2