@@ -1104,13 +1104,18 @@ static void test_buffer_test(void)
typedef struct TestVBuffer {
int32_t size;
uint8_t *buffer;
+ uint32_t size2;
+ uint8_t *buffer2;
} TestVBuffer;
uint8_t test_buffer[VMSTATE_ARRAY_SIZE] = { 1, 2, 3, 4, 5};
+uint8_t test_buffer2[VMSTATE_ARRAY_SIZE] = { 6, 7, 8, 9, 10};
TestVBuffer obj_vbuffer = {
.size = VMSTATE_ARRAY_SIZE,
.buffer = test_buffer,
+ .size2 = VMSTATE_ARRAY_SIZE,
+ .buffer2 = test_buffer2,
};
static const VMStateDescription vmstate_vbuffer_simple = {
@@ -1120,14 +1125,18 @@ static const VMStateDescription vmstate_vbuffer_simple = {
.minimum_version_id_old = 1,
.fields = (VMStateField[]) {
VMSTATE_INT32(size, TestVBuffer),
+ VMSTATE_UINT32(size2, TestVBuffer),
VMSTATE_VBUFFER_INT32(buffer, TestVBuffer, size),
+ VMSTATE_VBUFFER_UINT32(buffer2, TestVBuffer, size2),
VMSTATE_END_OF_LIST()
}
};
uint8_t wire_vbuffer_simple[] = {
/* size */ 0x00, 0x00, 0x00, 0x05,
+ /* size2 */ 0x00, 0x00, 0x00, 0x05,
/* buffer */ 0x01, 0x02, 0x03, 0x04, 0x05,
+ /* buffer2 */ 0x06, 0x07, 0x08, 0x09, 0x0a,
QEMU_VM_EOF, /* just to ensure we won't get EOF reported prematurely */
};
@@ -1169,14 +1178,17 @@ static void test_vbuffer_simple(void)
loading = open_test_file(false);
TestVBuffer obj;
uint8_t local[VMSTATE_ARRAY_SIZE];
+ uint8_t local2[VMSTATE_ARRAY_SIZE];
obj.buffer = local;
+ obj.buffer2 = local2;
SUCCESS(vmstate_load_state(loading, &vmstate_vbuffer_simple, &obj, 1));
g_assert(!qemu_file_get_error(loading));
qemu_fclose(loading);
SUCCESS(memcmp(obj.buffer, obj_vbuffer.buffer, VMSTATE_ARRAY_SIZE));
+ SUCCESS(memcmp(obj.buffer2, obj_vbuffer.buffer2, VMSTATE_ARRAY_SIZE));
}
#undef FIELD_ASSERT
Signed-off-by: Juan Quintela <quintela@redhat.com> --- tests/test-vmstate.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)