summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarkus Armbruster2021-09-17 16:31:29 +0200
committerMarkus Armbruster2021-09-27 08:23:25 +0200
commit7a22dc17ac5990e5efce90f43ba33650ec9b6ff6 (patch)
tree1a98ead14ca315bbe5a72ff1de36e3cff5841db1 /tests
parenttests/qapi-schema: Rewrite simple union TestIfUnion to be flat (diff)
downloadqemu-7a22dc17ac5990e5efce90f43ba33650ec9b6ff6.tar.gz
qemu-7a22dc17ac5990e5efce90f43ba33650ec9b6ff6.tar.xz
qemu-7a22dc17ac5990e5efce90f43ba33650ec9b6ff6.zip
test-clone-visitor: Wean off __org.qemu_x-Union1
test_clone_complex3() uses simple union __org.qemu_x-Union1 to cover arrays. Use UserDefOneList instead. Unions are still covered by test_clone_complex1(). Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20210917143134.412106-19-armbru@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/test-clone-visitor.c76
1 files changed, 41 insertions, 35 deletions
diff --git a/tests/unit/test-clone-visitor.c b/tests/unit/test-clone-visitor.c
index 8357a90e60..4048018607 100644
--- a/tests/unit/test-clone-visitor.c
+++ b/tests/unit/test-clone-visitor.c
@@ -153,42 +153,48 @@ static void test_clone_complex2(void)
static void test_clone_complex3(void)
{
- __org_qemu_x_Struct2 *src, *dst;
- __org_qemu_x_Union1List *tmp;
-
- src = g_new0(__org_qemu_x_Struct2, 1);
- tmp = src->array = g_new0(__org_qemu_x_Union1List, 1);
- tmp->value = g_new0(__org_qemu_x_Union1, 1);
- tmp->value->type = ORG_QEMU_X_UNION1_KIND___ORG_QEMU_X_BRANCH;
- tmp->value->u.__org_qemu_x_branch.data = g_strdup("one");
- tmp = tmp->next = g_new0(__org_qemu_x_Union1List, 1);
- tmp->value = g_new0(__org_qemu_x_Union1, 1);
- tmp->value->type = ORG_QEMU_X_UNION1_KIND___ORG_QEMU_X_BRANCH;
- tmp->value->u.__org_qemu_x_branch.data = g_strdup("two");
- tmp = tmp->next = g_new0(__org_qemu_x_Union1List, 1);
- tmp->value = g_new0(__org_qemu_x_Union1, 1);
- tmp->value->type = ORG_QEMU_X_UNION1_KIND___ORG_QEMU_X_BRANCH;
- tmp->value->u.__org_qemu_x_branch.data = g_strdup("three");
-
- dst = QAPI_CLONE(__org_qemu_x_Struct2, src);
- g_assert(dst);
- tmp = dst->array;
- g_assert(tmp);
- g_assert(tmp->value);
- g_assert_cmpstr(tmp->value->u.__org_qemu_x_branch.data, ==, "one");
- tmp = tmp->next;
- g_assert(tmp);
- g_assert(tmp->value);
- g_assert_cmpstr(tmp->value->u.__org_qemu_x_branch.data, ==, "two");
- tmp = tmp->next;
- g_assert(tmp);
- g_assert(tmp->value);
- g_assert_cmpstr(tmp->value->u.__org_qemu_x_branch.data, ==, "three");
- tmp = tmp->next;
- g_assert(!tmp);
+ UserDefOneList *src, *dst, *tail;
+ UserDefOne *elt;
+
+ src = NULL;
+ elt = g_new0(UserDefOne, 1);
+ elt->integer = 3;
+ elt->string = g_strdup("three");
+ elt->has_enum1 = true;
+ elt->enum1 = ENUM_ONE_VALUE3;
+ QAPI_LIST_PREPEND(src, elt);
+ elt = g_new0(UserDefOne, 1);
+ elt->integer = 2;
+ elt->string = g_strdup("two");
+ QAPI_LIST_PREPEND(src, elt);
+ elt = g_new0(UserDefOne, 1);
+ elt->integer = 1;
+ elt->string = g_strdup("one");
+ QAPI_LIST_PREPEND(src, elt);
+
+ dst = QAPI_CLONE(UserDefOneList, src);
- qapi_free___org_qemu_x_Struct2(src);
- qapi_free___org_qemu_x_Struct2(dst);
+ g_assert(dst);
+ tail = dst;
+ elt = tail->value;
+ g_assert_cmpint(elt->integer, ==, 1);
+ g_assert_cmpstr(elt->string, ==, "one");
+ g_assert(!elt->has_enum1);
+ tail = tail->next;
+ elt = tail->value;
+ g_assert_cmpint(elt->integer, ==, 2);
+ g_assert_cmpstr(elt->string, ==, "two");
+ g_assert(!elt->has_enum1);
+ tail = tail->next;
+ elt = tail->value;
+ g_assert_cmpint(elt->integer, ==, 3);
+ g_assert_cmpstr(elt->string, ==, "three");
+ g_assert(elt->has_enum1);
+ g_assert_cmpint(elt->enum1, ==, ENUM_ONE_VALUE3);
+ g_assert(!tail->next);
+
+ qapi_free_UserDefOneList(src);
+ qapi_free_UserDefOneList(dst);
}
int main(int argc, char **argv)