Add tests for less/more than the value on destination. Signed-off-by: Juan Quintela <quint...@redhat.com> --- include/migration/vmstate.h | 4 ++-- tests/test-vmstate.c | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 9765973..397fa1d 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -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) \ diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c index 3fc8f5e..3e871c3 100644 --- a/tests/test-vmstate.c +++ b/tests/test-vmstate.c @@ -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 -- 1.9.0