[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/13] qapi: add struct-errors test case to test-qmp
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH 02/13] qapi: add struct-errors test case to test-qmp-output-visitor |
Date: |
Tue, 27 Mar 2012 09:20:40 -0300 |
From: Paolo Bonzini <address@hidden>
This test case verifies that invalid native enums are caught, and causes
qapi to tear down the QObject tree under construction, exercising the
previous patch.
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Laszlo Ersek <address@hidden>
Signed-off-by: Luiz Capitulino <address@hidden>
---
qapi-schema-test.json | 2 +-
test-qmp-output-visitor.c | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/qapi-schema-test.json b/qapi-schema-test.json
index 8c7f9f7..9eae350 100644
--- a/qapi-schema-test.json
+++ b/qapi-schema-test.json
@@ -8,7 +8,7 @@
# for testing nested structs
{ 'type': 'UserDefOne',
- 'data': { 'integer': 'int', 'string': 'str' } }
+ 'data': { 'integer': 'int', 'string': 'str', '*enum1': 'EnumOne' } }
{ 'type': 'UserDefTwo',
'data': { 'string': 'str',
diff --git a/test-qmp-output-visitor.c b/test-qmp-output-visitor.c
index 4d6c4d4..24a6359 100644
--- a/test-qmp-output-visitor.c
+++ b/test-qmp-output-visitor.c
@@ -274,6 +274,24 @@ static void
test_visitor_out_struct_nested(TestOutputVisitorData *data,
qapi_free_UserDefNested(ud2);
}
+static void test_visitor_out_struct_errors(TestOutputVisitorData *data,
+ const void *unused)
+{
+ EnumOne bad_values[] = { ENUM_ONE_MAX, -1 };
+ UserDefOne u = { 0 }, *pu = &u;
+ Error *errp;
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
+ errp = NULL;
+ u.has_enum1 = true;
+ u.enum1 = bad_values[i];
+ visit_type_UserDefOne(data->ov, &pu, "unused", &errp);
+ g_assert(error_is_set(&errp) == true);
+ error_free(errp);
+ }
+}
+
typedef struct TestStructList
{
TestStruct *value;
@@ -444,6 +462,8 @@ int main(int argc, char **argv)
&out_visitor_data, test_visitor_out_struct);
output_visitor_test_add("/visitor/output/struct-nested",
&out_visitor_data, test_visitor_out_struct_nested);
+ output_visitor_test_add("/visitor/output/struct-errors",
+ &out_visitor_data, test_visitor_out_struct_errors);
output_visitor_test_add("/visitor/output/list",
&out_visitor_data, test_visitor_out_list);
output_visitor_test_add("/visitor/output/list-qapi-free",
--
1.7.9.2.384.g4a92a
- [Qemu-devel] [PULL 00/13]: QMP queue, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 02/13] qapi: add struct-errors test case to test-qmp-output-visitor,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 01/13] qapi: fix double free in qmp_output_visitor_cleanup(), Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 03/13] qapi: add a test case for type errors, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 05/13] qapi: fix memory leak on error, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 06/13] qapi: shortcut visits on errors, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 08/13] qapi: untangle next_list, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 04/13] qapi: fail hard on stack imbalance, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 07/13] qapi: allow freeing partially-allocated objects, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 12/13] qmp: parse commands in strict mode, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 09/13] qapi: place outermost object on qiv stack, Luiz Capitulino, 2012/03/27
- [Qemu-devel] [PATCH 11/13] qmp: add and use q type specifier, Luiz Capitulino, 2012/03/27