From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Halil Pasic <pasic@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, Juan Quintela <quintela@redhat.com>,
Amit Shah <amit.shah@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 4/5] tests/test-vmstate.c: test array of ptr with null
Date: Tue, 21 Feb 2017 10:49:46 +0000 [thread overview]
Message-ID: <20170221104945.GC2377@work-vm> (raw)
In-Reply-To: <20170216121140.9061-5-pasic@linux.vnet.ibm.com>
* Halil Pasic (pasic@linux.vnet.ibm.com) wrote:
> Add test for VMSTATE_ARRAY_OF_POINTER_TO_STRUCT with an array
> containing some null pointer.
>
> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> tests/test-vmstate.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 51 insertions(+)
>
> diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c
> index d0dd390..b68a0b3 100644
> --- a/tests/test-vmstate.c
> +++ b/tests/test-vmstate.c
> @@ -487,6 +487,8 @@ const VMStateDescription vmsd_tst = {
> }
> };
>
> +/* test array migration */
> +
> #define AR_SIZE 4
>
> typedef struct {
> @@ -542,6 +544,52 @@ static void test_arr_ptr_str_no0_load(void)
> }
> }
>
> +static void test_arr_ptr_str_0_save(void)
> +{
> + TestStructTriv ar[AR_SIZE] = {{.i = 0}, {.i = 1}, {.i = 2}, {.i = 3} };
> + TestArrayOfPtrToStuct sample = {.ar = {&ar[0], NULL, &ar[2], &ar[3]} };
> + uint8_t wire_sample[] = {
> + 0x00, 0x00, 0x00, 0x00,
> + VMS_NULLPTR_MARKER,
> + 0x00, 0x00, 0x00, 0x02,
> + 0x00, 0x00, 0x00, 0x03,
> + QEMU_VM_EOF
> + };
> +
> + save_vmstate(&vmsd_arps, &sample);
> + compare_vmstate(wire_sample, sizeof(wire_sample));
> +}
> +
> +static void test_arr_ptr_str_0_load(void)
> +{
> + TestStructTriv ar_gt[AR_SIZE] = {{.i = 0}, {.i = 0}, {.i = 2}, {.i = 3} };
> + TestStructTriv ar[AR_SIZE] = {};
> + TestArrayOfPtrToStuct obj = {.ar = {&ar[0], NULL, &ar[2], &ar[3]} };
> + int idx;
> + uint8_t wire_sample[] = {
> + 0x00, 0x00, 0x00, 0x00,
> + VMS_NULLPTR_MARKER,
> + 0x00, 0x00, 0x00, 0x02,
> + 0x00, 0x00, 0x00, 0x03,
> + QEMU_VM_EOF
> + };
If possible; it would be better if you could share the wire_sample, and ar_gt between
the two functions rather than copying them.
Dave
> + save_buffer(wire_sample, sizeof(wire_sample));
> + SUCCESS(load_vmstate_one(&vmsd_arps, &obj, 1,
> + wire_sample, sizeof(wire_sample)));
> + for (idx = 0; idx < AR_SIZE; ++idx) {
> + /* compare the target array ar with the ground truth array ar_gt */
> + g_assert_cmpint(ar_gt[idx].i, ==, ar[idx].i);
> + }
> + for (idx = 0; idx < AR_SIZE; ++idx) {
> + if (idx == 1) {
> + g_assert_cmpint((uint64_t)(obj.ar[idx]), ==, 0);
> + } else {
> + g_assert_cmpint((uint64_t)(obj.ar[idx]), !=, 0);
> + }
> + }
> +}
> +
> /* test QTAILQ migration */
> typedef struct TestQtailqElement TestQtailqElement;
>
> @@ -792,6 +840,9 @@ int main(int argc, char **argv)
> test_arr_ptr_str_no0_save);
> g_test_add_func("/vmstate/array/ptr/str/no0/load",
> test_arr_ptr_str_no0_load);
> + g_test_add_func("/vmstate/array/ptr/str/0/save", test_arr_ptr_str_0_save);
> + g_test_add_func("/vmstate/array/ptr/str/0/load",
> + test_arr_ptr_str_0_load);
> g_test_add_func("/vmstate/qtailq/save/saveq", test_save_q);
> g_test_add_func("/vmstate/qtailq/load/loadq", test_load_q);
> g_test_add_func("/vmstate/tmp_struct", test_tmp_struct);
> --
> 2.8.4
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2017-02-21 10:49 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-16 12:11 [Qemu-devel] [PATCH 0/5] vmstate: handle arrays with null ptrs Halil Pasic
2017-02-16 12:11 ` [Qemu-devel] [PATCH 1/5] migration/vmstate: renames in (load|save)_state Halil Pasic
2017-02-16 12:11 ` [Qemu-devel] [PATCH 2/5] migration/vmstate: split up vmstate_base_addr Halil Pasic
2017-02-21 12:07 ` Dr. David Alan Gilbert
2017-02-22 15:36 ` Halil Pasic
2017-02-16 12:11 ` [Qemu-devel] [PATCH 3/5] migration/vmstate: fix array of ptr with nullptrs Halil Pasic
2017-02-17 19:42 ` Dr. David Alan Gilbert
2017-02-20 15:39 ` Halil Pasic
2017-02-21 12:22 ` Dr. David Alan Gilbert
2017-02-21 12:55 ` Halil Pasic
2017-02-22 14:46 ` Halil Pasic
2017-02-16 12:11 ` [Qemu-devel] [PATCH 4/5] tests/test-vmstate.c: test array of ptr with null Halil Pasic
2017-02-21 10:49 ` Dr. David Alan Gilbert [this message]
2017-02-21 11:07 ` Halil Pasic
2017-02-16 12:11 ` [Qemu-devel] [PATCH 5/5] tests/test-vmstate.c: test array of ptr to primitive Halil Pasic
2017-02-21 11:14 ` Dr. David Alan Gilbert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170221104945.GC2377@work-vm \
--to=dgilbert@redhat.com \
--cc=amit.shah@redhat.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.