qapi: Simplify non-error testing in test-qmp-*
By using &error_abort, we can avoid a local err variable in situations where we expect success. It also has the nice effect that if the test breaks, the error message from error_abort tends to be nicer than that of g_assert(). This patch has an additional bonus of fixing several call sites that were passing &err to two different functions without checking it in between. In general that is unsafe practice; because if the first function sets an error, the second function could abort() if it tries to set a different error. We got away with it because we were asserting that err was NULL through the entire chain, but switching to &error_abort avoids the questionable practice up front. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <1446791754-23823-7-git-send-email-eblake@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
b18f1141d0
commit
3f66f764ee
@ -94,13 +94,11 @@ static void test_validate_struct(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
TestStruct *p = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = validate_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo' }");
|
||||
|
||||
visit_type_TestStruct(v, &p, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_TestStruct(v, &p, NULL, &error_abort);
|
||||
g_free(p->string);
|
||||
g_free(p);
|
||||
}
|
||||
@ -109,7 +107,6 @@ static void test_validate_struct_nested(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
UserDefTwo *udp = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = validate_test_init(data, "{ 'string0': 'string0', "
|
||||
@ -117,8 +114,7 @@ static void test_validate_struct_nested(TestInputVisitorData *data,
|
||||
"'dict2': { 'userdef': { 'integer': 42, "
|
||||
"'string': 'string' }, 'string': 'string2'}}}");
|
||||
|
||||
visit_type_UserDefTwo(v, &udp, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_UserDefTwo(v, &udp, NULL, &error_abort);
|
||||
qapi_free_UserDefTwo(udp);
|
||||
}
|
||||
|
||||
@ -126,13 +122,11 @@ static void test_validate_list(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
UserDefOneList *head = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = validate_test_init(data, "[ { 'string': 'string0', 'integer': 42 }, { 'string': 'string1', 'integer': 43 }, { 'string': 'string2', 'integer': 44 } ]");
|
||||
|
||||
visit_type_UserDefOneList(v, &head, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_UserDefOneList(v, &head, NULL, &error_abort);
|
||||
qapi_free_UserDefOneList(head);
|
||||
}
|
||||
|
||||
@ -141,12 +135,10 @@ static void test_validate_union_native_list(TestInputVisitorData *data,
|
||||
{
|
||||
UserDefNativeListUnion *tmp = NULL;
|
||||
Visitor *v;
|
||||
Error *err = NULL;
|
||||
|
||||
v = validate_test_init(data, "{ 'type': 'integer', 'data' : [ 1, 2 ] }");
|
||||
|
||||
visit_type_UserDefNativeListUnion(v, &tmp, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_UserDefNativeListUnion(v, &tmp, NULL, &error_abort);
|
||||
qapi_free_UserDefNativeListUnion(tmp);
|
||||
}
|
||||
|
||||
@ -155,7 +147,6 @@ static void test_validate_union_flat(TestInputVisitorData *data,
|
||||
{
|
||||
UserDefFlatUnion *tmp = NULL;
|
||||
Visitor *v;
|
||||
Error *err = NULL;
|
||||
|
||||
v = validate_test_init(data,
|
||||
"{ 'enum1': 'value1', "
|
||||
@ -163,8 +154,7 @@ static void test_validate_union_flat(TestInputVisitorData *data,
|
||||
"'string': 'str', "
|
||||
"'boolean': true }");
|
||||
|
||||
visit_type_UserDefFlatUnion(v, &tmp, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_UserDefFlatUnion(v, &tmp, NULL, &error_abort);
|
||||
qapi_free_UserDefFlatUnion(tmp);
|
||||
}
|
||||
|
||||
@ -173,12 +163,10 @@ static void test_validate_alternate(TestInputVisitorData *data,
|
||||
{
|
||||
UserDefAlternate *tmp = NULL;
|
||||
Visitor *v;
|
||||
Error *err = NULL;
|
||||
|
||||
v = validate_test_init(data, "42");
|
||||
|
||||
visit_type_UserDefAlternate(v, &tmp, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_UserDefAlternate(v, &tmp, NULL, &error_abort);
|
||||
qapi_free_UserDefAlternate(tmp);
|
||||
}
|
||||
|
||||
@ -296,16 +284,11 @@ static void do_test_validate_qmp_introspect(TestInputVisitorData *data,
|
||||
const char *schema_json)
|
||||
{
|
||||
SchemaInfoList *schema = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = validate_test_init_raw(data, schema_json);
|
||||
|
||||
visit_type_SchemaInfoList(v, &schema, NULL, &err);
|
||||
if (err) {
|
||||
fprintf(stderr, "%s", error_get_pretty(err));
|
||||
}
|
||||
g_assert(!err);
|
||||
visit_type_SchemaInfoList(v, &schema, NULL, &error_abort);
|
||||
g_assert(schema);
|
||||
|
||||
qapi_free_SchemaInfoList(schema);
|
||||
|
@ -89,13 +89,11 @@ static void test_visitor_in_int(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
int64_t res = 0, value = -42;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = visitor_input_test_init(data, "%" PRId64, value);
|
||||
|
||||
visit_type_int(v, &res, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_int(v, &res, NULL, &error_abort);
|
||||
g_assert_cmpint(res, ==, value);
|
||||
}
|
||||
|
||||
@ -120,14 +118,12 @@ static void test_visitor_in_int_overflow(TestInputVisitorData *data,
|
||||
static void test_visitor_in_bool(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
Error *err = NULL;
|
||||
bool res = false;
|
||||
Visitor *v;
|
||||
|
||||
v = visitor_input_test_init(data, "true");
|
||||
|
||||
visit_type_bool(v, &res, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_bool(v, &res, NULL, &error_abort);
|
||||
g_assert_cmpint(res, ==, true);
|
||||
}
|
||||
|
||||
@ -135,13 +131,11 @@ static void test_visitor_in_number(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
double res = 0, value = 3.14;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = visitor_input_test_init(data, "%f", value);
|
||||
|
||||
visit_type_number(v, &res, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_number(v, &res, NULL, &error_abort);
|
||||
g_assert_cmpfloat(res, ==, value);
|
||||
}
|
||||
|
||||
@ -149,13 +143,11 @@ static void test_visitor_in_string(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
char *res = NULL, *value = (char *) "Q E M U";
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = visitor_input_test_init(data, "%s", value);
|
||||
|
||||
visit_type_str(v, &res, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_str(v, &res, NULL, &error_abort);
|
||||
g_assert_cmpstr(res, ==, value);
|
||||
|
||||
g_free(res);
|
||||
@ -164,7 +156,6 @@ static void test_visitor_in_string(TestInputVisitorData *data,
|
||||
static void test_visitor_in_enum(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
EnumOne i;
|
||||
|
||||
@ -173,8 +164,7 @@ static void test_visitor_in_enum(TestInputVisitorData *data,
|
||||
|
||||
v = visitor_input_test_init(data, "%s", EnumOne_lookup[i]);
|
||||
|
||||
visit_type_EnumOne(v, &res, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_EnumOne(v, &res, NULL, &error_abort);
|
||||
g_assert_cmpint(i, ==, res);
|
||||
}
|
||||
}
|
||||
@ -184,13 +174,11 @@ static void test_visitor_in_struct(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
TestStruct *p = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo' }");
|
||||
|
||||
visit_type_TestStruct(v, &p, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_TestStruct(v, &p, NULL, &error_abort);
|
||||
g_assert_cmpint(p->integer, ==, -42);
|
||||
g_assert(p->boolean == true);
|
||||
g_assert_cmpstr(p->string, ==, "foo");
|
||||
@ -203,7 +191,6 @@ static void test_visitor_in_struct_nested(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
UserDefTwo *udp = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
|
||||
v = visitor_input_test_init(data, "{ 'string0': 'string0', "
|
||||
@ -211,8 +198,7 @@ static void test_visitor_in_struct_nested(TestInputVisitorData *data,
|
||||
"'dict2': { 'userdef': { 'integer': 42, "
|
||||
"'string': 'string' }, 'string': 'string2'}}}");
|
||||
|
||||
visit_type_UserDefTwo(v, &udp, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_UserDefTwo(v, &udp, NULL, &error_abort);
|
||||
|
||||
g_assert_cmpstr(udp->string0, ==, "string0");
|
||||
g_assert_cmpstr(udp->dict1->string1, ==, "string1");
|
||||
@ -228,14 +214,12 @@ static void test_visitor_in_list(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
UserDefOneList *item, *head = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
int i;
|
||||
|
||||
v = visitor_input_test_init(data, "[ { 'string': 'string0', 'integer': 42 }, { 'string': 'string1', 'integer': 43 }, { 'string': 'string2', 'integer': 44 } ]");
|
||||
|
||||
visit_type_UserDefOneList(v, &head, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_UserDefOneList(v, &head, NULL, &error_abort);
|
||||
g_assert(head != NULL);
|
||||
|
||||
for (i = 0, item = head; item; item = item->next, i++) {
|
||||
@ -253,7 +237,6 @@ static void test_visitor_in_any(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
QObject *res = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
QInt *qint;
|
||||
QBool *qbool;
|
||||
@ -262,16 +245,14 @@ static void test_visitor_in_any(TestInputVisitorData *data,
|
||||
QObject *qobj;
|
||||
|
||||
v = visitor_input_test_init(data, "-42");
|
||||
visit_type_any(v, &res, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_any(v, &res, NULL, &error_abort);
|
||||
qint = qobject_to_qint(res);
|
||||
g_assert(qint);
|
||||
g_assert_cmpint(qint_get_int(qint), ==, -42);
|
||||
qobject_decref(res);
|
||||
|
||||
v = visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo' }");
|
||||
visit_type_any(v, &res, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_any(v, &res, NULL, &error_abort);
|
||||
qdict = qobject_to_qdict(res);
|
||||
g_assert(qdict && qdict_size(qdict) == 3);
|
||||
qobj = qdict_get(qdict, "integer");
|
||||
@ -296,7 +277,6 @@ static void test_visitor_in_union_flat(TestInputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
Visitor *v;
|
||||
Error *err = NULL;
|
||||
UserDefFlatUnion *tmp;
|
||||
UserDefUnionBase *base;
|
||||
|
||||
@ -306,8 +286,7 @@ static void test_visitor_in_union_flat(TestInputVisitorData *data,
|
||||
"'string': 'str', "
|
||||
"'boolean': true }");
|
||||
|
||||
visit_type_UserDefFlatUnion(v, &tmp, NULL, &err);
|
||||
g_assert(err == NULL);
|
||||
visit_type_UserDefFlatUnion(v, &tmp, NULL, &error_abort);
|
||||
g_assert_cmpint(tmp->enum1, ==, ENUM_ONE_VALUE1);
|
||||
g_assert_cmpstr(tmp->string, ==, "str");
|
||||
g_assert_cmpint(tmp->integer, ==, 41);
|
||||
@ -448,7 +427,6 @@ static void test_native_list_integer_helper(TestInputVisitorData *data,
|
||||
UserDefNativeListUnionKind kind)
|
||||
{
|
||||
UserDefNativeListUnion *cvalue = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
GString *gstr_list = g_string_new("");
|
||||
GString *gstr_union = g_string_new("");
|
||||
@ -465,8 +443,7 @@ static void test_native_list_integer_helper(TestInputVisitorData *data,
|
||||
gstr_list->str);
|
||||
v = visitor_input_test_init_raw(data, gstr_union->str);
|
||||
|
||||
visit_type_UserDefNativeListUnion(v, &cvalue, NULL, &err);
|
||||
g_assert(err == NULL);
|
||||
visit_type_UserDefNativeListUnion(v, &cvalue, NULL, &error_abort);
|
||||
g_assert(cvalue != NULL);
|
||||
g_assert_cmpint(cvalue->type, ==, kind);
|
||||
|
||||
@ -611,7 +588,6 @@ static void test_visitor_in_native_list_bool(TestInputVisitorData *data,
|
||||
{
|
||||
UserDefNativeListUnion *cvalue = NULL;
|
||||
boolList *elem = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
GString *gstr_list = g_string_new("");
|
||||
GString *gstr_union = g_string_new("");
|
||||
@ -628,8 +604,7 @@ static void test_visitor_in_native_list_bool(TestInputVisitorData *data,
|
||||
gstr_list->str);
|
||||
v = visitor_input_test_init_raw(data, gstr_union->str);
|
||||
|
||||
visit_type_UserDefNativeListUnion(v, &cvalue, NULL, &err);
|
||||
g_assert(err == NULL);
|
||||
visit_type_UserDefNativeListUnion(v, &cvalue, NULL, &error_abort);
|
||||
g_assert(cvalue != NULL);
|
||||
g_assert_cmpint(cvalue->type, ==, USER_DEF_NATIVE_LIST_UNION_KIND_BOOLEAN);
|
||||
|
||||
@ -647,7 +622,6 @@ static void test_visitor_in_native_list_string(TestInputVisitorData *data,
|
||||
{
|
||||
UserDefNativeListUnion *cvalue = NULL;
|
||||
strList *elem = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
GString *gstr_list = g_string_new("");
|
||||
GString *gstr_union = g_string_new("");
|
||||
@ -663,8 +637,7 @@ static void test_visitor_in_native_list_string(TestInputVisitorData *data,
|
||||
gstr_list->str);
|
||||
v = visitor_input_test_init_raw(data, gstr_union->str);
|
||||
|
||||
visit_type_UserDefNativeListUnion(v, &cvalue, NULL, &err);
|
||||
g_assert(err == NULL);
|
||||
visit_type_UserDefNativeListUnion(v, &cvalue, NULL, &error_abort);
|
||||
g_assert(cvalue != NULL);
|
||||
g_assert_cmpint(cvalue->type, ==, USER_DEF_NATIVE_LIST_UNION_KIND_STRING);
|
||||
|
||||
@ -686,7 +659,6 @@ static void test_visitor_in_native_list_number(TestInputVisitorData *data,
|
||||
{
|
||||
UserDefNativeListUnion *cvalue = NULL;
|
||||
numberList *elem = NULL;
|
||||
Error *err = NULL;
|
||||
Visitor *v;
|
||||
GString *gstr_list = g_string_new("");
|
||||
GString *gstr_union = g_string_new("");
|
||||
@ -702,8 +674,7 @@ static void test_visitor_in_native_list_number(TestInputVisitorData *data,
|
||||
gstr_list->str);
|
||||
v = visitor_input_test_init_raw(data, gstr_union->str);
|
||||
|
||||
visit_type_UserDefNativeListUnion(v, &cvalue, NULL, &err);
|
||||
g_assert(err == NULL);
|
||||
visit_type_UserDefNativeListUnion(v, &cvalue, NULL, &error_abort);
|
||||
g_assert(cvalue != NULL);
|
||||
g_assert_cmpint(cvalue->type, ==, USER_DEF_NATIVE_LIST_UNION_KIND_NUMBER);
|
||||
|
||||
|
@ -45,11 +45,9 @@ static void test_visitor_out_int(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
int64_t value = -42;
|
||||
Error *err = NULL;
|
||||
QObject *obj;
|
||||
|
||||
visit_type_int(data->ov, &value, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_int(data->ov, &value, NULL, &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -62,12 +60,10 @@ static void test_visitor_out_int(TestOutputVisitorData *data,
|
||||
static void test_visitor_out_bool(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
Error *err = NULL;
|
||||
bool value = true;
|
||||
QObject *obj;
|
||||
|
||||
visit_type_bool(data->ov, &value, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_bool(data->ov, &value, NULL, &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -81,11 +77,9 @@ static void test_visitor_out_number(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
double value = 3.14;
|
||||
Error *err = NULL;
|
||||
QObject *obj;
|
||||
|
||||
visit_type_number(data->ov, &value, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_number(data->ov, &value, NULL, &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -99,11 +93,9 @@ static void test_visitor_out_string(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
char *string = (char *) "Q E M U";
|
||||
Error *err = NULL;
|
||||
QObject *obj;
|
||||
|
||||
visit_type_str(data->ov, &string, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_str(data->ov, &string, NULL, &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -117,12 +109,10 @@ static void test_visitor_out_no_string(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
char *string = NULL;
|
||||
Error *err = NULL;
|
||||
QObject *obj;
|
||||
|
||||
/* A null string should return "" */
|
||||
visit_type_str(data->ov, &string, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_str(data->ov, &string, NULL, &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -135,13 +125,11 @@ static void test_visitor_out_no_string(TestOutputVisitorData *data,
|
||||
static void test_visitor_out_enum(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
Error *err = NULL;
|
||||
QObject *obj;
|
||||
EnumOne i;
|
||||
|
||||
for (i = 0; i < ENUM_ONE_MAX; i++) {
|
||||
visit_type_EnumOne(data->ov, &i, "unused", &err);
|
||||
g_assert(!err);
|
||||
visit_type_EnumOne(data->ov, &i, "unused", &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -174,12 +162,10 @@ static void test_visitor_out_struct(TestOutputVisitorData *data,
|
||||
.boolean = false,
|
||||
.string = (char *) "foo"};
|
||||
TestStruct *p = &test_struct;
|
||||
Error *err = NULL;
|
||||
QObject *obj;
|
||||
QDict *qdict;
|
||||
|
||||
visit_type_TestStruct(data->ov, &p, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_TestStruct(data->ov, &p, NULL, &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -198,7 +184,6 @@ static void test_visitor_out_struct_nested(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
int64_t value = 42;
|
||||
Error *err = NULL;
|
||||
UserDefTwo *ud2;
|
||||
QObject *obj;
|
||||
QDict *qdict, *dict1, *dict2, *dict3, *userdef;
|
||||
@ -225,8 +210,7 @@ static void test_visitor_out_struct_nested(TestOutputVisitorData *data,
|
||||
ud2->dict1->dict3->userdef->integer = value;
|
||||
ud2->dict1->dict3->string = g_strdup(strings[3]);
|
||||
|
||||
visit_type_UserDefTwo(data->ov, &ud2, "unused", &err);
|
||||
g_assert(!err);
|
||||
visit_type_UserDefTwo(data->ov, &ud2, "unused", &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -288,7 +272,6 @@ static void test_visitor_out_list(TestOutputVisitorData *data,
|
||||
const int max_items = 10;
|
||||
bool value_bool = true;
|
||||
int value_int = 10;
|
||||
Error *err = NULL;
|
||||
QListEntry *entry;
|
||||
QObject *obj;
|
||||
QList *qlist;
|
||||
@ -306,8 +289,7 @@ static void test_visitor_out_list(TestOutputVisitorData *data,
|
||||
head = p;
|
||||
}
|
||||
|
||||
visit_type_TestStructList(data->ov, &head, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_TestStructList(data->ov, &head, NULL, &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -367,7 +349,6 @@ static void test_visitor_out_any(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
QObject *qobj;
|
||||
Error *err = NULL;
|
||||
QInt *qint;
|
||||
QBool *qbool;
|
||||
QString *qstring;
|
||||
@ -375,8 +356,7 @@ static void test_visitor_out_any(TestOutputVisitorData *data,
|
||||
QObject *obj;
|
||||
|
||||
qobj = QOBJECT(qint_from_int(-42));
|
||||
visit_type_any(data->ov, &qobj, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_any(data->ov, &qobj, NULL, &error_abort);
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
g_assert(qobject_type(obj) == QTYPE_QINT);
|
||||
@ -389,8 +369,7 @@ static void test_visitor_out_any(TestOutputVisitorData *data,
|
||||
qdict_put(qdict, "boolean", qbool_from_bool(true));
|
||||
qdict_put(qdict, "string", qstring_from_str("foo"));
|
||||
qobj = QOBJECT(qdict);
|
||||
visit_type_any(data->ov, &qobj, NULL, &err);
|
||||
g_assert(!err);
|
||||
visit_type_any(data->ov, &qobj, NULL, &error_abort);
|
||||
qobject_decref(qobj);
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
g_assert(obj != NULL);
|
||||
@ -420,8 +399,6 @@ static void test_visitor_out_union_flat(TestOutputVisitorData *data,
|
||||
QObject *arg;
|
||||
QDict *qdict;
|
||||
|
||||
Error *err = NULL;
|
||||
|
||||
UserDefFlatUnion *tmp = g_malloc0(sizeof(UserDefFlatUnion));
|
||||
tmp->enum1 = ENUM_ONE_VALUE1;
|
||||
tmp->string = g_strdup("str");
|
||||
@ -429,8 +406,7 @@ static void test_visitor_out_union_flat(TestOutputVisitorData *data,
|
||||
tmp->integer = 41;
|
||||
tmp->u.value1->boolean = true;
|
||||
|
||||
visit_type_UserDefFlatUnion(data->ov, &tmp, NULL, &err);
|
||||
g_assert(err == NULL);
|
||||
visit_type_UserDefFlatUnion(data->ov, &tmp, NULL, &error_abort);
|
||||
arg = qmp_output_get_qobject(data->qov);
|
||||
|
||||
g_assert(qobject_type(arg) == QTYPE_QDICT);
|
||||
@ -449,14 +425,12 @@ static void test_visitor_out_alternate(TestOutputVisitorData *data,
|
||||
const void *unused)
|
||||
{
|
||||
QObject *arg;
|
||||
Error *err = NULL;
|
||||
|
||||
UserDefAlternate *tmp = g_malloc0(sizeof(UserDefAlternate));
|
||||
tmp->type = USER_DEF_ALTERNATE_KIND_I;
|
||||
tmp->u.i = 42;
|
||||
|
||||
visit_type_UserDefAlternate(data->ov, &tmp, NULL, &err);
|
||||
g_assert(err == NULL);
|
||||
visit_type_UserDefAlternate(data->ov, &tmp, NULL, &error_abort);
|
||||
arg = qmp_output_get_qobject(data->qov);
|
||||
|
||||
g_assert(qobject_type(arg) == QTYPE_QINT);
|
||||
@ -697,14 +671,12 @@ static void test_native_list(TestOutputVisitorData *data,
|
||||
UserDefNativeListUnionKind kind)
|
||||
{
|
||||
UserDefNativeListUnion *cvalue = g_new0(UserDefNativeListUnion, 1);
|
||||
Error *err = NULL;
|
||||
QObject *obj;
|
||||
|
||||
cvalue->type = kind;
|
||||
init_native_list(cvalue);
|
||||
|
||||
visit_type_UserDefNativeListUnion(data->ov, &cvalue, NULL, &err);
|
||||
g_assert(err == NULL);
|
||||
visit_type_UserDefNativeListUnion(data->ov, &cvalue, NULL, &error_abort);
|
||||
|
||||
obj = qmp_output_get_qobject(data->qov);
|
||||
check_native_list(obj, cvalue->type);
|
||||
|
@ -302,14 +302,13 @@ static void test_primitives(gconstpointer opaque)
|
||||
const SerializeOps *ops = args->ops;
|
||||
PrimitiveType *pt = args->test_data;
|
||||
PrimitiveType *pt_copy = g_malloc0(sizeof(*pt_copy));
|
||||
Error *err = NULL;
|
||||
void *serialize_data;
|
||||
|
||||
pt_copy->type = pt->type;
|
||||
ops->serialize(pt, &serialize_data, visit_primitive_type, &err);
|
||||
ops->deserialize((void **)&pt_copy, serialize_data, visit_primitive_type, &err);
|
||||
ops->serialize(pt, &serialize_data, visit_primitive_type, &error_abort);
|
||||
ops->deserialize((void **)&pt_copy, serialize_data, visit_primitive_type,
|
||||
&error_abort);
|
||||
|
||||
g_assert(err == NULL);
|
||||
g_assert(pt_copy != NULL);
|
||||
if (pt->type == PTYPE_STRING) {
|
||||
g_assert_cmpstr(pt->value.string, ==, pt_copy->value.string);
|
||||
@ -345,7 +344,6 @@ static void test_primitive_lists(gconstpointer opaque)
|
||||
PrimitiveList pl = { .value = { NULL } };
|
||||
PrimitiveList pl_copy = { .value = { NULL } };
|
||||
PrimitiveList *pl_copy_ptr = &pl_copy;
|
||||
Error *err = NULL;
|
||||
void *serialize_data;
|
||||
void *cur_head = NULL;
|
||||
int i;
|
||||
@ -492,10 +490,11 @@ static void test_primitive_lists(gconstpointer opaque)
|
||||
}
|
||||
}
|
||||
|
||||
ops->serialize((void **)&pl, &serialize_data, visit_primitive_list, &err);
|
||||
ops->deserialize((void **)&pl_copy_ptr, serialize_data, visit_primitive_list, &err);
|
||||
ops->serialize((void **)&pl, &serialize_data, visit_primitive_list,
|
||||
&error_abort);
|
||||
ops->deserialize((void **)&pl_copy_ptr, serialize_data,
|
||||
visit_primitive_list, &error_abort);
|
||||
|
||||
g_assert(err == NULL);
|
||||
i = 0;
|
||||
|
||||
/* compare our deserialized list of primitives to the original */
|
||||
@ -652,10 +651,8 @@ static void test_primitive_lists(gconstpointer opaque)
|
||||
g_assert_cmpint(i, ==, 33);
|
||||
|
||||
ops->cleanup(serialize_data);
|
||||
dealloc_helper(&pl, visit_primitive_list, &err);
|
||||
g_assert(!err);
|
||||
dealloc_helper(&pl_copy, visit_primitive_list, &err);
|
||||
g_assert(!err);
|
||||
dealloc_helper(&pl, visit_primitive_list, &error_abort);
|
||||
dealloc_helper(&pl_copy, visit_primitive_list, &error_abort);
|
||||
g_free(args);
|
||||
}
|
||||
|
||||
@ -665,13 +662,12 @@ static void test_struct(gconstpointer opaque)
|
||||
const SerializeOps *ops = args->ops;
|
||||
TestStruct *ts = struct_create();
|
||||
TestStruct *ts_copy = NULL;
|
||||
Error *err = NULL;
|
||||
void *serialize_data;
|
||||
|
||||
ops->serialize(ts, &serialize_data, visit_struct, &err);
|
||||
ops->deserialize((void **)&ts_copy, serialize_data, visit_struct, &err);
|
||||
ops->serialize(ts, &serialize_data, visit_struct, &error_abort);
|
||||
ops->deserialize((void **)&ts_copy, serialize_data, visit_struct,
|
||||
&error_abort);
|
||||
|
||||
g_assert(err == NULL);
|
||||
struct_compare(ts, ts_copy);
|
||||
|
||||
struct_cleanup(ts);
|
||||
@ -687,14 +683,12 @@ static void test_nested_struct(gconstpointer opaque)
|
||||
const SerializeOps *ops = args->ops;
|
||||
UserDefTwo *udnp = nested_struct_create();
|
||||
UserDefTwo *udnp_copy = NULL;
|
||||
Error *err = NULL;
|
||||
void *serialize_data;
|
||||
|
||||
ops->serialize(udnp, &serialize_data, visit_nested_struct, &err);
|
||||
ops->serialize(udnp, &serialize_data, visit_nested_struct, &error_abort);
|
||||
ops->deserialize((void **)&udnp_copy, serialize_data, visit_nested_struct,
|
||||
&err);
|
||||
&error_abort);
|
||||
|
||||
g_assert(err == NULL);
|
||||
nested_struct_compare(udnp, udnp_copy);
|
||||
|
||||
nested_struct_cleanup(udnp);
|
||||
@ -709,7 +703,6 @@ static void test_nested_struct_list(gconstpointer opaque)
|
||||
TestArgs *args = (TestArgs *) opaque;
|
||||
const SerializeOps *ops = args->ops;
|
||||
UserDefTwoList *listp = NULL, *tmp, *tmp_copy, *listp_copy = NULL;
|
||||
Error *err = NULL;
|
||||
void *serialize_data;
|
||||
int i = 0;
|
||||
|
||||
@ -720,11 +713,10 @@ static void test_nested_struct_list(gconstpointer opaque)
|
||||
listp = tmp;
|
||||
}
|
||||
|
||||
ops->serialize(listp, &serialize_data, visit_nested_struct_list, &err);
|
||||
ops->serialize(listp, &serialize_data, visit_nested_struct_list,
|
||||
&error_abort);
|
||||
ops->deserialize((void **)&listp_copy, serialize_data,
|
||||
visit_nested_struct_list, &err);
|
||||
|
||||
g_assert(err == NULL);
|
||||
visit_nested_struct_list, &error_abort);
|
||||
|
||||
tmp = listp;
|
||||
tmp_copy = listp_copy;
|
||||
|
Loading…
Reference in New Issue
Block a user