[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 124/124] vmstate: Test for VMSTATE_ARRAY_OF_POINTER
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 124/124] vmstate: Test for VMSTATE_ARRAY_OF_POINTER |
Date: |
Mon, 21 Apr 2014 16:41:44 +0200 |
Signed-off-by: Juan Quintela <address@hidden>
---
tests/test-vmstate.c | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c
index ca1f6e2..008dee4 100644
--- a/tests/test-vmstate.c
+++ b/tests/test-vmstate.c
@@ -1142,6 +1142,7 @@ static void test_vbuffer_simple(void)
typedef struct TestPointer {
uint8_t *u8_1p;
uint8_t *u8_2p;
+ uint32_t *u32_p[VMSTATE_ARRAY_SIZE];
} TestPointer;
static const VMStateDescription vmstate_pointer_simple = {
@@ -1153,6 +1154,8 @@ static const VMStateDescription vmstate_pointer_simple = {
VMSTATE_POINTER(u8_1p, TestPointer, NULL, vmstate_info_uint8, uint8_t),
VMSTATE_POINTER_UNSAFE(u8_2p, TestPointer,
vmstate_info_uint16, uint16_t),
+ VMSTATE_ARRAY_OF_POINTER(u32_p, TestPointer, VMSTATE_ARRAY_SIZE,
+ vmstate_info_uint32, uint32_t*),
VMSTATE_END_OF_LIST()
}
};
@@ -1160,6 +1163,11 @@ static const VMStateDescription vmstate_pointer_simple =
{
uint8_t wire_pointer_simple[] = {
/* u8_1p */ 0x11,
/* u8_2p */ 0x02, 0x2b,
+ /* u32_p */ 0x00, 0x00, 0x00, 0x21,
+ 0x00, 0x00, 0x00, 0x2b,
+ 0x00, 0x00, 0x00, 0x35,
+ 0x00, 0x00, 0x00, 0x3f,
+ 0x00, 0x00, 0x00, 0x49,
QEMU_VM_EOF, /* just to ensure we won't get EOF reported prematurely */
};
@@ -1167,23 +1175,32 @@ static void obj_pointer_copy(void *arg1, void *arg2)
{
TestPointer *target = arg1;
TestPointer *source = arg2;
+ int i;
*target->u8_1p = *source->u8_1p;
*((uint16_t *)target->u8_2p) = *((uint16_t *)source->u8_2p);
+ for (i = 0; i < VMSTATE_ARRAY_SIZE; i++) {
+ *target->u32_p[i] = *source->u32_p[i];
+ }
}
static TestPointer *create_pointer(void)
{
TestPointer *obj = g_malloc0(sizeof(*obj));
+ int i;
+
obj->u8_1p = g_malloc0(sizeof(*obj->u8_1p));
obj->u8_2p = g_malloc0(sizeof(uint16_t));
-
+ for (i = 0; i < VMSTATE_ARRAY_SIZE; i++) {
+ obj->u32_p[i] = g_malloc0(sizeof(uint32_t));
+ }
return obj;
}
static void test_pointer_simple(void)
{
TestPointer *obj, *obj_clone, *obj_pointer;
+ int i;
obj_pointer = create_pointer();
obj = create_pointer();
@@ -1194,6 +1211,10 @@ static void test_pointer_simple(void)
*obj->u8_1p = 22;
*((uint16_t *)obj->u8_2p) = 777;
+ for (i = 0; i < VMSTATE_ARRAY_SIZE; i++) {
+ *obj_pointer->u32_p[i] = 10 * i + 33;
+ }
+
save_vmstate(&vmstate_pointer_simple, obj_pointer);
compare_vmstate(wire_pointer_simple, sizeof(wire_pointer_simple));
@@ -1205,6 +1226,10 @@ static void test_pointer_simple(void)
g_assert_cmpint(*obj->u8_1p, ==, *obj_pointer->u8_1p);
g_assert_cmpint(*((uint16_t *)obj->u8_2p), ==,
*((uint16_t *)obj_pointer->u8_2p));
+
+ for (i = 0; i < VMSTATE_ARRAY_SIZE; i++) {
+ g_assert_cmpint(*obj->u32_p[i], ==, *obj_pointer->u32_p[i]);
+ }
}
#undef FIELD_EQUAL
--
1.9.0
- [Qemu-devel] [PATCH 111/124] vmstate: Test for VMSTATE_VARRAY_UINT16_UNSAFE, (continued)
- [Qemu-devel] [PATCH 111/124] vmstate: Test for VMSTATE_VARRAY_UINT16_UNSAFE, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 113/124] vmstate: Test for VMSTATE_STRUCT{_TEST}, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 112/124] vmstate: Test for VMSTATE_VARRAY_INT32{_TEST}, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 117/124] vmstate: Test for VMSTATE_STRUCT_VARRAY_UINT8, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 118/124] vmstate: Test for VMSTATE_STRUCT_VARRAY_UINT32, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 119/124] vmstate: Test for VMSTATE_STRUCT_VARRAY_INT32, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 120/124] vmstate: Test for VMSTATE_STRUCT_VARRAY_POINTER_UINT16, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 121/124] vmstate: Test for VMSTATE_STRUCT_ARRAY_POINTER_UINT32, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 122/124] vmstate: Test for VMSTATE_STRUCT_VARRAY_POINTER_INT32, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 123/124] vmstate: Test for VMSTATE_ARRAY_OF_POINTER_TO_STRUCT, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 124/124] vmstate: Test for VMSTATE_ARRAY_OF_POINTER,
Juan Quintela <=
- [Qemu-devel] [PATCH 114/124] vmstate: Remove unused VMSTATE_STRUCT_POINTER_TEST, Juan Quintela, 2014/04/21
- [Qemu-devel] [PATCH 110/124] vmstate: Test for VMSTATE_VARRAY_INT32, Juan Quintela, 2014/04/21
- Re: [Qemu-devel] [PATCH v2 000/124] VMState Simplification (Massive), Peter Maydell, 2014/04/21
- Re: [Qemu-devel] [PATCH v2 000/124] VMState Simplification (Massive), Juan Quintela, 2014/04/21
- Re: [Qemu-devel] [PATCH v2 000/124] VMState Simplification (Massive), Peter Maydell, 2014/04/21
- Re: [Qemu-devel] [PATCH v2 000/124] VMState Simplification (Massive), Juan Quintela, 2014/04/21
- Re: [Qemu-devel] [PATCH v2 000/124] VMState Simplification (Massive), Peter Maydell, 2014/04/21
- Re: [Qemu-devel] [PATCH v2 000/124] VMState Simplification (Massive), Paolo Bonzini, 2014/04/21
- Re: [Qemu-devel] [PATCH v2 000/124] VMState Simplification (Massive), Dr. David Alan Gilbert, 2014/04/22
- Re: [Qemu-devel] [PATCH v2 000/124] VMState Simplification (Massive), Paolo Bonzini, 2014/04/27