qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH V7 11/11] qapi test: add error path test for union


From: Wenchao Xia
Subject: [Qemu-devel] [PATCH V7 11/11] qapi test: add error path test for union
Date: Thu, 20 Feb 2014 00:54:55 -0500

Signed-off-by: Wenchao Xia <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
---
 tests/Makefile                                     |    8 +++++---
 tests/qapi-schema/duplicate-key.err                |    1 +
 tests/qapi-schema/duplicate-key.exit               |    1 +
 tests/qapi-schema/duplicate-key.json               |    2 ++
 tests/qapi-schema/union-enum-value-not-cover.err   |    1 +
 tests/qapi-schema/union-enum-value-not-cover.exit  |    1 +
 tests/qapi-schema/union-enum-value-not-cover.json  |   16 ++++++++++++++++
 tests/qapi-schema/union-invalid-base.err           |    1 +
 tests/qapi-schema/union-invalid-base.exit          |    1 +
 tests/qapi-schema/union-invalid-base.json          |   17 +++++++++++++++++
 .../union-invalid-discriminator-value.err          |    1 +
 .../union-invalid-discriminator-value.exit         |    1 +
 .../union-invalid-discriminator-value.json         |   17 +++++++++++++++++
 tests/qapi-schema/union-invalid-discriminator.err  |    1 +
 tests/qapi-schema/union-invalid-discriminator.exit |    1 +
 tests/qapi-schema/union-invalid-discriminator.json |   17 +++++++++++++++++
 16 files changed, 84 insertions(+), 3 deletions(-)
 create mode 100644 tests/qapi-schema/duplicate-key.err
 create mode 100644 tests/qapi-schema/duplicate-key.exit
 create mode 100644 tests/qapi-schema/duplicate-key.json
 create mode 100644 tests/qapi-schema/duplicate-key.out
 create mode 100644 tests/qapi-schema/union-enum-value-not-cover.err
 create mode 100644 tests/qapi-schema/union-enum-value-not-cover.exit
 create mode 100644 tests/qapi-schema/union-enum-value-not-cover.json
 create mode 100644 tests/qapi-schema/union-enum-value-not-cover.out
 create mode 100644 tests/qapi-schema/union-invalid-base.err
 create mode 100644 tests/qapi-schema/union-invalid-base.exit
 create mode 100644 tests/qapi-schema/union-invalid-base.json
 create mode 100644 tests/qapi-schema/union-invalid-base.out
 create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.err
 create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.exit
 create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.json
 create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.out
 create mode 100644 tests/qapi-schema/union-invalid-discriminator.err
 create mode 100644 tests/qapi-schema/union-invalid-discriminator.exit
 create mode 100644 tests/qapi-schema/union-invalid-discriminator.json
 create mode 100644 tests/qapi-schema/union-invalid-discriminator.out

diff --git a/tests/Makefile b/tests/Makefile
index 9a7d2f1..9219422 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -119,12 +119,14 @@ check-qtest-xtensa-y += tests/qom-test$(EXESUF)
 check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
 
 check-qapi-schema-y := $(addprefix tests/qapi-schema/, \
-        comments.json empty.json funny-char.json indented-expr.json \
-        missing-colon.json missing-comma-list.json \
+        comments.json duplicate-key.json empty.json funny-char.json \
+        indented-expr.json missing-colon.json missing-comma-list.json \
         missing-comma-object.json non-objects.json \
         qapi-schema-test.json quoted-structural-chars.json \
         trailing-comma-list.json trailing-comma-object.json \
-        unclosed-list.json unclosed-object.json unclosed-string.json)
+        unclosed-list.json unclosed-object.json unclosed-string.json \
+        union-invalid-base.json union-invalid-discriminator.json \
+        union-invalid-discriminator-value.json union-enum-value-not-cover.json)
 
 GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h 
tests/test-qmp-commands.h
 
