From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59979) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WwTgb-0007nY-Rm for qemu-devel@nongnu.org; Mon, 16 Jun 2014 05:58:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WwTgU-0002Kq-MV for qemu-devel@nongnu.org; Mon, 16 Jun 2014 05:58:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:22818) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WwTgU-0002Iu-Dj for qemu-devel@nongnu.org; Mon, 16 Jun 2014 05:58:38 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s5G9wbAr025045 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 16 Jun 2014 05:58:37 -0400 From: Juan Quintela Date: Mon, 16 Jun 2014 11:58:05 +0200 Message-Id: <1402912703-28195-10-git-send-email-quintela@redhat.com> In-Reply-To: <1402912703-28195-1-git-send-email-quintela@redhat.com> References: <1402912703-28195-1-git-send-email-quintela@redhat.com> Subject: [Qemu-devel] [PATCH 09/27] vmstate: Test for VMSTATE_BOOL_TEST List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Remove VMSTATE_BOOL_V, we are removing versioning, would use only tests. Signed-off-by: Juan Quintela --- include/migration/vmstate.h | 6 +++--- tests/test-vmstate.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 4d9c974..4932d50 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -535,8 +535,8 @@ extern const VMStateInfo vmstate_info_bitmap; VMSTATE_STRUCT_ARRAY_TEST(_field, _state, _num, NULL, _version, \ _vmsd, _type) -#define VMSTATE_BOOL_V(_f, _s, _v) \ - VMSTATE_SINGLE(_f, _s, _v, vmstate_info_bool, bool) +#define VMSTATE_BOOL_TEST(_f, _s, _t) \ + VMSTATE_SINGLE_TEST(_f, _s, _t, 0, vmstate_info_bool, bool) #define VMSTATE_INT8_V(_f, _s, _v) \ VMSTATE_SINGLE(_f, _s, _v, vmstate_info_int8, int8_t) @@ -557,7 +557,7 @@ extern const VMStateInfo vmstate_info_bitmap; VMSTATE_SINGLE(_f, _s, _v, vmstate_info_uint64, uint64_t) #define VMSTATE_BOOL(_f, _s) \ - VMSTATE_BOOL_V(_f, _s, 0) + VMSTATE_BOOL_TEST(_f, _s, NULL) #define VMSTATE_INT8(_f, _s) \ VMSTATE_INT8_V(_f, _s, 0) diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c index d0839c3..52b4945 100644 --- a/tests/test-vmstate.c +++ b/tests/test-vmstate.c @@ -270,6 +270,49 @@ static void test_simple_primitive(void) FIELD_EQUAL(i64_1); FIELD_EQUAL(i64_2); } + +static bool test_true(void *opaque, int version_id) +{ + return true; +} + +static bool test_false(void *opaque, int version_id) +{ + return false; +} + +static const VMStateDescription vmstate_simple_test = { + .name = "simple/test", + .version_id = 1, + .minimum_version_id = 1, + .minimum_version_id_old = 1, + .fields = (VMStateField[]) { + VMSTATE_BOOL_TEST(b_1, TestSimple, test_true), + VMSTATE_BOOL_TEST(b_2, TestSimple, test_false), + VMSTATE_END_OF_LIST() + } +}; + +uint8_t wire_simple_test[] = { + /* b_1 */ 0x01, + QEMU_VM_EOF, /* just to ensure we won't get EOF reported prematurely */ +}; + +static void test_simple_test(void) +{ + TestSimple obj, obj_clone; + + memset(&obj, 0, sizeof(obj)); + save_vmstate(&vmstate_simple_test, &obj_simple); + + compare_vmstate(wire_simple_test, sizeof(wire_simple_test)); + + SUCCESS(load_vmstate(&vmstate_simple_test, &obj, &obj_clone, + obj_simple_copy, 1, wire_simple_test, + sizeof(wire_simple_test))); + + FIELD_EQUAL(b_1); +} #undef FIELD_EQUAL typedef struct TestVersioned { @@ -503,6 +546,7 @@ int main(int argc, char **argv) g_test_add_func("/vmstate/simple/v2", test_simple_v2); g_test_add_func("/vmstate/simple/skip", test_simple_skip); g_test_add_func("/vmstate/simple/no_skip", test_simple_no_skip); + g_test_add_func("/vmstate/simple/test", test_simple_test); g_test_run(); close(temp_fd); -- 1.9.3