diff options
| author | Anthony Liguori <aliguori@us.ibm.com> | 2012-03-28 12:45:22 -0500 |
|---|---|---|
| committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-03-28 12:45:22 -0500 |
| commit | c76d1a9b3f367754966c326d81ff8566798b473a (patch) | |
| tree | 2ac34dddcb214c3a7de2834f8f69e8211f697a5e /test-qmp-output-visitor.c | |
| parent | 0a5a4e0568d4cc981457a2d1e7f86923eeff94ed (diff) | |
| parent | 1829851cfee10e196abec50325d828de182fd356 (diff) | |
| download | focaccia-qemu-c76d1a9b3f367754966c326d81ff8566798b473a.tar.gz focaccia-qemu-c76d1a9b3f367754966c326d81ff8566798b473a.zip | |
Merge remote-tracking branch 'qmp/queue/qmp' into staging
* qmp/queue/qmp: qmp: document strict parsing qmp: parse commands in strict mode qmp: add and use q type specifier qapi: add strict mode to input visitor qapi: place outermost object on qiv stack qapi: untangle next_list qapi: allow freeing partially-allocated objects qapi: shortcut visits on errors qapi: fix memory leak on error qapi: fail hard on stack imbalance qapi: add a test case for type errors qapi: add struct-errors test case to test-qmp-output-visitor qapi: fix double free in qmp_output_visitor_cleanup()
Diffstat (limited to 'test-qmp-output-visitor.c')
| -rw-r--r-- | test-qmp-output-visitor.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test-qmp-output-visitor.c b/test-qmp-output-visitor.c index 4d6c4d4420..24a6359504 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", |