diff --git a/tests/qapi-schema/duplicate-key.err 
b/tests/qapi-schema/duplicate-key.err
new file mode 100644
index 0000000..0801c6a
--- /dev/null
+++ b/tests/qapi-schema/duplicate-key.err
@@ -0,0 +1 @@
+<stdin>:2:10: Duplicate key "key"
diff --git a/tests/qapi-schema/duplicate-key.exit 
b/tests/qapi-schema/duplicate-key.exit
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/qapi-schema/duplicate-key.exit
@@ -0,0 +1 @@
+1
diff --git a/tests/qapi-schema/duplicate-key.json 
b/tests/qapi-schema/duplicate-key.json
new file mode 100644
index 0000000..1b55d88
--- /dev/null
+++ b/tests/qapi-schema/duplicate-key.json
@@ -0,0 +1,2 @@
+{ 'key': 'value',
+  'key': 'value' }
diff --git a/tests/qapi-schema/duplicate-key.out 
b/tests/qapi-schema/duplicate-key.out
new file mode 100644
index 0000000..e69de29
diff --git a/tests/qapi-schema/union-enum-value-not-cover.err 
b/tests/qapi-schema/union-enum-value-not-cover.err
new file mode 100644
index 0000000..a2354b3
--- /dev/null
+++ b/tests/qapi-schema/union-enum-value-not-cover.err
@@ -0,0 +1 @@
+<stdin>:13: Enum value 'value2' is not covered by a branch of union 'TestUnion'
diff --git a/tests/qapi-schema/union-enum-value-not-cover.exit 
b/tests/qapi-schema/union-enum-value-not-cover.exit
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/qapi-schema/union-enum-value-not-cover.exit
@@ -0,0 +1 @@
+1
diff --git a/tests/qapi-schema/union-enum-value-not-cover.json 
b/tests/qapi-schema/union-enum-value-not-cover.json
new file mode 100644
index 0000000..c6a8432
--- /dev/null
+++ b/tests/qapi-schema/union-enum-value-not-cover.json
@@ -0,0 +1,16 @@
+{ 'enum': 'TestEnum',
+  'data': [ 'value1', 'value2' ] }
+
+{ 'type': 'TestBase',
+  'data': { 'enum1': 'TestEnum' } }
+
+{ 'type': 'TestTypeA',
+  'data': { 'string': 'str' } }
+
+{ 'type': 'TestTypeB',
+  'data': { 'integer': 'int' } }
+
+{ 'union': 'TestUnion',
+  'base': 'TestBase',
+  'discriminator': 'enum1',
+  'data': { 'value1': 'TestTypeA' } }
diff --git a/tests/qapi-schema/union-enum-value-not-cover.out 
b/tests/qapi-schema/union-enum-value-not-cover.out
new file mode 100644
index 0000000..e69de29
diff --git a/tests/qapi-schema/union-invalid-base.err 
b/tests/qapi-schema/union-invalid-base.err
new file mode 100644
index 0000000..cf3229e
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-base.err
@@ -0,0 +1 @@
+<stdin>:13: Base 'TestBaseWrong' is not a valid type
diff --git a/tests/qapi-schema/union-invalid-base.exit 
b/tests/qapi-schema/union-invalid-base.exit
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-base.exit
@@ -0,0 +1 @@
+1
diff --git a/tests/qapi-schema/union-invalid-base.json 
b/tests/qapi-schema/union-invalid-base.json
new file mode 100644
index 0000000..cffc237
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-base.json
@@ -0,0 +1,17 @@
+{ 'enum': 'TestEnum',
+  'data': [ 'value1', 'value2' ] }
+
+{ 'type': 'TestBase',
+  'data': { 'enum1': 'TestEnum' } }
+
+{ 'type': 'TestTypeA',
+  'data': { 'string': 'str' } }
+
+{ 'type': 'TestTypeB',
+  'data': { 'integer': 'int' } }
+
+{ 'union': 'TestUnion',
+  'base': 'TestBaseWrong',
+  'discriminator': 'enum1',
+  'data': { 'value1': 'TestTypeA',
+            'value2': 'TestTypeB' } }
diff --git a/tests/qapi-schema/union-invalid-base.out 
b/tests/qapi-schema/union-invalid-base.out
new file mode 100644
index 0000000..e69de29
diff --git a/tests/qapi-schema/union-invalid-discriminator-value.err 
b/tests/qapi-schema/union-invalid-discriminator-value.err
new file mode 100644
index 0000000..1125caf
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-discriminator-value.err
@@ -0,0 +1 @@
+<stdin>:13: Discriminator value 'value_wrong' is not found in enum 'TestEnum'
diff --git a/tests/qapi-schema/union-invalid-discriminator-value.exit 
b/tests/qapi-schema/union-invalid-discriminator-value.exit
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-discriminator-value.exit
@@ -0,0 +1 @@
+1
diff --git a/tests/qapi-schema/union-invalid-discriminator-value.json 
b/tests/qapi-schema/union-invalid-discriminator-value.json
new file mode 100644
index 0000000..a624282
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-discriminator-value.json
@@ -0,0 +1,17 @@
+{ 'enum': 'TestEnum',
+  'data': [ 'value1', 'value2' ] }
+
+{ 'type': 'TestBase',
+  'data': { 'enum1': 'TestEnum' } }
+
+{ 'type': 'TestTypeA',
+  'data': { 'string': 'str' } }
+
+{ 'type': 'TestTypeB',
+  'data': { 'integer': 'int' } }
+
+{ 'union': 'TestUnion',
+  'base': 'TestBase',
+  'discriminator': 'enum1',
+  'data': { 'value_wrong': 'TestTypeA',
+            'value2': 'TestTypeB' } }
diff --git a/tests/qapi-schema/union-invalid-discriminator-value.out 
b/tests/qapi-schema/union-invalid-discriminator-value.out
new file mode 100644
index 0000000..e69de29
diff --git a/tests/qapi-schema/union-invalid-discriminator.err 
b/tests/qapi-schema/union-invalid-discriminator.err
new file mode 100644
index 0000000..c5eeda9
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-discriminator.err
@@ -0,0 +1 @@
+<stdin>:13: Discriminator 'enum_wrong' not found in schema
diff --git a/tests/qapi-schema/union-invalid-discriminator.exit 
b/tests/qapi-schema/union-invalid-discriminator.exit
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-discriminator.exit
@@ -0,0 +1 @@
+1
diff --git a/tests/qapi-schema/union-invalid-discriminator.json 
b/tests/qapi-schema/union-invalid-discriminator.json
new file mode 100644
index 0000000..887157e
--- /dev/null
+++ b/tests/qapi-schema/union-invalid-discriminator.json
@@ -0,0 +1,17 @@
+{ 'enum': 'TestEnum',
+  'data': [ 'value1', 'value2' ] }
+
+{ 'type': 'TestBase',
+  'data': { 'enum1': 'TestEnum' } }
+
+{ 'type': 'TestTypeA',
+  'data': { 'string': 'str' } }
+
+{ 'type': 'TestTypeB',
+  'data': { 'integer': 'int' } }
+
+{ 'union': 'TestUnion',
+  'base': 'TestBase',
+  'discriminator': 'enum_wrong',
+  'data': { 'value1': 'TestTypeA',
+            'value2': 'TestTypeB' } }
diff --git a/tests/qapi-schema/union-invalid-discriminator.out 
b/tests/qapi-schema/union-invalid-discriminator.out
new file mode 100644
index 0000000..e69de29
-- 
1.7.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]