aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2021-09-17 16:31:33 +0200
committerMarkus Armbruster <armbru@redhat.com>2021-09-27 08:23:25 +0200
commit8b3b3a16dfca57b7c4e7b8af215aec96880153d7 (patch)
treea4d6838ead2f7a8ef8e45240e310987c373be1cc /tests
parent4e99f4b12c0e47898e8358a5c8fa54267bb16185 (diff)
downloadqemu-8b3b3a16dfca57b7c4e7b8af215aec96880153d7.zip
qemu-8b3b3a16dfca57b7c4e7b8af215aec96880153d7.tar.gz
qemu-8b3b3a16dfca57b7c4e7b8af215aec96880153d7.tar.bz2
tests/qapi-schema: Rename flat-union-* test cases to union-*
Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20210917143134.412106-23-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com
Diffstat (limited to 'tests')
-rw-r--r--tests/qapi-schema/flat-union-array-branch.err2
-rw-r--r--tests/qapi-schema/flat-union-bad-base.err2
-rw-r--r--tests/qapi-schema/flat-union-bad-discriminator.err2
-rw-r--r--tests/qapi-schema/flat-union-base-any.err2
-rw-r--r--tests/qapi-schema/flat-union-base-union.err2
-rw-r--r--tests/qapi-schema/flat-union-clash-member.err2
-rw-r--r--tests/qapi-schema/flat-union-discriminator-bad-name.err2
-rw-r--r--tests/qapi-schema/flat-union-empty.err2
-rw-r--r--tests/qapi-schema/flat-union-inline-invalid-dict.err2
-rw-r--r--tests/qapi-schema/flat-union-int-branch.err2
-rw-r--r--tests/qapi-schema/flat-union-invalid-branch-key.err2
-rw-r--r--tests/qapi-schema/flat-union-invalid-discriminator.err2
-rw-r--r--tests/qapi-schema/flat-union-invalid-if-discriminator.err2
-rw-r--r--tests/qapi-schema/flat-union-no-base.err2
-rw-r--r--tests/qapi-schema/flat-union-optional-discriminator.err2
-rw-r--r--tests/qapi-schema/flat-union-string-discriminator.err2
-rw-r--r--tests/qapi-schema/meson.build32
-rw-r--r--tests/qapi-schema/union-array-branch.err2
-rw-r--r--tests/qapi-schema/union-array-branch.json (renamed from tests/qapi-schema/flat-union-array-branch.json)0
-rw-r--r--tests/qapi-schema/union-array-branch.out (renamed from tests/qapi-schema/flat-union-array-branch.out)0
-rw-r--r--tests/qapi-schema/union-bad-base.err2
-rw-r--r--tests/qapi-schema/union-bad-base.json (renamed from tests/qapi-schema/flat-union-bad-base.json)0
-rw-r--r--tests/qapi-schema/union-bad-base.out (renamed from tests/qapi-schema/flat-union-bad-base.out)0
-rw-r--r--tests/qapi-schema/union-bad-discriminator.err2
-rw-r--r--tests/qapi-schema/union-bad-discriminator.json (renamed from tests/qapi-schema/flat-union-bad-discriminator.json)0
-rw-r--r--tests/qapi-schema/union-bad-discriminator.out (renamed from tests/qapi-schema/flat-union-bad-discriminator.out)0
-rw-r--r--tests/qapi-schema/union-base-any.err2
-rw-r--r--tests/qapi-schema/union-base-any.json (renamed from tests/qapi-schema/flat-union-base-any.json)0
-rw-r--r--tests/qapi-schema/union-base-any.out (renamed from tests/qapi-schema/flat-union-base-any.out)0
-rw-r--r--tests/qapi-schema/union-base-union.err2
-rw-r--r--tests/qapi-schema/union-base-union.json (renamed from tests/qapi-schema/flat-union-base-union.json)0
-rw-r--r--tests/qapi-schema/union-base-union.out (renamed from tests/qapi-schema/flat-union-base-union.out)0
-rw-r--r--tests/qapi-schema/union-clash-member.err2
-rw-r--r--tests/qapi-schema/union-clash-member.json (renamed from tests/qapi-schema/flat-union-clash-member.json)0
-rw-r--r--tests/qapi-schema/union-clash-member.out (renamed from tests/qapi-schema/flat-union-clash-member.out)0
-rw-r--r--tests/qapi-schema/union-discriminator-bad-name.err2
-rw-r--r--tests/qapi-schema/union-discriminator-bad-name.json (renamed from tests/qapi-schema/flat-union-discriminator-bad-name.json)0
-rw-r--r--tests/qapi-schema/union-discriminator-bad-name.out (renamed from tests/qapi-schema/flat-union-discriminator-bad-name.out)0
-rw-r--r--tests/qapi-schema/union-empty.err2
-rw-r--r--tests/qapi-schema/union-empty.json (renamed from tests/qapi-schema/flat-union-empty.json)0
-rw-r--r--tests/qapi-schema/union-empty.out (renamed from tests/qapi-schema/flat-union-empty.out)0
-rw-r--r--tests/qapi-schema/union-inline-invalid-dict.err2
-rw-r--r--tests/qapi-schema/union-inline-invalid-dict.json (renamed from tests/qapi-schema/flat-union-inline-invalid-dict.json)0
-rw-r--r--tests/qapi-schema/union-inline-invalid-dict.out (renamed from tests/qapi-schema/flat-union-inline-invalid-dict.out)0
-rw-r--r--tests/qapi-schema/union-int-branch.err2
-rw-r--r--tests/qapi-schema/union-int-branch.json (renamed from tests/qapi-schema/flat-union-int-branch.json)0
-rw-r--r--tests/qapi-schema/union-int-branch.out (renamed from tests/qapi-schema/flat-union-int-branch.out)0
-rw-r--r--tests/qapi-schema/union-invalid-branch-key.err2
-rw-r--r--tests/qapi-schema/union-invalid-branch-key.json (renamed from tests/qapi-schema/flat-union-invalid-branch-key.json)0
-rw-r--r--tests/qapi-schema/union-invalid-branch-key.out (renamed from tests/qapi-schema/flat-union-invalid-branch-key.out)0
-rw-r--r--tests/qapi-schema/union-invalid-discriminator.err2
-rw-r--r--tests/qapi-schema/union-invalid-discriminator.json (renamed from tests/qapi-schema/flat-union-invalid-discriminator.json)0
-rw-r--r--tests/qapi-schema/union-invalid-discriminator.out (renamed from tests/qapi-schema/flat-union-invalid-discriminator.out)0
-rw-r--r--tests/qapi-schema/union-invalid-if-discriminator.err2
-rw-r--r--tests/qapi-schema/union-invalid-if-discriminator.json (renamed from tests/qapi-schema/flat-union-invalid-if-discriminator.json)0
-rw-r--r--tests/qapi-schema/union-invalid-if-discriminator.out (renamed from tests/qapi-schema/flat-union-invalid-if-discriminator.out)0
-rw-r--r--tests/qapi-schema/union-no-base.err2
-rw-r--r--tests/qapi-schema/union-no-base.json (renamed from tests/qapi-schema/flat-union-no-base.json)0
-rw-r--r--tests/qapi-schema/union-no-base.out (renamed from tests/qapi-schema/flat-union-no-base.out)0
-rw-r--r--tests/qapi-schema/union-optional-discriminator.err2
-rw-r--r--tests/qapi-schema/union-optional-discriminator.json (renamed from tests/qapi-schema/flat-union-optional-discriminator.json)0
-rw-r--r--tests/qapi-schema/union-optional-discriminator.out (renamed from tests/qapi-schema/flat-union-optional-discriminator.out)0
-rw-r--r--tests/qapi-schema/union-string-discriminator.err2
-rw-r--r--tests/qapi-schema/union-string-discriminator.json (renamed from tests/qapi-schema/flat-union-string-discriminator.json)0
-rw-r--r--tests/qapi-schema/union-string-discriminator.out (renamed from tests/qapi-schema/flat-union-string-discriminator.out)0
65 files changed, 48 insertions, 48 deletions
diff --git a/tests/qapi-schema/flat-union-array-branch.err b/tests/qapi-schema/flat-union-array-branch.err
deleted file mode 100644
index 20a8ef1..0000000
--- a/tests/qapi-schema/flat-union-array-branch.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-array-branch.json: In union 'TestUnion':
-flat-union-array-branch.json:8: 'data' member 'value1' cannot be an array
diff --git a/tests/qapi-schema/flat-union-bad-base.err b/tests/qapi-schema/flat-union-bad-base.err
deleted file mode 100644
index e0a205a..0000000
--- a/tests/qapi-schema/flat-union-bad-base.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-bad-base.json: In union 'TestUnion':
-flat-union-bad-base.json:8: member 'string' of type 'TestTypeA' collides with base member 'string'
diff --git a/tests/qapi-schema/flat-union-bad-discriminator.err b/tests/qapi-schema/flat-union-bad-discriminator.err
deleted file mode 100644
index b705439..0000000
--- a/tests/qapi-schema/flat-union-bad-discriminator.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-bad-discriminator.json: In union 'TestUnion':
-flat-union-bad-discriminator.json:11: 'discriminator' requires a string name
diff --git a/tests/qapi-schema/flat-union-base-any.err b/tests/qapi-schema/flat-union-base-any.err
deleted file mode 100644
index c2d4de6..0000000
--- a/tests/qapi-schema/flat-union-base-any.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-base-any.json: In union 'TestUnion':
-flat-union-base-any.json:8: 'base' requires a struct type, built-in type 'any' isn't
diff --git a/tests/qapi-schema/flat-union-base-union.err b/tests/qapi-schema/flat-union-base-union.err
deleted file mode 100644
index 3563e87..0000000
--- a/tests/qapi-schema/flat-union-base-union.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-base-union.json: In union 'TestUnion':
-flat-union-base-union.json:17: 'base' requires a struct type, union type 'UnionBase' isn't
diff --git a/tests/qapi-schema/flat-union-clash-member.err b/tests/qapi-schema/flat-union-clash-member.err
deleted file mode 100644
index 07551e6..0000000
--- a/tests/qapi-schema/flat-union-clash-member.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-clash-member.json: In union 'TestUnion':
-flat-union-clash-member.json:11: member 'name' of type 'Branch1' collides with member 'name' of type 'Base'
diff --git a/tests/qapi-schema/flat-union-discriminator-bad-name.err b/tests/qapi-schema/flat-union-discriminator-bad-name.err
deleted file mode 100644
index 28be49c..0000000
--- a/tests/qapi-schema/flat-union-discriminator-bad-name.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-discriminator-bad-name.json: In union 'MyUnion':
-flat-union-discriminator-bad-name.json:6: discriminator '*switch' is not a member of 'base'
diff --git a/tests/qapi-schema/flat-union-empty.err b/tests/qapi-schema/flat-union-empty.err
deleted file mode 100644
index 89b0f25..0000000
--- a/tests/qapi-schema/flat-union-empty.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-empty.json: In union 'Union':
-flat-union-empty.json:4: union has no branches
diff --git a/tests/qapi-schema/flat-union-inline-invalid-dict.err b/tests/qapi-schema/flat-union-inline-invalid-dict.err
deleted file mode 100644
index 53e5416..0000000
--- a/tests/qapi-schema/flat-union-inline-invalid-dict.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-inline-invalid-dict.json: In union 'TestUnion':
-flat-union-inline-invalid-dict.json:7: 'data' member 'value1' misses key 'type'
diff --git a/tests/qapi-schema/flat-union-int-branch.err b/tests/qapi-schema/flat-union-int-branch.err
deleted file mode 100644
index ae7f800..0000000
--- a/tests/qapi-schema/flat-union-int-branch.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-int-branch.json: In union 'TestUnion':
-flat-union-int-branch.json:8: branch 'value1' cannot use built-in type 'int'
diff --git a/tests/qapi-schema/flat-union-invalid-branch-key.err b/tests/qapi-schema/flat-union-invalid-branch-key.err
deleted file mode 100644
index 5576a25..0000000
--- a/tests/qapi-schema/flat-union-invalid-branch-key.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-invalid-branch-key.json: In union 'TestUnion':
-flat-union-invalid-branch-key.json:13: branch 'value_wrong' is not a value of enum type 'TestEnum'
diff --git a/tests/qapi-schema/flat-union-invalid-discriminator.err b/tests/qapi-schema/flat-union-invalid-discriminator.err
deleted file mode 100644
index 99bca2d..0000000
--- a/tests/qapi-schema/flat-union-invalid-discriminator.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-invalid-discriminator.json: In union 'TestUnion':
-flat-union-invalid-discriminator.json:10: discriminator 'enum_wrong' is not a member of 'base'
diff --git a/tests/qapi-schema/flat-union-invalid-if-discriminator.err b/tests/qapi-schema/flat-union-invalid-if-discriminator.err
deleted file mode 100644
index 350f28d..0000000
--- a/tests/qapi-schema/flat-union-invalid-if-discriminator.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-invalid-if-discriminator.json: In union 'TestUnion':
-flat-union-invalid-if-discriminator.json:10: discriminator member 'enum1' of 'base' must not be conditional
diff --git a/tests/qapi-schema/flat-union-no-base.err b/tests/qapi-schema/flat-union-no-base.err
deleted file mode 100644
index c60482f..0000000
--- a/tests/qapi-schema/flat-union-no-base.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-no-base.json: In union 'TestUnion':
-flat-union-no-base.json:8: union misses key 'base'
diff --git a/tests/qapi-schema/flat-union-optional-discriminator.err b/tests/qapi-schema/flat-union-optional-discriminator.err
deleted file mode 100644
index 3d60a1b..0000000
--- a/tests/qapi-schema/flat-union-optional-discriminator.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-optional-discriminator.json: In union 'MyUnion':
-flat-union-optional-discriminator.json:6: discriminator member 'switch' of base type 'Base' must not be optional
diff --git a/tests/qapi-schema/flat-union-string-discriminator.err b/tests/qapi-schema/flat-union-string-discriminator.err
deleted file mode 100644
index ff42c97..0000000
--- a/tests/qapi-schema/flat-union-string-discriminator.err
+++ /dev/null
@@ -1,2 +0,0 @@
-flat-union-string-discriminator.json: In union 'TestUnion':
-flat-union-string-discriminator.json:13: discriminator member 'kind' of base type 'TestBase' must be of enum type
diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build
index 85d3de1..6187efb 100644
--- a/tests/qapi-schema/meson.build
+++ b/tests/qapi-schema/meson.build
@@ -107,22 +107,6 @@ schemas = [
'features-name-bad-type.json',
'features-no-list.json',
'features-unknown-key.json',
- 'flat-union-array-branch.json',
- 'flat-union-bad-base.json',
- 'flat-union-bad-discriminator.json',
- 'flat-union-base-any.json',
- 'flat-union-base-union.json',
- 'flat-union-clash-member.json',
- 'flat-union-discriminator-bad-name.json',
- 'flat-union-empty.json',
- 'flat-union-inline-invalid-dict.json',
- 'flat-union-int-branch.json',
- 'flat-union-invalid-branch-key.json',
- 'flat-union-invalid-discriminator.json',
- 'flat-union-invalid-if-discriminator.json',
- 'flat-union-no-base.json',
- 'flat-union-optional-discriminator.json',
- 'flat-union-string-discriminator.json',
'funny-char.json',
'funny-word.json',
'ident-with-escape.json',
@@ -190,12 +174,28 @@ schemas = [
'unclosed-list.json',
'unclosed-object.json',
'unclosed-string.json',
+ 'union-array-branch.json',
+ 'union-bad-base.json',
+ 'union-bad-discriminator.json',
+ 'union-base-any.json',
'union-base-empty.json',
'union-base-no-discriminator.json',
+ 'union-base-union.json',
'union-branch-if-invalid.json',
'union-branch-invalid-dict.json',
+ 'union-clash-member.json',
+ 'union-discriminator-bad-name.json',
+ 'union-empty.json',
+ 'union-inline-invalid-dict.json',
+ 'union-int-branch.json',
'union-invalid-base.json',
+ 'union-invalid-branch-key.json',
'union-invalid-data.json',
+ 'union-invalid-discriminator.json',
+ 'union-invalid-if-discriminator.json',
+ 'union-no-base.json',
+ 'union-optional-discriminator.json',
+ 'union-string-discriminator.json',
'union-unknown.json',
'unknown-escape.json',
'unknown-expr-key.json',
diff --git a/tests/qapi-schema/union-array-branch.err b/tests/qapi-schema/union-array-branch.err
new file mode 100644
index 0000000..5db9c17
--- /dev/null
+++ b/tests/qapi-schema/union-array-branch.err
@@ -0,0 +1,2 @@
+union-array-branch.json: In union 'TestUnion':
+union-array-branch.json:8: 'data' member 'value1' cannot be an array
diff --git a/tests/qapi-schema/flat-union-array-branch.json b/tests/qapi-schema/union-array-branch.json
index 6dda7ec..6dda7ec 100644
--- a/tests/qapi-schema/flat-union-array-branch.json
+++ b/tests/qapi-schema/union-array-branch.json
diff --git a/tests/qapi-schema/flat-union-array-branch.out b/tests/qapi-schema/union-array-branch.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-array-branch.out
+++ b/tests/qapi-schema/union-array-branch.out
diff --git a/tests/qapi-schema/union-bad-base.err b/tests/qapi-schema/union-bad-base.err
new file mode 100644
index 0000000..42b2ed1
--- /dev/null
+++ b/tests/qapi-schema/union-bad-base.err
@@ -0,0 +1,2 @@
+union-bad-base.json: In union 'TestUnion':
+union-bad-base.json:8: member 'string' of type 'TestTypeA' collides with base member 'string'
diff --git a/tests/qapi-schema/flat-union-bad-base.json b/tests/qapi-schema/union-bad-base.json
index 74dd421..74dd421 100644
--- a/tests/qapi-schema/flat-union-bad-base.json
+++ b/tests/qapi-schema/union-bad-base.json
diff --git a/tests/qapi-schema/flat-union-bad-base.out b/tests/qapi-schema/union-bad-base.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-bad-base.out
+++ b/tests/qapi-schema/union-bad-base.out
diff --git a/tests/qapi-schema/union-bad-discriminator.err b/tests/qapi-schema/union-bad-discriminator.err
new file mode 100644
index 0000000..7cfd470
--- /dev/null
+++ b/tests/qapi-schema/union-bad-discriminator.err
@@ -0,0 +1,2 @@
+union-bad-discriminator.json: In union 'TestUnion':
+union-bad-discriminator.json:11: 'discriminator' requires a string name
diff --git a/tests/qapi-schema/flat-union-bad-discriminator.json b/tests/qapi-schema/union-bad-discriminator.json
index cd10b9d..cd10b9d 100644
--- a/tests/qapi-schema/flat-union-bad-discriminator.json
+++ b/tests/qapi-schema/union-bad-discriminator.json
diff --git a/tests/qapi-schema/flat-union-bad-discriminator.out b/tests/qapi-schema/union-bad-discriminator.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-bad-discriminator.out
+++ b/tests/qapi-schema/union-bad-discriminator.out
diff --git a/tests/qapi-schema/union-base-any.err b/tests/qapi-schema/union-base-any.err
new file mode 100644
index 0000000..82b48bc
--- /dev/null
+++ b/tests/qapi-schema/union-base-any.err
@@ -0,0 +1,2 @@
+union-base-any.json: In union 'TestUnion':
+union-base-any.json:8: 'base' requires a struct type, built-in type 'any' isn't
diff --git a/tests/qapi-schema/flat-union-base-any.json b/tests/qapi-schema/union-base-any.json
index fe66b71..fe66b71 100644
--- a/tests/qapi-schema/flat-union-base-any.json
+++ b/tests/qapi-schema/union-base-any.json
diff --git a/tests/qapi-schema/flat-union-base-any.out b/tests/qapi-schema/union-base-any.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-base-any.out
+++ b/tests/qapi-schema/union-base-any.out
diff --git a/tests/qapi-schema/union-base-union.err b/tests/qapi-schema/union-base-union.err
new file mode 100644
index 0000000..2bddaf6
--- /dev/null
+++ b/tests/qapi-schema/union-base-union.err
@@ -0,0 +1,2 @@
+union-base-union.json: In union 'TestUnion':
+union-base-union.json:17: 'base' requires a struct type, union type 'UnionBase' isn't
diff --git a/tests/qapi-schema/flat-union-base-union.json b/tests/qapi-schema/union-base-union.json
index 82d4c96..82d4c96 100644
--- a/tests/qapi-schema/flat-union-base-union.json
+++ b/tests/qapi-schema/union-base-union.json
diff --git a/tests/qapi-schema/flat-union-base-union.out b/tests/qapi-schema/union-base-union.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-base-union.out
+++ b/tests/qapi-schema/union-base-union.out
diff --git a/tests/qapi-schema/union-clash-member.err b/tests/qapi-schema/union-clash-member.err
new file mode 100644
index 0000000..c1f3a02
--- /dev/null
+++ b/tests/qapi-schema/union-clash-member.err
@@ -0,0 +1,2 @@
+union-clash-member.json: In union 'TestUnion':
+union-clash-member.json:11: member 'name' of type 'Branch1' collides with member 'name' of type 'Base'
diff --git a/tests/qapi-schema/flat-union-clash-member.json b/tests/qapi-schema/union-clash-member.json
index 9efc771..9efc771 100644
--- a/tests/qapi-schema/flat-union-clash-member.json
+++ b/tests/qapi-schema/union-clash-member.json
diff --git a/tests/qapi-schema/flat-union-clash-member.out b/tests/qapi-schema/union-clash-member.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-clash-member.out
+++ b/tests/qapi-schema/union-clash-member.out
diff --git a/tests/qapi-schema/union-discriminator-bad-name.err b/tests/qapi-schema/union-discriminator-bad-name.err
new file mode 100644
index 0000000..5793e9a
--- /dev/null
+++ b/tests/qapi-schema/union-discriminator-bad-name.err
@@ -0,0 +1,2 @@
+union-discriminator-bad-name.json: In union 'MyUnion':
+union-discriminator-bad-name.json:6: discriminator '*switch' is not a member of 'base'
diff --git a/tests/qapi-schema/flat-union-discriminator-bad-name.json b/tests/qapi-schema/union-discriminator-bad-name.json
index 3ae8c06..3ae8c06 100644
--- a/tests/qapi-schema/flat-union-discriminator-bad-name.json
+++ b/tests/qapi-schema/union-discriminator-bad-name.json
diff --git a/tests/qapi-schema/flat-union-discriminator-bad-name.out b/tests/qapi-schema/union-discriminator-bad-name.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-discriminator-bad-name.out
+++ b/tests/qapi-schema/union-discriminator-bad-name.out
diff --git a/tests/qapi-schema/union-empty.err b/tests/qapi-schema/union-empty.err
new file mode 100644
index 0000000..d428439
--- /dev/null
+++ b/tests/qapi-schema/union-empty.err
@@ -0,0 +1,2 @@
+union-empty.json: In union 'Union':
+union-empty.json:4: union has no branches
diff --git a/tests/qapi-schema/flat-union-empty.json b/tests/qapi-schema/union-empty.json
index 584ed60..584ed60 100644
--- a/tests/qapi-schema/flat-union-empty.json
+++ b/tests/qapi-schema/union-empty.json
diff --git a/tests/qapi-schema/flat-union-empty.out b/tests/qapi-schema/union-empty.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-empty.out
+++ b/tests/qapi-schema/union-empty.out
diff --git a/tests/qapi-schema/union-inline-invalid-dict.err b/tests/qapi-schema/union-inline-invalid-dict.err
new file mode 100644
index 0000000..25ddf7c
--- /dev/null
+++ b/tests/qapi-schema/union-inline-invalid-dict.err
@@ -0,0 +1,2 @@
+union-inline-invalid-dict.json: In union 'TestUnion':
+union-inline-invalid-dict.json:7: 'data' member 'value1' misses key 'type'
diff --git a/tests/qapi-schema/flat-union-inline-invalid-dict.json b/tests/qapi-schema/union-inline-invalid-dict.json
index 1779712..1779712 100644
--- a/tests/qapi-schema/flat-union-inline-invalid-dict.json
+++ b/tests/qapi-schema/union-inline-invalid-dict.json
diff --git a/tests/qapi-schema/flat-union-inline-invalid-dict.out b/tests/qapi-schema/union-inline-invalid-dict.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-inline-invalid-dict.out
+++ b/tests/qapi-schema/union-inline-invalid-dict.out
diff --git a/tests/qapi-schema/union-int-branch.err b/tests/qapi-schema/union-int-branch.err
new file mode 100644
index 0000000..8fdc81e
--- /dev/null
+++ b/tests/qapi-schema/union-int-branch.err
@@ -0,0 +1,2 @@
+union-int-branch.json: In union 'TestUnion':
+union-int-branch.json:8: branch 'value1' cannot use built-in type 'int'
diff --git a/tests/qapi-schema/flat-union-int-branch.json b/tests/qapi-schema/union-int-branch.json
index 567043d..567043d 100644
--- a/tests/qapi-schema/flat-union-int-branch.json
+++ b/tests/qapi-schema/union-int-branch.json
diff --git a/tests/qapi-schema/flat-union-int-branch.out b/tests/qapi-schema/union-int-branch.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-int-branch.out
+++ b/tests/qapi-schema/union-int-branch.out
diff --git a/tests/qapi-schema/union-invalid-branch-key.err b/tests/qapi-schema/union-invalid-branch-key.err
new file mode 100644
index 0000000..bf58800
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-branch-key.err
@@ -0,0 +1,2 @@
+union-invalid-branch-key.json: In union 'TestUnion':
+union-invalid-branch-key.json:13: branch 'value_wrong' is not a value of enum type 'TestEnum'
diff --git a/tests/qapi-schema/flat-union-invalid-branch-key.json b/tests/qapi-schema/union-invalid-branch-key.json
index 95ff774..95ff774 100644
--- a/tests/qapi-schema/flat-union-invalid-branch-key.json
+++ b/tests/qapi-schema/union-invalid-branch-key.json
diff --git a/tests/qapi-schema/flat-union-invalid-branch-key.out b/tests/qapi-schema/union-invalid-branch-key.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-invalid-branch-key.out
+++ b/tests/qapi-schema/union-invalid-branch-key.out
diff --git a/tests/qapi-schema/union-invalid-discriminator.err b/tests/qapi-schema/union-invalid-discriminator.err
new file mode 100644
index 0000000..38efb24
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-discriminator.err
@@ -0,0 +1,2 @@
+union-invalid-discriminator.json: In union 'TestUnion':
+union-invalid-discriminator.json:10: discriminator 'enum_wrong' is not a member of 'base'
diff --git a/tests/qapi-schema/flat-union-invalid-discriminator.json b/tests/qapi-schema/union-invalid-discriminator.json
index c4fce97..c4fce97 100644
--- a/tests/qapi-schema/flat-union-invalid-discriminator.json
+++ b/tests/qapi-schema/union-invalid-discriminator.json
diff --git a/tests/qapi-schema/flat-union-invalid-discriminator.out b/tests/qapi-schema/union-invalid-discriminator.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-invalid-discriminator.out
+++ b/tests/qapi-schema/union-invalid-discriminator.out
diff --git a/tests/qapi-schema/union-invalid-if-discriminator.err b/tests/qapi-schema/union-invalid-if-discriminator.err
new file mode 100644
index 0000000..3f41d03
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-if-discriminator.err
@@ -0,0 +1,2 @@
+union-invalid-if-discriminator.json: In union 'TestUnion':
+union-invalid-if-discriminator.json:10: discriminator member 'enum1' of 'base' must not be conditional
diff --git a/tests/qapi-schema/flat-union-invalid-if-discriminator.json b/tests/qapi-schema/union-invalid-if-discriminator.json
index e49992b..e49992b 100644
--- a/tests/qapi-schema/flat-union-invalid-if-discriminator.json
+++ b/tests/qapi-schema/union-invalid-if-discriminator.json
diff --git a/tests/qapi-schema/flat-union-invalid-if-discriminator.out b/tests/qapi-schema/union-invalid-if-discriminator.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-invalid-if-discriminator.out
+++ b/tests/qapi-schema/union-invalid-if-discriminator.out
diff --git a/tests/qapi-schema/union-no-base.err b/tests/qapi-schema/union-no-base.err
new file mode 100644
index 0000000..cbf12ac
--- /dev/null
+++ b/tests/qapi-schema/union-no-base.err
@@ -0,0 +1,2 @@
+union-no-base.json: In union 'TestUnion':
+union-no-base.json:8: union misses key 'base'
diff --git a/tests/qapi-schema/flat-union-no-base.json b/tests/qapi-schema/union-no-base.json
index f6fe12d..f6fe12d 100644
--- a/tests/qapi-schema/flat-union-no-base.json
+++ b/tests/qapi-schema/union-no-base.json
diff --git a/tests/qapi-schema/flat-union-no-base.out b/tests/qapi-schema/union-no-base.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-no-base.out
+++ b/tests/qapi-schema/union-no-base.out
diff --git a/tests/qapi-schema/union-optional-discriminator.err b/tests/qapi-schema/union-optional-discriminator.err
new file mode 100644
index 0000000..8d980bd
--- /dev/null
+++ b/tests/qapi-schema/union-optional-discriminator.err
@@ -0,0 +1,2 @@
+union-optional-discriminator.json: In union 'MyUnion':
+union-optional-discriminator.json:6: discriminator member 'switch' of base type 'Base' must not be optional
diff --git a/tests/qapi-schema/flat-union-optional-discriminator.json b/tests/qapi-schema/union-optional-discriminator.json
index 2e7f766..2e7f766 100644
--- a/tests/qapi-schema/flat-union-optional-discriminator.json
+++ b/tests/qapi-schema/union-optional-discriminator.json
diff --git a/tests/qapi-schema/flat-union-optional-discriminator.out b/tests/qapi-schema/union-optional-discriminator.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-optional-discriminator.out
+++ b/tests/qapi-schema/union-optional-discriminator.out
diff --git a/tests/qapi-schema/union-string-discriminator.err b/tests/qapi-schema/union-string-discriminator.err
new file mode 100644
index 0000000..eccbe68
--- /dev/null
+++ b/tests/qapi-schema/union-string-discriminator.err
@@ -0,0 +1,2 @@
+union-string-discriminator.json: In union 'TestUnion':
+union-string-discriminator.json:13: discriminator member 'kind' of base type 'TestBase' must be of enum type
diff --git a/tests/qapi-schema/flat-union-string-discriminator.json b/tests/qapi-schema/union-string-discriminator.json
index 8af6033..8af6033 100644
--- a/tests/qapi-schema/flat-union-string-discriminator.json
+++ b/tests/qapi-schema/union-string-discriminator.json
diff --git a/tests/qapi-schema/flat-union-string-discriminator.out b/tests/qapi-schema/union-string-discriminator.out
index e69de29..e69de29 100644
--- a/tests/qapi-schema/flat-union-string-discriminator.out
+++ b/tests/qapi-schema/union-string-discriminator.out