@@ -585,8 +585,8 @@ extern const VMStateInfo vmstate_info_bitmap;
#define VMSTATE_INT32_EQUAL(_f, _s) \
VMSTATE_SINGLE_TEST(_f, _s, NULL, 0, vmstate_info_int32_equal, int32_t)
-#define VMSTATE_INT32_LE(_f, _s) \
- VMSTATE_SINGLE(_f, _s, 0, vmstate_info_int32_le, int32_t)
+#define VMSTATE_INT32_LE(_f, _s) \
+ VMSTATE_SINGLE_TEST(_f, _s, NULL, 0, vmstate_info_int32_le, int32_t)
#define VMSTATE_FLOAT64(_f, _s) \
@@ -374,7 +374,8 @@ static const VMStateDescription vmstate_simple_compare = {
VMSTATE_UINT16_EQUAL_TEST(u16_3, TestSimple, test_true),
VMSTATE_UINT32_EQUAL(u32_1, TestSimple),
VMSTATE_UINT64_EQUAL(u64_1, TestSimple),
- VMSTATE_INT32_EQUAL(i32_1, TestSimple),
+ VMSTATE_INT32_EQUAL(i32_2, TestSimple),
+ VMSTATE_INT32_LE(i32_1, TestSimple),
VMSTATE_END_OF_LIST()
}
};
@@ -385,6 +386,7 @@ uint8_t wire_simple_compare[] = {
/* u16_3 */ 0x02, 0x00,
/* u32_1 */ 0x00, 0x01, 0x11, 0x70,
/* u64_1 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xf4, 0x7c,
+ /* i32_2 */ 0xff, 0xfe, 0xee, 0x90,
/* i32_1 */ 0x00, 0x01, 0x11, 0x70,
QEMU_VM_EOF, /* just to ensure we won't get EOF reported prematurely */
};
@@ -412,6 +414,22 @@ static void test_simple_compare(void)
FAILURE(load_vmstate(&vmstate_simple_compare, &obj, &obj_clone,
obj_simple_copy, 1, wire_simple_compare,
sizeof(wire_simple_compare)));
+
+ /* testing less equal */
+
+ /* we change the value, so it is not equal anymore */
+ memcpy(&obj, &obj_simple, sizeof(obj));
+ obj.i32_1 = 8000;
+ FAILURE(load_vmstate(&vmstate_simple_compare, &obj, &obj_clone,
+ obj_simple_copy, 1, wire_simple_compare,
+ sizeof(wire_simple_compare)));
+
+ /* we change the value, so it is not equal anymore */
+ memcpy(&obj, &obj_simple, sizeof(obj));
+ obj.i32_1 = 80000;
+ SUCCESS(load_vmstate(&vmstate_simple_compare, &obj, &obj_clone,
+ obj_simple_copy, 1, wire_simple_compare,
+ sizeof(wire_simple_compare)));
}
#undef FIELD_EQUAL
Add tests for less/more than the value on destination. Signed-off-by: Juan Quintela <quintela@redhat.com> --- include/migration/vmstate.h | 4 ++-- tests/test-vmstate.c | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-)