Signed-off-by: Juan Quintela <quint...@redhat.com> --- tests/test-vmstate.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)
diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c index c937661..fa69209 100644 --- a/tests/test-vmstate.c +++ b/tests/test-vmstate.c @@ -1660,6 +1660,7 @@ typedef struct TestStruct2 { uint16_t size4; SubStruct *p_1; SubStruct *p_2; + SubStruct *p_3; } TestStruct2; /* @@ -1686,6 +1687,8 @@ static const VMStateDescription vmstate_struct_varray = { vmstate_sub_struct, SubStruct), VMSTATE_STRUCT_VARRAY_POINTER_UINT32(p_2, TestStruct2, size2, vmstate_sub_struct, SubStruct), + VMSTATE_STRUCT_VARRAY_POINTER_INT32(p_3, TestStruct2, size3, + vmstate_sub_struct, SubStruct), VMSTATE_STRUCT_VARRAY_UINT8(a, TestStruct2, size, vmstate_sub_struct, SubStruct), VMSTATE_END_OF_LIST() @@ -1759,6 +1762,21 @@ uint8_t wire_struct_varray[] = { /* i64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, /* buffer */ 0x62, 0x79, 0x65, 0x35, 0x20, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21, 0x00, + /* p_3[0] */ + /* i32 */ 0x00, 0x00, 0x00, 0x79, + /* i64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, + /* buffer */ 0x62, 0x79, 0x65, 0x36, 0x20, 0x20, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x21, 0x00, + /* p_3[1] */ + /* i32 */ 0x00, 0x00, 0x00, 0x7a, + /* i64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, + /* buffer */ 0x62, 0x79, 0x65, 0x37, 0x20, 0x20, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x21, 0x00, + /* p_3[2] */ + /* i32 */ 0x00, 0x00, 0x00, 0x7b, + /* i64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, + /* buffer */ 0x62, 0x79, 0x65, 0x38, 0x20, 0x20, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x21, 0x00, /* a[0] */ /* i32 */ 0x00, 0x00, 0x00, 0x15, /* i64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, @@ -1803,6 +1821,9 @@ static void obj_struct2_copy(void *arg1, void *arg2) target->p_2[i].i32 = source->p_2[i].i32; target->p_2[i].i64 = source->p_2[i].i64; memcpy(target->p_2[i].buffer, source->p_2[i].buffer, 13); + target->p_3[i].i32 = source->p_3[i].i32; + target->p_3[i].i64 = source->p_3[i].i64; + memcpy(target->p_3[i].buffer, source->p_3[i].buffer, 13); } } @@ -1815,6 +1836,7 @@ static TestStruct2 *create_struct2(void) obj->size4 = 3; obj->p_1 = g_malloc0(sizeof(SubStruct) * 3); obj->p_2 = g_malloc0(sizeof(SubStruct) * 3); + obj->p_3 = g_malloc0(sizeof(SubStruct) * 3); return obj; } @@ -1840,6 +1862,9 @@ static TestStruct2 *create_struct2_init(void) obj->p_2[i].i32 = i + 101; obj->p_2[i].i64 = i + 111; snprintf((char *)obj->p_2[i].buffer, 13, "bye%d world!", i + 3); + obj->p_3[i].i32 = i + 121; + obj->p_3[i].i64 = i + 131; + snprintf((char *)obj->p_3[i].buffer, 13, "bye%d world!", i + 6); } return obj; @@ -1867,6 +1892,7 @@ static void test_struct_varray(void) memset(obj->c, 0, sizeof(obj->c)); memset(obj->p_1, 0, sizeof(*obj->p_1) * 3); memset(obj->p_2, 0, sizeof(*obj->p_2) * 3); + memset(obj->p_2, 0, sizeof(*obj->p_3) * 3); obj->size = j; obj_struct2->size = j; wire_struct_varray[0] = j; @@ -1886,6 +1912,7 @@ static void test_struct_varray(void) STRUCT_EQUAL((&obj->c[i]), (&obj_struct2->c[i])); STRUCT_EQUAL((&obj->p_1[i]), (&obj_struct2->p_1[i])); STRUCT_EQUAL((&obj->p_2[i]), (&obj_struct2->p_2[i])); + STRUCT_EQUAL((&obj->p_3[i]), (&obj_struct2->p_3[i])); } } } -- 1.9.0